home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Component;
- import java.awt.Dimension;
- import java.beans.PropertyChangeListener;
- import javax.swing.ActionMap;
- import javax.swing.InputMap;
- import javax.swing.JComponent;
- import javax.swing.JMenu;
- import javax.swing.KeyStroke;
- import javax.swing.MenuElement;
- import javax.swing.SwingUtilities;
- import javax.swing.Timer;
- import javax.swing.UIManager;
- import javax.swing.event.ChangeListener;
- import javax.swing.event.MenuDragMouseListener;
- import javax.swing.event.MenuKeyListener;
- import javax.swing.event.MenuListener;
- import javax.swing.event.MouseInputListener;
- import javax.swing.plaf.ActionMapUIResource;
- import javax.swing.plaf.ComponentUI;
-
- public class BasicMenuUI extends BasicMenuItemUI {
- protected ChangeListener changeListener;
- protected PropertyChangeListener propertyChangeListener;
- protected MenuListener menuListener;
- private int lastMnemonic = 0;
- private InputMap selectedWindowInputMap;
- private static final boolean TRACE = false;
- private static final boolean VERBOSE = false;
- private static final boolean DEBUG = false;
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicMenuUI();
- }
-
- protected void installDefaults() {
- super.installDefaults();
- ((JMenu)super.menuItem).setDelay(200);
- }
-
- protected String getPropertyPrefix() {
- return "Menu";
- }
-
- protected void installListeners() {
- super.installListeners();
- this.changeListener = this.createChangeListener(super.menuItem);
- this.propertyChangeListener = this.createPropertyChangeListener(super.menuItem);
- this.menuListener = this.createMenuListener(super.menuItem);
- super.menuItem.addChangeListener(this.changeListener);
- super.menuItem.addPropertyChangeListener(this.propertyChangeListener);
- ((JMenu)super.menuItem).addMenuListener(this.menuListener);
- }
-
- protected void installKeyboardActions() {
- super.installKeyboardActions();
- this.updateMnemonicBinding();
- }
-
- void updateMnemonicBinding() {
- int var1 = super.menuItem.getModel().getMnemonic();
- if (var1 != this.lastMnemonic) {
- if (this.lastMnemonic != 0 && super.windowInputMap != null) {
- super.windowInputMap.remove(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
- }
-
- if (var1 != 0) {
- if (super.windowInputMap == null) {
- super.windowInputMap = ((BasicMenuItemUI)this).createInputMap(2);
- SwingUtilities.replaceUIInputMap(super.menuItem, 2, super.windowInputMap);
- }
-
- super.windowInputMap.put(KeyStroke.getKeyStroke(var1, 8, false), "selectMenu");
- }
-
- this.lastMnemonic = var1;
- }
- }
-
- protected void uninstallKeyboardActions() {
- super.uninstallKeyboardActions();
- }
-
- ActionMap getActionMap() {
- return this.createActionMap();
- }
-
- ActionMap createActionMap() {
- ActionMap var1 = super.createActionMap();
- if (var1 != null) {
- var1.put("selectMenu", new PostAction((JMenu)super.menuItem, true));
- ActionMap var2 = (ActionMap)UIManager.get("Menu.sharedActionMap");
- if (var2 == null) {
- var2 = this.createSharedActionMap();
- if (var2 != null) {
- UIManager.put("MenuUI.sharedActionMap", var2);
- }
- }
-
- if (var2 != null) {
- var1.setParent(var2);
- }
- }
-
- return var1;
- }
-
- ActionMap createSharedActionMap() {
- ActionMapUIResource var1 = new ActionMapUIResource();
- ((ActionMap)var1).put("cancel", new CancelAction((1)null));
- ((ActionMap)var1).put("selectNext", new SelectNextItemAction((1)null));
- ((ActionMap)var1).put("selectPrevious", new SelectPreviousItemAction((1)null));
- ((ActionMap)var1).put("selectParent", new SelectParentItemAction((1)null));
- ((ActionMap)var1).put("selectChild", new SelectChildItemAction((1)null));
- ((ActionMap)var1).put("return", new ReturnAction(this, (1)null));
- return var1;
- }
-
- protected MouseInputListener createMouseInputListener(JComponent var1) {
- return new MouseInputHandler(this, (1)null);
- }
-
- protected MenuListener createMenuListener(JComponent var1) {
- return new MenuHandler((1)null);
- }
-
- protected ChangeListener createChangeListener(JComponent var1) {
- return new ChangeHandler(this, (JMenu)var1, this);
- }
-
- protected PropertyChangeListener createPropertyChangeListener(JComponent var1) {
- return new PropertyChangeHandler(this, (1)null);
- }
-
- protected void uninstallDefaults() {
- super.menuItem.setArmed(false);
- super.menuItem.setSelected(false);
- super.menuItem.resetKeyboardActions();
- super.uninstallDefaults();
- }
-
- protected void uninstallListeners() {
- super.uninstallListeners();
- super.menuItem.removeChangeListener(this.changeListener);
- super.menuItem.removePropertyChangeListener(this.propertyChangeListener);
- ((JMenu)super.menuItem).removeMenuListener(this.menuListener);
- this.changeListener = null;
- this.propertyChangeListener = null;
- this.menuListener = null;
- }
-
- protected MenuDragMouseListener createMenuDragMouseListener(JComponent var1) {
- return new MenuDragMouseHandler(this, (1)null);
- }
-
- protected MenuKeyListener createMenuKeyListener(JComponent var1) {
- return new MenuKeyHandler(this, (1)null);
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- if (((JMenu)super.menuItem).isTopLevelMenu()) {
- Dimension var2 = var1.getPreferredSize();
- return new Dimension(var2.width, 32767);
- } else {
- return null;
- }
- }
-
- protected void setupPostTimer(JMenu var1) {
- Timer var2 = new Timer(var1.getDelay(), new PostAction(var1, false));
- var2.setRepeats(false);
- var2.start();
- }
-
- private static MenuElement nextEnabledChild(MenuElement[] var0, int var1) {
- int var2 = var1;
-
- for(int var3 = var0.length; var2 < var3; ++var2) {
- if (var0[var2] != null) {
- Component var4 = var0[var2].getComponent();
- if (var4 != null && var4.isEnabled()) {
- return var0[var2];
- }
- }
- }
-
- return null;
- }
-
- private static MenuElement previousEnabledChild(MenuElement[] var0, int var1) {
- for(int var2 = var1; var2 >= 0; --var2) {
- if (var0[var2] != null) {
- Component var3 = var0[var2].getComponent();
- if (var3 != null && var3.isEnabled()) {
- return var0[var2];
- }
- }
- }
-
- return null;
- }
-
- // $FF: synthetic method
- static InputMap access$1100(BasicMenuUI var0) {
- return var0.selectedWindowInputMap;
- }
-
- // $FF: synthetic method
- static InputMap access$1102(BasicMenuUI var0, InputMap var1) {
- return var0.selectedWindowInputMap = var1;
- }
-
- // $FF: synthetic method
- static MenuElement access$1200(MenuElement[] var0, int var1) {
- return nextEnabledChild(var0, var1);
- }
-
- // $FF: synthetic method
- static MenuElement access$1300(MenuElement[] var0, int var1) {
- return previousEnabledChild(var0, var1);
- }
- }
-