Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/virtuosotechnologies/lib/basiccommand/builder/MenuToggleItemBuilderNode.java


1   /*
2   ================================================================================
3   
4     FILE:  MenuToggleItemBuilderNode.java
5     
6     PROJECT:
7     
8       Virtuoso Utilities
9     
10    CONTENTS:
11    
12      A builder that creates a special toggle menu item that isn't a
13      checkbox but instead changes its icon and/or name.
14    
15    PROGRAMMERS:
16    
17      Daniel Azuma (DA)  <dazuma@kagi.com>
18    
19    COPYRIGHT:
20    
21      Copyright (C) 2003  Daniel Azuma  (dazuma@kagi.com)
22      
23      This program is free software; you can redistribute it and/or
24      modify it under the terms of the GNU General Public License as
25      published by the Free Software Foundation; either version 2
26      of the License, or (at your option) any later version.
27      
28      This program is distributed in the hope that it will be useful,
29      but WITHOUT ANY WARRANTY; without even the implied warranty of
30      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31      GNU General Public License for more details.
32      
33      You should have received a copy of the GNU General Public
34      License along with this program; if not, write to
35        Free Software Foundation, Inc.
36        59 Temple Place, Suite 330
37        Boston, MA 02111-1307 USA
38  
39  ================================================================================
40  */
41  
42  
43  package com.virtuosotechnologies.lib.basiccommand.builder;
44  
45  
46  import javax.swing.JMenuItem;
47  import java.awt.event.ActionListener;
48  import java.awt.event.ActionEvent;
49  
50  import com.virtuosotechnologies.lib.command.CommandNode;
51  import com.virtuosotechnologies.lib.basiccommand.BasicCommandNode;
52  
53  
54  /**
55   * A builder that creates a special toggle menu item that isn't a checkbox
56   * but instead changes its icon and/or name.
57   */
58  public class MenuToggleItemBuilderNode
59  extends AbstractSwingButtonBuilderNode
60  implements
61    ActionListener
62  {
63    /**
64     * Constructor
65     */
66    protected MenuToggleItemBuilderNode(
67      CommandNode commandNode,
68      AbstractBranchBuilderNode parent,
69      int index)
70    {
71      super(commandNode, parent, index);
72    }
73    
74    
75    /**
76     * Override this method to create the initial element object.
77     */
78    protected Object createInitialElement()
79    {
80      JMenuItem menuItem = new JMenuItem();
81      menuItem.addActionListener(this);
82      return menuItem;
83    }
84    
85    
86    /**
87     * Action listener that changes the state.
88     */
89    public void actionPerformed(
90      ActionEvent ev)
91    {
92      CommandNode node = getCommandNode();
93      boolean oldValue = Boolean.TRUE.equals(node.getValue(
94        BasicCommandNode.SELECTION_STATE_PROPERTY));
95      if (getParent().getCommandNode().getFlavor().equalsOrExtends(
96        BasicCommandNode.RADIOMUTEX_FLAVOR))
97      {
98        if (!oldValue)
99        {
100         node.putValue(BasicCommandNode.SELECTION_STATE_PROPERTY, Boolean.TRUE);
101       }
102     }
103     else
104     {
105       node.putValue(BasicCommandNode.SELECTION_STATE_PROPERTY,
106         oldValue ? Boolean.FALSE : Boolean.TRUE);
107     }
108   }
109 }