45 |
import java.util.Enumeration; |
import java.util.Enumeration; |
46 |
import java.util.Vector; |
import java.util.Vector; |
47 |
|
|
48 |
|
import javax.accessibility.Accessible; |
49 |
|
import javax.accessibility.AccessibleContext; |
50 |
|
import javax.accessibility.AccessibleRole; |
51 |
|
|
52 |
/** |
/** |
53 |
* This class implements a menu bar in the AWT system. |
* This class implements a menu bar in the AWT system. |
54 |
* |
* |
55 |
* @author Aaron M. Renn (arenn@urbanophile.com) |
* @author Aaron M. Renn (arenn@urbanophile.com) |
56 |
* @author Tom Tromey <tromey@redhat.com> |
* @author Tom Tromey <tromey@redhat.com> |
57 |
|
* @author Andrew John Hughes <gnu_andrew@member.fsf.org> |
58 |
*/ |
*/ |
59 |
public class MenuBar extends MenuComponent |
public class MenuBar extends MenuComponent |
60 |
implements MenuContainer, Serializable |
implements MenuContainer, Serializable, Accessible |
61 |
{ |
{ |
62 |
|
|
63 |
/* |
/* |
83 |
*/ |
*/ |
84 |
private Vector menus = new Vector(); |
private Vector menus = new Vector(); |
85 |
|
|
86 |
|
/** |
87 |
|
* The accessible context for this component. |
88 |
|
* |
89 |
|
* @see #getAccessibleContext() |
90 |
|
* @serial ignored. |
91 |
|
*/ |
92 |
|
private transient AccessibleContext accessibleContext; |
93 |
|
|
94 |
/*************************************************************************/ |
/*************************************************************************/ |
95 |
|
|
96 |
/* |
/* |
141 |
helpMenu.removeNotify (); |
helpMenu.removeNotify (); |
142 |
helpMenu.parent = null; |
helpMenu.parent = null; |
143 |
} |
} |
144 |
|
helpMenu = menu; |
145 |
|
|
146 |
if (menu.parent != null) |
if (menu.parent != null) |
147 |
menu.parent.remove (menu); |
menu.parent.remove (menu); |
|
if (menu.parent != null) |
|
|
menu.parent.remove (menu); |
|
148 |
menu.parent = this; |
menu.parent = this; |
149 |
|
|
150 |
|
MenuBarPeer peer = (MenuBarPeer) getPeer (); |
151 |
if (peer != null) |
if (peer != null) |
152 |
{ |
{ |
153 |
MenuBarPeer mp = (MenuBarPeer) peer; |
menu.addNotify(); |
154 |
mp.addHelpMenu (menu); |
peer.addHelpMenu (menu); |
155 |
} |
} |
156 |
} |
} |
157 |
|
|
176 |
|
|
177 |
if (peer != null) |
if (peer != null) |
178 |
{ |
{ |
179 |
MenuBarPeer mp = (MenuBarPeer) peer; |
menu.addNotify(); |
|
mp.addMenu (menu); |
|
180 |
} |
} |
181 |
|
|
182 |
return(menu); |
return(menu); |
246 |
public int |
public int |
247 |
countMenus() |
countMenus() |
248 |
{ |
{ |
249 |
// FIXME: How does the help menu fit in here? |
return menus.size () + (getHelpMenu () == null ? 0 : 1); |
|
return menus.size (); |
|
250 |
} |
} |
251 |
|
|
252 |
/*************************************************************************/ |
/*************************************************************************/ |
280 |
Menu mi = (Menu)e.nextElement(); |
Menu mi = (Menu)e.nextElement(); |
281 |
mi.addNotify(); |
mi.addNotify(); |
282 |
} |
} |
283 |
|
if (helpMenu != null) |
284 |
|
{ |
285 |
|
helpMenu.addNotify(); |
286 |
|
((MenuBarPeer) peer).addHelpMenu(helpMenu); |
287 |
|
} |
288 |
} |
} |
289 |
|
|
290 |
/*************************************************************************/ |
/*************************************************************************/ |
369 |
it.deleteShortcut (); |
it.deleteShortcut (); |
370 |
} |
} |
371 |
|
|
372 |
|
/** |
373 |
|
* Gets the AccessibleContext associated with this <code>MenuBar</code>. |
374 |
|
* The context is created, if necessary. |
375 |
|
* |
376 |
|
* @return the associated context |
377 |
|
*/ |
378 |
|
public AccessibleContext getAccessibleContext() |
379 |
|
{ |
380 |
|
/* Create the context if this is the first request */ |
381 |
|
if (accessibleContext == null) |
382 |
|
{ |
383 |
|
/* Create the context */ |
384 |
|
accessibleContext = new AccessibleAWTMenuBar(); |
385 |
|
} |
386 |
|
return accessibleContext; |
387 |
|
} |
388 |
|
|
389 |
|
/** |
390 |
|
* This class provides accessibility support for AWT menu bars. |
391 |
|
* |
392 |
|
* @author Andrew John Hughes <gnu_andrew@member.fsf.org> |
393 |
|
*/ |
394 |
|
protected class AccessibleAWTMenuBar |
395 |
|
extends AccessibleAWTMenuComponent |
396 |
|
{ |
397 |
|
|
398 |
|
/** |
399 |
|
* Compatible with JDK 1.4.2 revision 5 |
400 |
|
*/ |
401 |
|
private static final long serialVersionUID = -8577604491830083815L; |
402 |
|
|
403 |
|
/** |
404 |
|
* This is the default constructor, which simply calls the default |
405 |
|
* constructor of the superclass. |
406 |
|
*/ |
407 |
|
protected AccessibleAWTMenuBar() |
408 |
|
{ |
409 |
|
super(); |
410 |
|
} |
411 |
|
|
412 |
|
/** |
413 |
|
* Returns the accessible role relating to the menu bar. |
414 |
|
* |
415 |
|
* @return <code>AccessibleRole.MENU_BAR</code>. |
416 |
|
*/ |
417 |
|
public AccessibleRole getAccessibleRole() |
418 |
|
{ |
419 |
|
return AccessibleRole.MENU_BAR; |
420 |
|
} |
421 |
|
|
422 |
|
} // class AccessibleAWTMenuBar |
423 |
|
|
424 |
} // class MenuBar |
} // class MenuBar |