OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [classpath/] [java/] [awt/] [CheckboxMenuItem.java] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* CheckboxMenuItem.java -- A menu option with a checkbox on it.
2
   Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005  Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package java.awt;
40
 
41
import java.awt.event.ItemEvent;
42
import java.awt.event.ItemListener;
43
import java.awt.peer.CheckboxMenuItemPeer;
44
import java.util.EventListener;
45
 
46
import javax.accessibility.Accessible;
47
import javax.accessibility.AccessibleAction;
48
import javax.accessibility.AccessibleContext;
49
import javax.accessibility.AccessibleValue;
50
 
51
/**
52
  * This class implements a menu item that has a checkbox on it indicating
53
  * the selected state of some option.
54
  *
55
  * @author Aaron M. Renn (arenn@urbanophile.com)
56
  * @author Tom Tromey (tromey@redhat.com)
57
  */
58
public class CheckboxMenuItem extends MenuItem
59
  implements ItemSelectable, Accessible
60
{
61
 
62
/*
63
 * Static Variables
64
 */
65
 
66
// Serialization constant
67
private static final long serialVersionUID = 6190621106981774043L;
68
 
69
/*
70
 * Instance Variables
71
 */
72
 
73
/**
74
  * @serial The state of the checkbox, with <code>true</code> being on and
75
  * <code>false</code> being off.
76
  */
77
private boolean state;
78
 
79
// List of registered ItemListeners
80
private transient ItemListener item_listeners;
81
 
82
/*************************************************************************/
83
 
84
/*
85
 * Constructors
86
 */
87
 
88
/**
89
  * Initializes a new instance of <code>CheckboxMenuItem</code> with no
90
  * label and an initial state of off.
91
  *
92
  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
93
  * returns true.
94
  */
95
public
96
CheckboxMenuItem()
97
{
98
  this("", false);
99
}
100
 
101
/*************************************************************************/
102
 
103
/**
104
  * Initializes a new instance of <code>CheckboxMenuItem</code> with the
105
  * specified label and an initial state of off.
106
  *
107
  * @param label The label of the menu item.
108
  *
109
  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
110
  * returns true.
111
  */
112
public
113
CheckboxMenuItem(String label)
114
{
115
  this(label, false);
116
}
117
 
118
/*************************************************************************/
119
 
120
/**
121
  * Initializes a new instance of <code>CheckboxMenuItem</code> with the
122
  * specified label and initial state.
123
  *
124
  * @param label The label of the menu item.
125
  * @param state The initial state of the menu item, where <code>true</code>
126
  * is on, and <code>false</code> is off.
127
  *
128
  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
129
  * returns true.
130
  */
131
public
132
CheckboxMenuItem(String label, boolean state)
133
{
134
  super(label);
135
  this.state = state;
136
 
137
  if (GraphicsEnvironment.isHeadless())
138
    throw new HeadlessException ();
139
}
140
 
141
/*************************************************************************/
142
 
143
/*
144
 * Instance Methods
145
 */
146
 
147
/**
148
  * Returns the state of this menu item.
149
  *
150
  * @return The state of this menu item.
151
  */
152
public boolean
153
getState()
154
{
155
  return(state);
156
}
157
 
158
/*************************************************************************/
159
 
160
/**
161
  * Sets the state of this menu item.
162
  *
163
  * @param state The initial state of the menu item, where <code>true</code>
164
  * is on, and <code>false</code> is off.
165
  */
166
public synchronized void
167
setState(boolean state)
168
{
169
  this.state = state;
170
  if (peer != null)
171
    {
172
      CheckboxMenuItemPeer cp = (CheckboxMenuItemPeer) peer;
173
      cp.setState (state);
174
    }
175
}
176
 
177
/*************************************************************************/
178
 
179
/**
180
  * Returns an array of length 1 with the menu item label for this object
181
  * if the state is on.  Otherwise <code>null</code> is returned.
182
  *
183
  * @return An array with this menu item's label if it has a state of on,
184
  * or <code>null</code> otherwise.
185
  */
186
public Object[]
187
getSelectedObjects()
188
{
189
  if (state == false)
190
    return(null);
191
 
192
  Object[] obj = new Object[1];
193
  obj[0] = getLabel();
194
 
195
  return(obj);
196
}
197
 
198
/*************************************************************************/
199
 
200
/**
201
  * Create's this object's native peer
202
  */
203
public synchronized void
204
addNotify()
205
{
206
  if (peer == null)
207
    peer = getToolkit().createCheckboxMenuItem(this);
208
 
209
  super.addNotify ();
210
}
211
 
212
/*************************************************************************/
213
 
214
/**
215
  * Adds the specified listener to the list of registered item listeners
216
  * for this object.
217
  *
218
  * @param listener The listener to add.
219
  */
220
public synchronized void
221
addItemListener(ItemListener listener)
222
{
223
  item_listeners = AWTEventMulticaster.add(item_listeners, listener);
224
 
225
  enableEvents(AWTEvent.ITEM_EVENT_MASK);
226
}
227
 
228
/*************************************************************************/
229
 
230
/**
231
  * Removes the specified listener from the list of registered item
232
  * listeners for this object.
233
  *
234
  * @param listener The listener to remove.
235
  */
236
public synchronized void
237
removeItemListener(ItemListener listener)
238
{
239
  item_listeners = AWTEventMulticaster.remove(item_listeners, listener);
240
}
241
 
242
/*************************************************************************/
243
 
244
/**
245
  * Processes the specified event by calling <code>processItemEvent()</code>
246
  * if it is an instance of <code>ItemEvent</code> or calling the superclass
247
  * method otherwise.
248
  *
249
  * @param event The event to process.
250
  */
251
protected void
252
processEvent(AWTEvent event)
253
{
254
  if (event instanceof ItemEvent)
255
    processItemEvent((ItemEvent)event);
256
  else
257
    super.processEvent(event);
258
}
259
 
260
/*************************************************************************/
261
 
262
/**
263
  * Processes the specified event by dispatching it to any registered listeners.
264
  *
265
  * @param event The event to process.
266
  */
267
protected void
268
processItemEvent(ItemEvent event)
269
{
270
  if (item_listeners != null)
271
    item_listeners.itemStateChanged(event);
272
}
273
 
274
void
275
dispatchEventImpl(AWTEvent e)
276
{
277
  if (e instanceof ItemEvent)
278
    {
279
      synchronized (this)
280
        {
281
          state = (((ItemEvent) e).getStateChange() == ItemEvent.SELECTED);
282
        }
283
    }
284
 
285
  if (e.id <= ItemEvent.ITEM_LAST
286
      && e.id >= ItemEvent.ITEM_FIRST
287
      && (item_listeners != null
288
          || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0))
289
    processEvent(e);
290
  else
291
    super.dispatchEventImpl(e);
292
}
293
 
294
/*************************************************************************/
295
 
296
/**
297
  * Returns a debugging string for this object.
298
  *
299
  * @return A debugging string for this object.
300
  */
301
public String
302
paramString()
303
{
304
  return ("label=" + getLabel() + ",state=" + state
305
          + "," + super.paramString());
306
}
307
 
308
  /**
309
   * Returns an array of all the objects currently registered as FooListeners
310
   * upon this <code>CheckboxMenuItem</code>. FooListeners are registered using
311
   * the addFooListener method.
312
   *
313
   * @exception ClassCastException If listenerType doesn't specify a class or
314
   * interface that implements java.util.EventListener.
315
   */
316
  public EventListener[] getListeners (Class listenerType)
317
  {
318
    if (listenerType == ItemListener.class)
319
      return AWTEventMulticaster.getListeners (item_listeners, listenerType);
320
 
321
    return super.getListeners (listenerType);
322
  }
323
 
324
  /**
325
   * Returns an aray of all item listeners currently registered to this
326
   * <code>CheckBoxMenuItem</code>.
327
   */
328
  public ItemListener[] getItemListeners ()
329
  {
330
    return (ItemListener[]) getListeners (ItemListener.class);
331
  }
332
 
333
 
334
  protected class AccessibleAWTCheckboxMenuItem extends AccessibleAWTMenuItem
335
    implements AccessibleAction, AccessibleValue
336
  {
337
    // I think the base class provides the necessary implementation
338
 
339
    private static final long serialVersionUID = -1122642964303476L;
340
  }
341
 
342
  /**
343
   * Gets the AccessibleContext associated with this <code>CheckboxMenuItem</code>.
344
   * The context is created, if necessary.
345
   *
346
   * @return the associated context
347
   */
348
  public AccessibleContext getAccessibleContext()
349
  {
350
    /* Create the context if this is the first request */
351
    if (accessibleContext == null)
352
      accessibleContext = new AccessibleAWTCheckboxMenuItem();
353
    return accessibleContext;
354
  }
355
 
356
} // class CheckboxMenuItem
357
 

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.