[gui][PATCH] JMenu & other small fixes
Olga Rodimina
rodimina@redhat.com
Tue May 18 17:32:00 GMT 2004
Hi,
Attached patch implements basics of JMenu and makes other relevent fixes
to menu items and popup menu.
I will be committing this patch java-gui-branch.
Olga.
-------------- next part --------------
? .snprj
? libjava.proj
? patch
? javax/swing/patch
? javax/swing/plaf/basic/patch
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v
retrieving revision 1.2660.2.101
diff -c -p -u -r1.2660.2.101 ChangeLog
--- ChangeLog 17 May 2004 19:49:02 -0000 1.2660.2.101
+++ ChangeLog 18 May 2004 14:17:22 -0000
@@ -7,6 +7,29 @@
2004-05-17 Olga Rodimina <rodimina@redhat.com>
+ * Makefile.am: Added new file.
+ * Makefile.in: Regenerate.
+ * javax/swing/JMenu.java: Started
+ implementation.
+ * javax/swing/JPopupMenu.java:
+ (insert): If specified index is -1, then
+ add component at the end.
+ (isPopupTrigger): Reimplemented.
+ (JPopupMenu.LightWeightPopup): setBounds
+ of the lightWeightPopup before adding it
+ to the layeredPane.
+ (javax/swing/plaf/basic/BasicIconFactory.java):
+ (getMenuArrowIcon): Implemented.
+ * javax/swing/plaf/basic/BasicMenuItemUI.java:
+ (getPreferredSize): Add size of the arrow icon
+ if this menu item is instance of JMenu.
+ (paintMenuItem): Paint arrow icon if this
+ menu item is a submenu.
+ * javax/swing/plaf/basic/BasicMenuUI.java:
+ New File. UI Delegate for JMenu.
+
+2004-05-17 Olga Rodimina <rodimina@redhat.com>
+
* javax/swing/JRootPane.java
(JRootPane.RootLayout): Reimplemented to
set bounds of contentPane and menuBar.
Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.361.2.11
diff -c -p -u -r1.361.2.11 Makefile.am
--- Makefile.am 3 May 2004 15:38:31 -0000 1.361.2.11
+++ Makefile.am 18 May 2004 14:17:22 -0000
@@ -1251,6 +1251,7 @@ javax/swing/plaf/basic/BasicCheckBoxUI.j
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicLabelUI.java \
javax/swing/plaf/basic/BasicListUI.java \
+javax/swing/plaf/basic/BasicMenuUI.java \
javax/swing/plaf/basic/BasicMenuItemUI.java \
javax/swing/plaf/basic/BasicOptionPaneUI.java \
javax/swing/plaf/basic/BasicPanelUI.java \
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.in,v
retrieving revision 1.385.2.11
diff -c -p -u -r1.385.2.11 Makefile.in
--- Makefile.in 3 May 2004 15:38:31 -0000 1.385.2.11
+++ Makefile.in 18 May 2004 14:17:22 -0000
@@ -956,6 +956,7 @@ javax/swing/plaf/basic/BasicCheckBoxUI.j
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicLabelUI.java \
javax/swing/plaf/basic/BasicListUI.java \
+javax/swing/plaf/basic/BasicMenuUI.java \
javax/swing/plaf/basic/BasicMenuItemUI.java \
javax/swing/plaf/basic/BasicOptionPaneUI.java \
javax/swing/plaf/basic/BasicPanelUI.java \
@@ -3002,6 +3003,7 @@ javax/swing/plaf/basic/BasicCheckBoxUI.l
javax/swing/plaf/basic/BasicGraphicsUtils.lo \
javax/swing/plaf/basic/BasicLabelUI.lo \
javax/swing/plaf/basic/BasicListUI.lo \
+javax/swing/plaf/basic/BasicMenuUI.lo \
javax/swing/plaf/basic/BasicMenuItemUI.lo \
javax/swing/plaf/basic/BasicOptionPaneUI.lo \
javax/swing/plaf/basic/BasicPanelUI.lo \
@@ -5097,6 +5099,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_D
.deps/javax/swing/plaf/basic/BasicListUI.P \
.deps/javax/swing/plaf/basic/BasicLookAndFeel.P \
.deps/javax/swing/plaf/basic/BasicMenuItemUI.P \
+.deps/javax/swing/plaf/basic/BasicMenuUI.P \
.deps/javax/swing/plaf/basic/BasicOptionPaneUI.P \
.deps/javax/swing/plaf/basic/BasicPanelUI.P \
.deps/javax/swing/plaf/basic/BasicPopupMenuUI.P \
Index: javax/swing/JMenu.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JMenu.java,v
retrieving revision 1.3
diff -c -p -u -r1.3 JMenu.java
--- javax/swing/JMenu.java 9 Jan 2004 10:18:47 -0000 1.3
+++ javax/swing/JMenu.java 18 May 2004 14:17:23 -0000
@@ -46,724 +46,796 @@ import java.beans.PropertyChangeListener
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.util.EventListener;
import java.util.Hashtable;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleSelection;
+import javax.swing.event.ChangeListener;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
-import javax.swing.event.ChangeListener;
+import javax.swing.plaf.MenuItemUI;
+
/**
- * JMenu
- * @author Andrew Selkirk
- * @version 1.0
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
*/
-public class JMenu
- extends JMenuItem
- implements Accessible, MenuElement
+public class JMenu extends JMenuItem implements Accessible, MenuElement
{
static final long serialVersionUID = 4227225638931828014L;
-
- //-------------------------------------------------------------
- // Classes ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * AccessibleJMenu
- */
- protected class AccessibleJMenu extends AccessibleJMenuItem
- implements AccessibleSelection {
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor AccessibleJMenu
- * @param component TODO
- */
- protected AccessibleJMenu(JMenu component) {
- super(component);
- // TODO
- } // AccessibleJMenu()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getAccessibleChildrenCount
- * @returns int
- */
- public int getAccessibleChildrenCount() {
- return 0; // TODO
- } // getAccessibleChildrenCount()
-
- /**
- * getAccessibleChild
- * @param value0 TODO
- * @returns Accessible
- */
- public Accessible getAccessibleChild(int value0) {
- return null; // TODO
- } // getAccessibleChild()
-
- /**
- * getAccessibleSelection
- * @returns AccessibleSelection
- */
- public AccessibleSelection getAccessibleSelection() {
- return null; // TODO
- } // getAccessibleSelection()
-
- /**
- * getAccessibleSelection
- * @param value0 TODO
- * @returns Accessible
- */
- public Accessible getAccessibleSelection(int value0) {
- return null; // TODO
- } // getAccessibleSelection()
-
- /**
- * isAccessibleChildSelected
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isAccessibleChildSelected(int value0) {
- return false; // TODO
- } // isAccessibleChildSelected()
-
- /**
- * getAccessibleRole
- * @returns AccessibleRole
- */
- public AccessibleRole getAccessibleRole() {
- return AccessibleRole.MENU;
- } // getAccessibleRole()
-
- /**
- * getAccessibleSelectionCount
- * @returns int
- */
- public int getAccessibleSelectionCount() {
- return 0; // TODO
- } // getAccessibleSelectionCount()
-
- /**
- * addAccessibleSelection
- * @param value0 TODO
- */
- public void addAccessibleSelection(int value0) {
- // TODO
- } // addAccessibleSelection()
-
- /**
- * removeAccessibleSelection
- * @param value0 TODO
- */
- public void removeAccessibleSelection(int value0) {
- // TODO
- } // removeAccessibleSelection()
-
- /**
- * clearAccessibleSelection
- */
- public void clearAccessibleSelection() {
- // TODO
- } // clearAccessibleSelection()
-
- /**
- * selectAllAccessibleSelection
- */
- public void selectAllAccessibleSelection() {
- // TODO
- } // selectAllAccessibleSelection()
-
-
- } // AccessibleJMenu
-
- /**
- * WinListener
- */
- protected class WinListener extends WindowAdapter implements Serializable {
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * popupMenu
- */
- JPopupMenu popupMenu;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor WinListener
- * @param value0 TODO
- * @param value1 TODO
- */
- public WinListener(JMenu value0, JPopupMenu value1) {
- // TODO
- } // WinListener()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * windowClosing
- * @param value0 TODO
- */
- public void windowClosing(WindowEvent value0) {
- // TODO
- } // windowClosing()
-
-
- } // WinListener
-
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * uiClassID
- */
- private static final String uiClassID = "MenuUI";
-
- /**
- * popupMenu
- */
- private JPopupMenu popupMenu;
-
- /**
- * menuChangeListener
- */
- private ChangeListener menuChangeListener;
-
- /**
- * menuEvent
- */
- private MenuEvent menuEvent;
-
- /**
- * listenerRegistry
- */
- private static Hashtable listenerRegistry = null; // TODO
-
- /**
- * delay
- */
- private int delay;
-
- /**
- * TRACE
- */
- private static final boolean TRACE = false; // TODO
-
- /**
- * VERBOSE
- */
- private static final boolean VERBOSE = false; // TODO
-
- /**
- * DEBUG
- */
- private static final boolean DEBUG = false; // TODO
-
- /**
- * popupListener
- */
- protected JMenu.WinListener popupListener;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor JMenu
- */
- public JMenu() {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param text TODO
- */
- public JMenu(String text) {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param action TODO
- */
- public JMenu(Action action) {
- // TODO
- } // JMenu()
-
- /**
- * Constructor JMenu
- * @param text TODO
- * @param tearoff TODO
- */
- public JMenu(String text, boolean tearoff) {
- // TODO
- } // JMenu()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * writeObject
- * @param stream TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream stream) throws IOException {
- // TODO
- } // writeObject()
-
- /**
- * add
- * @param value0 TODO
- * @returns JMenuItem
- */
- public JMenuItem add(JMenuItem item) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param component TODO
- * @returns Component
- */
- public Component add(Component component) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param component TODO
- * @param index TODO
- * @returns Component
- */
- public Component add(Component component, int index) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param text TODO
- * @returns JMenuItem
- */
- public JMenuItem add(String text) {
- return null; // TODO
- } // add()
-
- /**
- * add
- * @param action TODO
- * @returns JMenuItem
- */
- public JMenuItem add(Action action) {
- return null; // TODO
- } // add()
-
- /**
- * remove
- * @param item TODO
- */
- public void remove(JMenuItem item) {
- // TODO
- } // remove()
-
- /**
- * remove
- * @param index TODO
- */
- public void remove(int index) {
- // TODO
- } // remove()
-
- /**
- * remove
- * @param component TODO
- */
- public void remove(Component component) {
- // TODO
- } // remove()
-
- /**
- * removeAll
- */
- public void removeAll() {
- // TODO
- } // removeAll()
-
- /**
- * insert
- * @param text TODO
- * @param index TODO
- */
- public void insert(String text, int index) {
- // TODO
- } // insert()
-
- /**
- * insert
- * @param item TODO
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem insert(JMenuItem item, int index) {
- return null; // TODO
- } // insert()
-
- /**
- * insert
- * @param action TODO
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem insert(Action action, int index) {
- return null; // TODO
- } // insert()
-
- /**
- * updateUI
- */
- public void updateUI() {
- //setUI((MenuUI) UIManager.get(this));
- invalidate();
- } // updateUI()
-
- /**
- * getUIClassID
- * @returns String
- */
- public String getUIClassID() {
- return uiClassID;
- } // getUIClassID()
-
- /**
- * setModel
- * @param model TODO
- */
- public void setModel(ButtonModel model) {
- // TODO
- } // setModel()
-
- /**
- * isSelected
- * @returns boolean
- */
- public boolean isSelected() {
- return false; // TODO
- } // isSelected()
-
- /**
- * setSelected
- * @param selected TODO
- */
- public void setSelected(boolean selected) {
- // TODO
- } // setSelected()
-
- /**
- * isPopupMenuVisible
- * @returns boolean
- */
- public boolean isPopupMenuVisible() {
- return false; // TODO
- } // isPopupMenuVisible()
-
- /**
- * setPopupMenuVisible
- * @param popup TODO
- */
- public void setPopupMenuVisible(boolean popup) {
- // TODO
- } // setPopupMenuVisible()
-
- /**
- * getPopupMenuOrigin
- * @returns Point
- */
- protected Point getPopupMenuOrigin() {
- return null; // TODO
- } // getPopupMenuOrigin()
-
- /**
- * getDelay
- * @returns int
- */
- public int getDelay() {
- return 0; // TODO
- } // getDelay()
-
- /**
- * setDelay
- * @param value0 TODO
- */
- public void setDelay(int delay) {
- // TODO
- } // setDelay()
-
- /**
- * setMenuLocation
- * @param x TODO
- * @param y TODO
- */
- public void setMenuLocation(int x, int y) {
- // TODO
- } // setMenuLocation()
-
- /**
- * createActionComponent
- * @param action TODO
- * @returns JMenuItem
- */
- protected JMenuItem createActionComponent(Action action) {
- return null; // TODO
- } // createActionComponent()
-
- /**
- * createActionChangeListener
- * @param item TODO
- * @returns PropertyChangeListener
- */
- protected PropertyChangeListener createActionChangeListener(JMenuItem item) {
- return null; // TODO
- } // createActionChangeListener()
-
- /**
- * addSeparator
- */
- public void addSeparator() {
- // TODO
- } // addSeparator()
-
- /**
- * insertSeparator
- * @param index TODO
- */
- public void insertSeparator(int index) {
- // TODO
- } // insertSeparator()
-
- /**
- * getItem
- * @param index TODO
- * @returns JMenuItem
- */
- public JMenuItem getItem(int index) {
- return null; // TODO
- } // getItem()
-
- /**
- * getItemCount
- * @returns int
- */
- public int getItemCount() {
- return 0; // TODO
- } // getItemCount()
-
- /**
- * isTearOff
- * @returns boolean
- */
- public boolean isTearOff() {
- return false; // TODO
- } // isTearOff()
-
- /**
- * getMenuComponentCount
- * @returns int
- */
- public int getMenuComponentCount() {
- return 0; // TODO
- } // getMenuComponentCount()
-
- /**
- * getMenuComponent
- * @param index TODO
- * @returns Component
- */
- public Component getMenuComponent(int index) {
- return null; // TODO
- } // getMenuComponent()
-
- /**
- * getMenuComponents
- * @returns Component[]
- */
- public Component[] getMenuComponents() {
- return null; // TODO
- } // getMenuComponents()
-
- /**
- * isTopLevelMenu
- * @returns boolean
- */
- public boolean isTopLevelMenu() {
- return false; // TODO
- } // isTopLevelMenu()
-
- /**
- * isMenuComponent
- * @param component TODO
- * @returns boolean
- */
- public boolean isMenuComponent(Component component) {
- return false; // TODO
- } // isMenuComponent()
-
- /**
- * getPopupMenu
- * @returns JPopupMenu
- */
- public JPopupMenu getPopupMenu() {
- return null; // TODO
- } // getPopupMenu()
-
- /**
- * addMenuListener
- * @param listener TODO
- */
- public void addMenuListener(MenuListener listener) {
- // TODO
- } // addMenuListener()
-
- /**
- * removeMenuListener
- * @param listener TODO
- */
- public void removeMenuListener(MenuListener listener) {
- // TODO
- } // removeMenuListener()
-
- /**
- * fireMenuSelected
- */
- protected void fireMenuSelected() {
- // TODO
- } // fireMenuSelected()
-
- /**
- * fireMenuDeselected
- */
- protected void fireMenuDeselected() {
- // TODO
- } // fireMenuDeselected()
-
- /**
- * fireMenuCanceled
- */
- protected void fireMenuCanceled() {
- // TODO
- } // fireMenuCanceled()
-
- /**
- * createMenuChangeListener
- * @returns ChangeListener
- */
- private ChangeListener createMenuChangeListener() {
- return null; // TODO
- } // createMenuChangeListener()
-
- /**
- * createWinListener
- * @param popup TODO
- * @returns JMenu.WinListener
- */
- protected JMenu.WinListener createWinListener(JPopupMenu popup) {
- return null; // TODO
- } // createWinListener()
-
- /**
- * menuSelectionChanged
- * @param value0 TODO
- */
- public void menuSelectionChanged(boolean changed) {
- // TODO
- } // menuSelectionChanged()
-
- /**
- * getSubElements
- * @returns MenuElement[]
- */
- public MenuElement[] getSubElements() {
- return null; // TODO
- } // getSubElements()
-
- /**
- * getComponent
- * @returns Component
- */
- public Component getComponent() {
- return null; // TODO
- } // getComponent()
-
- /**
- * setAccelerator
- * @param keystroke TODO
- */
- public void setAccelerator(KeyStroke keystroke) {
- // TODO
- } // setAccelerator()
-
- /**
- * processKeyEvent
- * @param event TODO
- */
- protected void processKeyEvent(KeyEvent event) {
- // TODO
- } // processKeyEvent()
-
- /**
- * doClick
- * @param time TODO
- */
- public void doClick(int time) {
- // TODO
- } // doClick()
-
- /**
- * paramString
- * @returns String
- */
- protected String paramString() {
- return null; // TODO
- } // paramString()
-
- /**
- * getAccessibleContext
- * @returns AccessibleContext
- */
- public AccessibleContext getAccessibleContext() {
- if (accessibleContext == null) {
- accessibleContext = new AccessibleJMenu(this);
- } // if
- return accessibleContext;
- } // getAccessibleContext()
-
-
-} // JMenu
+ private static final String uiClassID = "MenuUI";
+ private static Hashtable listenerRegistry = null;
+ private JPopupMenu popupMenu = new JPopupMenu();
+ private ChangeListener menuChangeListener;
+ private MenuEvent menuEvent;
+ private int delay;
+ protected JMenu.WinListener popupListener;
+
+ /**
+ * Creates a new JMenu object.
+ */
+ public JMenu()
+ {
+ super();
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param text DOCUMENT ME!
+ */
+ public JMenu(String text)
+ {
+ super(text);
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param action DOCUMENT ME!
+ */
+ public JMenu(Action action)
+ {
+ super(action);
+ }
+
+ /**
+ * Creates a new JMenu object.
+ *
+ * @param text DOCUMENT ME!
+ * @param tearoff DOCUMENT ME!
+ */
+ public JMenu(String text, boolean tearoff)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param stream DOCUMENT ME!
+ *
+ * @throws IOException DOCUMENT ME!
+ */
+ private void writeObject(ObjectOutputStream stream) throws IOException
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(JMenuItem item)
+ {
+ return popupMenu.add(item);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component add(Component component)
+ {
+ return popupMenu.add(component);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component add(Component component, int index)
+ {
+ return popupMenu.add(component, index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param text DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(String text)
+ {
+ return popupMenu.add(text);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem add(Action action)
+ {
+ return popupMenu.add(action);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ */
+ public void remove(JMenuItem item)
+ {
+ popupMenu.remove(item);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ */
+ public void remove(int index)
+ {
+ popupMenu.remove(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ */
+ public void remove(Component component)
+ {
+ int index = popupMenu.getComponentIndex(component);
+ popupMenu.remove(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void removeAll()
+ {
+ popupMenu.removeAll();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param text DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ */
+ public void insert(String text, int index)
+ {
+ popupMenu.insert(new JMenuItem(text), index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem insert(JMenuItem item, int index)
+ {
+ popupMenu.insert(item, index);
+
+ return item;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem insert(Action action, int index)
+ {
+ JMenuItem item = new JMenuItem(action);
+ popupMenu.insert(item, index);
+
+ return item;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void updateUI()
+ {
+ super.setUI((MenuItemUI) UIManager.getUI(this));
+ invalidate();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getUIClassID()
+ {
+ return uiClassID;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param model DOCUMENT ME!
+ */
+ public void setModel(ButtonModel model)
+ {
+ super.setModel(model);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isSelected()
+ {
+ return super.isSelected();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param selected DOCUMENT ME!
+ */
+ public void setSelected(boolean selected)
+ {
+ super.setSelected(selected);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isPopupMenuVisible()
+ {
+ return popupMenu.isVisible();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param popup DOCUMENT ME!
+ */
+ public void setPopupMenuVisible(boolean popup)
+ {
+ if (isEnabled())
+ popupMenu.setVisible(popup);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected Point getPopupMenuOrigin()
+ {
+ // if menu in the menu bar
+ if (isTopLevelMenu())
+ return new Point(0, this.getHeight());
+
+ // if submenu
+ return new Point(this.getWidth(), 0);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getDelay()
+ {
+ return delay;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param delay DOCUMENT ME!
+ */
+ public void setDelay(int delay)
+ {
+ this.delay = delay;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param x DOCUMENT ME!
+ * @param y DOCUMENT ME!
+ */
+ public void setMenuLocation(int x, int y)
+ {
+ popupMenu.setLocation(x, y);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param action DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected JMenuItem createActionComponent(Action action)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param item DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected PropertyChangeListener createActionChangeListener(JMenuItem item)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void addSeparator()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ */
+ public void insertSeparator(int index)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JMenuItem getItem(int index)
+ {
+ Component c = popupMenu.getComponentAtIndex(index);
+
+ if (c instanceof JMenuItem)
+ return (JMenuItem) c;
+ else
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getItemCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isTearOff()
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getMenuComponentCount()
+ {
+ return popupMenu.getComponentCount();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param index DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component getMenuComponent(int index)
+ {
+ return (Component) popupMenu.getComponentAtIndex(index);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component[] getMenuComponents()
+ {
+ return popupMenu.getComponents();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isTopLevelMenu()
+ {
+ if (getParent() instanceof JMenuBar)
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param component DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isMenuComponent(Component component)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JPopupMenu getPopupMenu()
+ {
+ return popupMenu;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param listener DOCUMENT ME!
+ */
+ public void addMenuListener(MenuListener listener)
+ {
+ listenerList.add(MenuListener.class, listener);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param listener DOCUMENT ME!
+ */
+ public void removeMenuListener(MenuListener listener)
+ {
+ listenerList.remove(MenuListener.class, listener);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuSelected()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuSelected(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuDeselected()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuDeselected(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void fireMenuCanceled()
+ {
+ EventListener[] ll = listenerList.getListeners(MenuListener.class);
+
+ for (int i = 0; i < ll.length; i++)
+ ((MenuListener) ll[i]).menuCanceled(new MenuEvent(this));
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ private ChangeListener createMenuChangeListener()
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param popup DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected JMenu.WinListener createWinListener(JPopupMenu popup)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param changed DOCUMENT ME!
+ */
+ public void menuSelectionChanged(boolean changed)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public MenuElement[] getSubElements()
+ {
+ return new MenuElement[] { popupMenu };
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Component getComponent()
+ {
+ return this;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param keystroke DOCUMENT ME!
+ */
+ public void setAccelerator(KeyStroke keystroke)
+ {
+ super.setAccelerator(keystroke);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param event DOCUMENT ME!
+ */
+ protected void processKeyEvent(KeyEvent event)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param time DOCUMENT ME!
+ */
+ public void doClick(int time)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected String paramString()
+ {
+ return "JMenu";
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleJMenu(this);
+
+ return accessibleContext;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+ protected class AccessibleJMenu extends AccessibleJMenuItem
+ implements AccessibleSelection
+ {
+ /**
+ * Creates a new AccessibleJMenu object.
+ *
+ * @param component DOCUMENT ME!
+ */
+ protected AccessibleJMenu(JMenu component)
+ {
+ super(component);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getAccessibleChildrenCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Accessible getAccessibleChild(int value0)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleSelection getAccessibleSelection()
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Accessible getAccessibleSelection(int value0)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isAccessibleChildSelected(int value0)
+ {
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.MENU;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getAccessibleSelectionCount()
+ {
+ return 0;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void addAccessibleSelection(int value0)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void removeAccessibleSelection(int value0)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void clearAccessibleSelection()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void selectAllAccessibleSelection()
+ {
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+ protected class WinListener extends WindowAdapter implements Serializable
+ {
+ JPopupMenu popupMenu;
+
+ /**
+ * Creates a new WinListener object.
+ *
+ * @param value0 DOCUMENT ME!
+ * @param value1 DOCUMENT ME!
+ */
+ public WinListener(JMenu value0, JPopupMenu value1)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param value0 DOCUMENT ME!
+ */
+ public void windowClosing(WindowEvent value0)
+ {
+ }
+ }
+}
Index: javax/swing/JPopupMenu.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JPopupMenu.java,v
retrieving revision 1.3.8.1
diff -c -p -u -r1.3.8.1 JPopupMenu.java
--- javax/swing/JPopupMenu.java 3 May 2004 15:38:32 -0000 1.3.8.1
+++ javax/swing/JPopupMenu.java 18 May 2004 14:17:23 -0000
@@ -218,6 +218,10 @@ public class JPopupMenu extends JCompone
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.weightx = 100.0;
constraints.weighty = 100.0;
+
+ if (index == -1)
+ index = getComponents().length;
+
constraints.gridy = index;
super.add(component, constraints, index);
@@ -755,7 +759,8 @@ public class JPopupMenu extends JCompone
*/
public boolean isPopupTrigger(MouseEvent event)
{
- return event.isPopupTrigger();
+ return ((PopupMenuUI)getUI()).isPopupTrigger(event);
+
}
/**
@@ -825,6 +830,7 @@ public class JPopupMenu extends JCompone
{
JLayeredPane layeredPane;
layeredPane = SwingUtilities.getRootPane(invoker).getLayeredPane();
+ this.setBounds(x, y, width, height);
layeredPane.add(this, JLayeredPane.POPUP_LAYER, 0);
}
Index: javax/swing/plaf/basic/BasicIconFactory.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicIconFactory.java,v
retrieving revision 1.3.2.2
diff -c -p -u -r1.3.2.2 BasicIconFactory.java
--- javax/swing/plaf/basic/BasicIconFactory.java 2 Apr 2004 20:00:52 -0000 1.3.2.2
+++ javax/swing/plaf/basic/BasicIconFactory.java 18 May 2004 14:17:23 -0000
@@ -82,7 +82,34 @@ public class BasicIconFactory implements
}
public static Icon getMenuArrowIcon()
{
- return new DummyIcon();
+ return new Icon()
+ {
+ public int getIconHeight()
+ {
+ return 12;
+ }
+
+ public int getIconWidth()
+ {
+ return 12;
+ }
+
+ public void paintIcon(Component c, Graphics g, int x, int y)
+ {
+ g.translate(x, y);
+
+ Color saved = g.getColor();
+
+ g.setColor(Color.BLACK);
+
+ g.fillPolygon(new Polygon(new int[] { 3, 9, 3 },
+ new int[] { 2, 6, 10 },
+ 3));
+
+ g.setColor(saved);
+ g.translate(-x, -y);
+ }
+ };
}
public static Icon getCheckBoxIcon()
Index: javax/swing/plaf/basic/BasicMenuItemUI.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java,v
retrieving revision 1.1.2.7
diff -c -p -u -r1.1.2.7 BasicMenuItemUI.java
--- javax/swing/plaf/basic/BasicMenuItemUI.java 27 Apr 2004 16:33:31 -0000 1.1.2.7
+++ javax/swing/plaf/basic/BasicMenuItemUI.java 18 May 2004 14:17:23 -0000
@@ -62,6 +62,7 @@ import javax.swing.ButtonModel;
import javax.swing.Icon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
+import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;
@@ -172,7 +173,7 @@ public class BasicMenuItemUI extends Men
*/
private int defaultAcceleratorLabelGap = 4;
- BasicMenuItemUI()
+ public BasicMenuItemUI()
{
mouseInputListener = createMouseInputListener(menuItem);
menuDragMouseListener = createMenuDragMouseListener(menuItem);
@@ -240,7 +241,6 @@ public class BasicMenuItemUI extends Men
*/
public Dimension getMaximumSize(JComponent c)
{
- // TODO
return null;
}
@@ -253,7 +253,6 @@ public class BasicMenuItemUI extends Men
*/
public Dimension getMinimumSize(JComponent c)
{
- // TODO
return null;
}
@@ -325,7 +324,15 @@ public class BasicMenuItemUI extends Men
d.height = checkIcon.getIconHeight();
}
- return d;
+ if (arrowIcon != null && (c instanceof JMenu))
+ {
+ d.width = d.width + arrowIcon.getIconWidth() + defaultTextIconGap;
+
+ if (arrowIcon.getIconHeight() > d.height)
+ d.height = arrowIcon.getIconHeight();
+ }
+
+ return d;
}
/**
@@ -364,7 +371,6 @@ public class BasicMenuItemUI extends Men
acceleratorFont = defaults.getFont("MenuItem.acceleratorFont");
acceleratorForeground = defaults.getColor("MenuItem.acceleratorForeground");
acceleratorSelectionForeground = defaults.getColor("MenuItem.acceleratorSelectionForeground");
- arrowIcon = defaults.getIcon("MenuItem.arrowIcon");
selectionBackground = defaults.getColor("MenuItem.selectionBackground");
selectionForeground = defaults.getColor("MenuItem.selectionForeground");
acceleratorDelimiter = defaults.getString("MenuItem.acceleratorDelimiter");
@@ -495,10 +501,16 @@ public class BasicMenuItemUI extends Men
vr.x = cr.x + cr.width + defaultTextIconGap;
}
- if (arrowIcon != null)
+ if (arrowIcon != null && (c instanceof JMenu))
{
- // FIXME: if this menu contains a submenu, we need to draw arrow icon
- // here as well
+ if (! ((JMenu) c).isTopLevelMenu())
+ {
+ int width = arrowIcon.getIconWidth();
+ int height = arrowIcon.getIconHeight();
+
+ arrowIcon.paintIcon(c, g, vr.width - width + defaultTextIconGap,
+ vr.y + 2);
+ }
}
// paint text and user menu icon if it exists
Index: javax/swing/plaf/basic/BasicMenuUI.java
===================================================================
RCS file: javax/swing/plaf/basic/BasicMenuUI.java
diff -N javax/swing/plaf/basic/BasicMenuUI.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ javax/swing/plaf/basic/BasicMenuUI.java 18 May 2004 14:17:23 -0000
@@ -0,0 +1,349 @@
+/* BasicMenuUI.java
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+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.plaf.basic;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Insets;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import javax.swing.JComponent;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.MenuElement;
+import javax.swing.MenuSelectionManager;
+import javax.swing.UIDefaults;
+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.MenuEvent;
+import javax.swing.event.MenuKeyEvent;
+import javax.swing.event.MenuKeyListener;
+import javax.swing.event.MenuListener;
+import javax.swing.event.MouseInputListener;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.MenuItemUI;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision: 1.1.2.7 $
+ */
+public class BasicMenuUI extends BasicMenuItemUI
+{
+ protected ChangeListener changeListener;
+ protected MenuListener menuListener;
+ protected PropertyChangeListener propertyChangeListener;
+
+ /**
+ * Creates a new BasicMenuUI object.
+ */
+ public BasicMenuUI()
+ {
+ mouseInputListener = createMouseInputListener(menuItem);
+ menuListener = createMenuListener(menuItem);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected ChangeListener createChangeListener(JComponent c)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected MenuKeyListener createMenuKeyListener(JComponent c)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected MenuListener createMenuListener(JComponent c)
+ {
+ return new MenuHandler();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected MouseInputListener createMouseInputListener(JComponent c)
+ {
+ return new MouseInputHandler();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected PropertyChangeListener createPropertyChangeListener(JComponent c)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param x DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public static ComponentUI createUI(JComponent x)
+ {
+ return new BasicMenuUI();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param c DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Dimension getMaximumSize(JComponent c)
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected String getPropertyPrefix()
+ {
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void installDefaults()
+ {
+ UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+
+ menuItem.setBackground(defaults.getColor("Menu.background"));
+ menuItem.setBorder(defaults.getBorder("Menu.border"));
+ menuItem.setFont(defaults.getFont("Menu.font"));
+ menuItem.setForeground(defaults.getColor("Menu.foreground"));
+ menuItem.setMargin(defaults.getInsets("Menu.margin"));
+ acceleratorFont = defaults.getFont("Menu.acceleratorFont");
+ acceleratorForeground = defaults.getColor("Menu.acceleratorForeground");
+ acceleratorSelectionForeground = defaults.getColor("Menu.acceleratorSelectionForeground");
+ arrowIcon = defaults.getIcon("Menu.arrowIcon");
+ oldBorderPainted = defaults.getBoolean("Menu.borderPainted");
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void installKeyboardActions()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void installListeners()
+ {
+ ((JMenu) menuItem).addMouseListener(mouseInputListener);
+ ((JMenu) menuItem).addMenuListener(menuListener);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param menu DOCUMENT ME!
+ */
+ protected void setupPostTimer(JMenu menu)
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void uninstallDefaults()
+ {
+ menuItem.setBackground(null);
+ menuItem.setBorder(null);
+ menuItem.setFont(null);
+ menuItem.setForeground(null);
+ menuItem.setMargin(null);
+ acceleratorFont = null;
+ acceleratorForeground = null;
+ acceleratorSelectionForeground = null;
+ arrowIcon = null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void uninstallKeyboardActions()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ protected void uninstallListeners()
+ {
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision: 1.1.2.7 $
+ */
+ protected class MouseInputHandler implements MouseInputListener
+ {
+ protected MouseInputHandler()
+ {
+ }
+
+ public void mouseClicked(MouseEvent e)
+ {
+ }
+
+ public void mouseDragged(MouseEvent e)
+ {
+ MenuSelectionManager manager = MenuSelectionManager.defaultManager();
+ manager.processMouseEvent(e);
+ }
+
+ public void mouseEntered(MouseEvent e)
+ {
+ MenuSelectionManager manager = MenuSelectionManager.defaultManager();
+ manager.setSelectedPath(manager.getPath((Component) e.getSource()));
+ manager.processMouseEvent(e);
+
+ JMenu subMenu = (JMenu) menuItem;
+
+ int x = 0;
+ int y = 0;
+
+ // location of the popup menu is relative to the invoker
+ if (subMenu.isTopLevelMenu())
+ y = subMenu.getHeight();
+
+ else
+ x = subMenu.getWidth();
+
+ subMenu.getPopupMenu().show(subMenu, x, y);
+ }
+
+ public void mouseExited(MouseEvent e)
+ {
+ }
+
+ public void mouseMoved(MouseEvent e)
+ {
+ }
+
+ public void mousePressed(MouseEvent e)
+ {
+ }
+
+ public void mouseReleased(MouseEvent e)
+ {
+ MenuSelectionManager manager = MenuSelectionManager.defaultManager();
+ manager.processMouseEvent(e);
+ }
+ }
+
+ protected class MenuHandler implements MenuListener
+ {
+ public void menuCanceled(MenuEvent e)
+ {
+ }
+
+ public void menuDeselected(MenuEvent e)
+ {
+ }
+
+ public void menuSelected(MenuEvent e)
+ {
+ }
+ }
+}
More information about the Java-patches
mailing list