View Javadoc
1   /*
2    * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.
8    *
9    * This code is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12   * version 2 for more details (a copy is included in the LICENSE file that
13   * accompanied this code).
14   *
15   * You should have received a copy of the GNU General Public License version
16   * 2 along with this work; if not, write to the Free Software Foundation,
17   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18   *
19   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20   * or visit www.oracle.com if you need additional information or have any
21   * questions.
22   *
23   */
24  
25  
26  package com.sun.java.swing.action;
27  
28  import java.awt.event.ItemEvent;
29  import java.awt.event.ItemListener;
30  import javax.swing.Icon;
31  
32  // Referenced classes of package com.sun.java.swing.action:
33  //            DelegateAction
34  
35  public abstract class StateChangeAction extends DelegateAction
36      implements ItemListener
37  {
38  
39      public StateChangeAction(String name)
40      {
41          super(name, null);
42          selected = false;
43      }
44  
45      public StateChangeAction(String name, Icon icon)
46      {
47          super(name, icon);
48          selected = false;
49      }
50  
51      public boolean isSelected()
52      {
53          return selected;
54      }
55  
56      public synchronized void setSelected(boolean newValue)
57      {
58          boolean oldValue = selected;
59          if(oldValue != newValue)
60          {
61              selected = newValue;
62              firePropertyChange("selected", Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
63          }
64      }
65  
66      public void setItemListener(ItemListener listener)
67      {
68          this.listener = listener;
69      }
70  
71      public ItemListener getItemListener()
72      {
73          return listener;
74      }
75  
76      public void itemStateChanged(ItemEvent evt)
77      {
78          if(evt.getStateChange() == 1)
79              setSelected(true);
80          else
81              setSelected(false);
82          if(listener != null)
83              listener.itemStateChanged(evt);
84      }
85  
86      protected boolean selected;
87      private ItemListener listener;
88  }