home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / plaf / basic / BasicMenuUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  6.9 KB  |  224 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.beans.PropertyChangeListener;
  6. import javax.swing.ActionMap;
  7. import javax.swing.InputMap;
  8. import javax.swing.JComponent;
  9. import javax.swing.JMenu;
  10. import javax.swing.KeyStroke;
  11. import javax.swing.MenuElement;
  12. import javax.swing.SwingUtilities;
  13. import javax.swing.Timer;
  14. import javax.swing.UIManager;
  15. import javax.swing.event.ChangeListener;
  16. import javax.swing.event.MenuDragMouseListener;
  17. import javax.swing.event.MenuKeyListener;
  18. import javax.swing.event.MenuListener;
  19. import javax.swing.event.MouseInputListener;
  20. import javax.swing.plaf.ActionMapUIResource;
  21. import javax.swing.plaf.ComponentUI;
  22.  
  23. public class BasicMenuUI extends BasicMenuItemUI {
  24.    protected ChangeListener changeListener;
  25.    protected PropertyChangeListener propertyChangeListener;
  26.    protected MenuListener menuListener;
  27.    private int lastMnemonic = 0;
  28.    private InputMap selectedWindowInputMap;
  29.    private static final boolean TRACE = false;
  30.    private static final boolean VERBOSE = false;
  31.    private static final boolean DEBUG = false;
  32.  
  33.    public static ComponentUI createUI(JComponent var0) {
  34.       return new BasicMenuUI();
  35.    }
  36.  
  37.    protected void installDefaults() {
  38.       super.installDefaults();
  39.       ((JMenu)super.menuItem).setDelay(200);
  40.    }
  41.  
  42.    protected String getPropertyPrefix() {
  43.       return "Menu";
  44.    }
  45.  
  46.    protected void installListeners() {
  47.       super.installListeners();
  48.       this.changeListener = this.createChangeListener(super.menuItem);
  49.       this.propertyChangeListener = this.createPropertyChangeListener(super.menuItem);
  50.       this.menuListener = this.createMenuListener(super.menuItem);
  51.       super.menuItem.addChangeListener(this.changeListener);
  52.       super.menuItem.addPropertyChangeListener(this.propertyChangeListener);
  53.       ((JMenu)super.menuItem).addMenuListener(this.menuListener);
  54.    }
  55.  
  56.    protected void installKeyboardActions() {
  57.       super.installKeyboardActions();
  58.       this.updateMnemonicBinding();
  59.    }
  60.  
  61.    void updateMnemonicBinding() {
  62.       int var1 = super.menuItem.getModel().getMnemonic();
  63.       if (var1 != this.lastMnemonic) {
  64.          if (this.lastMnemonic != 0 && super.windowInputMap != null) {
  65.             super.windowInputMap.remove(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
  66.          }
  67.  
  68.          if (var1 != 0) {
  69.             if (super.windowInputMap == null) {
  70.                super.windowInputMap = ((BasicMenuItemUI)this).createInputMap(2);
  71.                SwingUtilities.replaceUIInputMap(super.menuItem, 2, super.windowInputMap);
  72.             }
  73.  
  74.             super.windowInputMap.put(KeyStroke.getKeyStroke(var1, 8, false), "selectMenu");
  75.          }
  76.  
  77.          this.lastMnemonic = var1;
  78.       }
  79.    }
  80.  
  81.    protected void uninstallKeyboardActions() {
  82.       super.uninstallKeyboardActions();
  83.    }
  84.  
  85.    ActionMap getActionMap() {
  86.       return this.createActionMap();
  87.    }
  88.  
  89.    ActionMap createActionMap() {
  90.       ActionMap var1 = super.createActionMap();
  91.       if (var1 != null) {
  92.          var1.put("selectMenu", new PostAction((JMenu)super.menuItem, true));
  93.          ActionMap var2 = (ActionMap)UIManager.get("Menu.sharedActionMap");
  94.          if (var2 == null) {
  95.             var2 = this.createSharedActionMap();
  96.             if (var2 != null) {
  97.                UIManager.put("MenuUI.sharedActionMap", var2);
  98.             }
  99.          }
  100.  
  101.          if (var2 != null) {
  102.             var1.setParent(var2);
  103.          }
  104.       }
  105.  
  106.       return var1;
  107.    }
  108.  
  109.    ActionMap createSharedActionMap() {
  110.       ActionMapUIResource var1 = new ActionMapUIResource();
  111.       ((ActionMap)var1).put("cancel", new CancelAction((1)null));
  112.       ((ActionMap)var1).put("selectNext", new SelectNextItemAction((1)null));
  113.       ((ActionMap)var1).put("selectPrevious", new SelectPreviousItemAction((1)null));
  114.       ((ActionMap)var1).put("selectParent", new SelectParentItemAction((1)null));
  115.       ((ActionMap)var1).put("selectChild", new SelectChildItemAction((1)null));
  116.       ((ActionMap)var1).put("return", new ReturnAction(this, (1)null));
  117.       return var1;
  118.    }
  119.  
  120.    protected MouseInputListener createMouseInputListener(JComponent var1) {
  121.       return new MouseInputHandler(this, (1)null);
  122.    }
  123.  
  124.    protected MenuListener createMenuListener(JComponent var1) {
  125.       return new MenuHandler((1)null);
  126.    }
  127.  
  128.    protected ChangeListener createChangeListener(JComponent var1) {
  129.       return new ChangeHandler(this, (JMenu)var1, this);
  130.    }
  131.  
  132.    protected PropertyChangeListener createPropertyChangeListener(JComponent var1) {
  133.       return new PropertyChangeHandler(this, (1)null);
  134.    }
  135.  
  136.    protected void uninstallDefaults() {
  137.       super.menuItem.setArmed(false);
  138.       super.menuItem.setSelected(false);
  139.       super.menuItem.resetKeyboardActions();
  140.       super.uninstallDefaults();
  141.    }
  142.  
  143.    protected void uninstallListeners() {
  144.       super.uninstallListeners();
  145.       super.menuItem.removeChangeListener(this.changeListener);
  146.       super.menuItem.removePropertyChangeListener(this.propertyChangeListener);
  147.       ((JMenu)super.menuItem).removeMenuListener(this.menuListener);
  148.       this.changeListener = null;
  149.       this.propertyChangeListener = null;
  150.       this.menuListener = null;
  151.    }
  152.  
  153.    protected MenuDragMouseListener createMenuDragMouseListener(JComponent var1) {
  154.       return new MenuDragMouseHandler(this, (1)null);
  155.    }
  156.  
  157.    protected MenuKeyListener createMenuKeyListener(JComponent var1) {
  158.       return new MenuKeyHandler(this, (1)null);
  159.    }
  160.  
  161.    public Dimension getMaximumSize(JComponent var1) {
  162.       if (((JMenu)super.menuItem).isTopLevelMenu()) {
  163.          Dimension var2 = var1.getPreferredSize();
  164.          return new Dimension(var2.width, 32767);
  165.       } else {
  166.          return null;
  167.       }
  168.    }
  169.  
  170.    protected void setupPostTimer(JMenu var1) {
  171.       Timer var2 = new Timer(var1.getDelay(), new PostAction(var1, false));
  172.       var2.setRepeats(false);
  173.       var2.start();
  174.    }
  175.  
  176.    private static MenuElement nextEnabledChild(MenuElement[] var0, int var1) {
  177.       int var2 = var1;
  178.  
  179.       for(int var3 = var0.length; var2 < var3; ++var2) {
  180.          if (var0[var2] != null) {
  181.             Component var4 = var0[var2].getComponent();
  182.             if (var4 != null && var4.isEnabled()) {
  183.                return var0[var2];
  184.             }
  185.          }
  186.       }
  187.  
  188.       return null;
  189.    }
  190.  
  191.    private static MenuElement previousEnabledChild(MenuElement[] var0, int var1) {
  192.       for(int var2 = var1; var2 >= 0; --var2) {
  193.          if (var0[var2] != null) {
  194.             Component var3 = var0[var2].getComponent();
  195.             if (var3 != null && var3.isEnabled()) {
  196.                return var0[var2];
  197.             }
  198.          }
  199.       }
  200.  
  201.       return null;
  202.    }
  203.  
  204.    // $FF: synthetic method
  205.    static InputMap access$1100(BasicMenuUI var0) {
  206.       return var0.selectedWindowInputMap;
  207.    }
  208.  
  209.    // $FF: synthetic method
  210.    static InputMap access$1102(BasicMenuUI var0, InputMap var1) {
  211.       return var0.selectedWindowInputMap = var1;
  212.    }
  213.  
  214.    // $FF: synthetic method
  215.    static MenuElement access$1200(MenuElement[] var0, int var1) {
  216.       return nextEnabledChild(var0, var1);
  217.    }
  218.  
  219.    // $FF: synthetic method
  220.    static MenuElement access$1300(MenuElement[] var0, int var1) {
  221.       return previousEnabledChild(var0, var1);
  222.    }
  223. }
  224.