home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / plaf / basic / BasicMenuBarUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.7 KB  |  109 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.event.ContainerListener;
  5. import javax.swing.AbstractButton;
  6. import javax.swing.JComponent;
  7. import javax.swing.JMenu;
  8. import javax.swing.JMenuBar;
  9. import javax.swing.KeyStroke;
  10. import javax.swing.LookAndFeel;
  11. import javax.swing.event.ChangeListener;
  12. import javax.swing.plaf.ComponentUI;
  13. import javax.swing.plaf.MenuBarUI;
  14. import javax.swing.plaf.UIResource;
  15.  
  16. public class BasicMenuBarUI extends MenuBarUI {
  17.    protected JMenuBar menuBar = null;
  18.    protected ContainerListener containerListener;
  19.    protected ChangeListener changeListener;
  20.  
  21.    protected ChangeListener createChangeListener() {
  22.       return new ChangeHandler(this);
  23.    }
  24.  
  25.    protected ContainerListener createContainerListener() {
  26.       return new ContainerHandler(this);
  27.    }
  28.  
  29.    public static ComponentUI createUI(JComponent var0) {
  30.       return new BasicMenuBarUI();
  31.    }
  32.  
  33.    public Dimension getMaximumSize(JComponent var1) {
  34.       return null;
  35.    }
  36.  
  37.    public Dimension getMinimumSize(JComponent var1) {
  38.       return null;
  39.    }
  40.  
  41.    public Dimension getPreferredSize(JComponent var1) {
  42.       return null;
  43.    }
  44.  
  45.    protected void installDefaults() {
  46.       if (this.menuBar.getLayout() == null || this.menuBar.getLayout() instanceof UIResource) {
  47.          this.menuBar.setLayout(new DefaultMenuLayout(this.menuBar, 0));
  48.       }
  49.  
  50.       this.menuBar.setOpaque(true);
  51.       LookAndFeel.installBorder(this.menuBar, "MenuBar.border");
  52.       LookAndFeel.installColorsAndFont(this.menuBar, "MenuBar.background", "MenuBar.foreground", "MenuBar.font");
  53.    }
  54.  
  55.    protected void installKeyboardActions() {
  56.       this.menuBar.registerKeyboardAction(new TakeFocus(this.menuBar), KeyStroke.getKeyStroke(121, 0, false), 2);
  57.    }
  58.  
  59.    protected void installListeners() {
  60.       this.containerListener = this.createContainerListener();
  61.       this.changeListener = this.createChangeListener();
  62.  
  63.       for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
  64.          JMenu var2 = this.menuBar.getMenu(var1);
  65.          if (var2 != null) {
  66.             ((AbstractButton)var2).getModel().addChangeListener(this.changeListener);
  67.          }
  68.       }
  69.  
  70.       this.menuBar.addContainerListener(this.containerListener);
  71.    }
  72.  
  73.    public void installUI(JComponent var1) {
  74.       this.menuBar = (JMenuBar)var1;
  75.       this.installDefaults();
  76.       this.installListeners();
  77.       this.installKeyboardActions();
  78.    }
  79.  
  80.    protected void uninstallDefaults() {
  81.       LookAndFeel.uninstallBorder(this.menuBar);
  82.    }
  83.  
  84.    protected void uninstallKeyboardActions() {
  85.       this.menuBar.unregisterKeyboardAction(KeyStroke.getKeyStroke(121, 0, false));
  86.    }
  87.  
  88.    protected void uninstallListeners() {
  89.       this.menuBar.removeContainerListener(this.containerListener);
  90.  
  91.       for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
  92.          JMenu var2 = this.menuBar.getMenu(var1);
  93.          if (var2 != null) {
  94.             ((AbstractButton)var2).getModel().removeChangeListener(this.changeListener);
  95.          }
  96.       }
  97.  
  98.       this.containerListener = null;
  99.       this.changeListener = null;
  100.    }
  101.  
  102.    public void uninstallUI(JComponent var1) {
  103.       this.uninstallDefaults();
  104.       this.uninstallListeners();
  105.       this.uninstallKeyboardActions();
  106.       this.menuBar = null;
  107.    }
  108. }
  109.