diff options
Diffstat (limited to 'libjava/javax/swing/JMenuBar.java')
-rw-r--r-- | libjava/javax/swing/JMenuBar.java | 389 |
1 files changed, 384 insertions, 5 deletions
diff --git a/libjava/javax/swing/JMenuBar.java b/libjava/javax/swing/JMenuBar.java index fec19e6..7ec5296 100644 --- a/libjava/javax/swing/JMenuBar.java +++ b/libjava/javax/swing/JMenuBar.java @@ -35,13 +35,392 @@ this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ - package javax.swing; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.Point; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import javax.accessibility.Accessible; +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleRole; +import javax.accessibility.AccessibleSelection; +import javax.accessibility.AccessibleStateSet; +import javax.accessibility.AccessibleValue; +import javax.swing.UIManager; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.MenuDragMouseEvent; +import javax.swing.event.MenuDragMouseListener; +import javax.swing.event.MenuKeyEvent; +import javax.swing.event.MenuKeyListener; +import javax.swing.plaf.MenuBarUI; +import javax.swing.plaf.MenuItemUI; + -public class JMenuBar extends JComponent +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision: 1.2.18.1 $ + */ +public class JMenuBar extends JComponent implements Accessible, MenuElement { - JMenuBar() - { - } + private transient SingleSelectionModel selectionModel; + private boolean paintBorder; + private Insets margin; + + /** + * Creates a new JMenuBar object. + */ + public JMenuBar() + { + selectionModel = new DefaultSingleSelectionModel(); + paintBorder = true; + updateUI(); + } + + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public JMenu add(JMenu c) + { + c.setAlignmentX(Component.LEFT_ALIGNMENT); + super.add(c); + return c; + } + + /** + * DOCUMENT ME! + */ + public void addNotify() + { + // FIXME: Should register this menu bar with the keyboard manager + super.addNotify(); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public AccessibleContext getAccessibleContext() + { + return null; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public Component getComponent() + { + return this; + } + + /** + * DOCUMENT ME! + * + * @param i DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public Component getComponentAtIndex(int i) + { + return getComponentAt(i); + } + + /** + * DOCUMENT ME! + * + * @param c DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public int getComponentIndex(Component c) + { + Component[] comps = getComponents(); + + int index = -1; + + for (int i = 0; i < comps.length; i++) + { + if (comps[i].equals(c)) + { + index = i; + break; + } + } + + return index; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public JMenu getHelpMenu() + { + return null; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public Insets getMargin() + { + if (margin == null) + return new Insets(0, 0, 0, 0); + else + return margin; + } + + /** + * DOCUMENT ME! + * + * @param index DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public JMenu getMenu(int index) + { + if (getComponentAtIndex(index) instanceof JMenu) + return (JMenu) getComponentAtIndex(index); + else + return null; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public int getMenuCount() + { + return getComponentCount(); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public SingleSelectionModel getSelectionModel() + { + return selectionModel; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public MenuElement[] getSubElements() + { + MenuElement[] subElements = new MenuElement[getComponentCount()]; + + for (int i = 0; i < getComponentCount(); i++) + subElements[i] = (MenuElement) getMenu(i); + + return subElements; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public MenuBarUI getUI() + { + return (MenuBarUI) ui; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public String getUIClassID() + { + return "MenuBarUI"; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public boolean isBorderPainted() + { + return paintBorder; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public boolean isManagingFocus() + { + return true; + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public boolean isSelected() + { + return false; + } + + /** + * DOCUMENT ME! + * + * @param isIncluded DOCUMENT ME! + */ + public void menuSelectionChanged(boolean isIncluded) + { + // Do nothing - needed for implementation of MenuElement interface + } + + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + */ + protected void paintBorder(Graphics g) + { + if (paintBorder) + getBorder().paintBorder(this, g, 0, 0, getSize(null).width, + getSize(null).height); + } + + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + protected String paramString() + { + return "JMenuBar"; + } + + /** + * DOCUMENT ME! + * + * @param e DOCUMENT ME! + * @param path DOCUMENT ME! + * @param manager DOCUMENT ME! + */ + public void processKeyEvent(KeyEvent e, MenuElement[] path, + MenuSelectionManager manager) + { + // Do nothing - needed for implementation of MenuElement interface + } + + /** + * DOCUMENT ME! + * + * @param event DOCUMENT ME! + * @param path DOCUMENT ME! + * @param manager DOCUMENT ME! + */ + public void processMouseEvent(MouseEvent event, MenuElement[] path, + MenuSelectionManager manager) + { + // Do nothing - needed for implementation of MenuElement interface + } + + /** + * DOCUMENT ME! + */ + public void removeNotify() + { + // Must unregister this menu bar with the current keyboard manager. + super.removeNotify(); + } + + /** + * DOCUMENT ME! + * + * @param b DOCUMENT ME! + */ + public void setBorderPainted(boolean b) + { + paintBorder = b; + } + + /** + * DOCUMENT ME! + * + * @param menu DOCUMENT ME! + */ + public void setHelpMenu(JMenu menu) + { + } + + /** + * DOCUMENT ME! + * + * @param m DOCUMENT ME! + */ + public void setMargin(Insets m) + { + this.margin = m; + } + + /** + * DOCUMENT ME! + * + * @param sel DOCUMENT ME! + */ + public void setSelected(Component sel) + { + } + + /** + * DOCUMENT ME! + * + * @param model DOCUMENT ME! + */ + public void setSelectionModel(SingleSelectionModel model) + { + } + + /** + * DOCUMENT ME! + * + * @param ui DOCUMENT ME! + */ + public void setUI(MenuBarUI ui) + { + super.setUI(ui); + } + + /** + * DOCUMENT ME! + */ + public void updateUI() + { + MenuBarUI ui = ((MenuBarUI) UIManager.getUI(this)); + setUI(ui); + invalidate(); + } } |