home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / JMenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  6.2 KB  |  261 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.Accessible;
  4. import com.sun.java.accessibility.AccessibleContext;
  5. import com.sun.java.swing.plaf.MenuBarUI;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.Graphics;
  10. import java.awt.Insets;
  11. import java.awt.event.KeyEvent;
  12. import java.awt.event.MouseEvent;
  13. import java.io.IOException;
  14. import java.io.ObjectInputStream;
  15. import java.io.ObjectOutputStream;
  16. import java.io.Serializable;
  17.  
  18. public class JMenuBar extends JComponent implements Accessible, MenuElement {
  19.    private transient SingleSelectionModel selectionModel;
  20.    private boolean paintBorder = true;
  21.    private Insets margin;
  22.  
  23.    public JMenuBar() {
  24.       ((Container)this).setLayout(new BoxLayout(this, 0));
  25.       this.setSelectionModel(new DefaultSingleSelectionModel());
  26.       this.updateUI();
  27.    }
  28.  
  29.    public MenuBarUI getUI() {
  30.       return (MenuBarUI)super.ui;
  31.    }
  32.  
  33.    public void setUI(MenuBarUI var1) {
  34.       super.setUI(var1);
  35.    }
  36.  
  37.    public void updateUI() {
  38.       this.setUI((MenuBarUI)UIManager.getUI(this));
  39.    }
  40.  
  41.    public String getUIClassID() {
  42.       return "MenuBarUI";
  43.    }
  44.  
  45.    public SingleSelectionModel getSelectionModel() {
  46.       return this.selectionModel;
  47.    }
  48.  
  49.    public void setSelectionModel(SingleSelectionModel var1) {
  50.       this.selectionModel = var1;
  51.    }
  52.  
  53.    public JMenu add(JMenu var1) {
  54.       Dimension var2 = ((Component)var1).getSize();
  55.       var2.height = 32767;
  56.       super.add(var1);
  57.       this.getUI().registerMenu(var1);
  58.       return var1;
  59.    }
  60.  
  61.    public JMenu getMenu(int var1) {
  62.       Component var2 = this.getComponentAtIndex(var1);
  63.       return var2 instanceof JMenu ? (JMenu)var2 : null;
  64.    }
  65.  
  66.    public int getMenuCount() {
  67.       return ((Container)this).getComponentCount();
  68.    }
  69.  
  70.    public void remove(int var1) {
  71.       Component var2 = ((Container)this).getComponent(var1);
  72.       if (var2 instanceof JMenu) {
  73.          this.getUI().unregisterMenu((JMenu)var2);
  74.       }
  75.  
  76.       super.remove(var1);
  77.    }
  78.  
  79.    public void setHelpMenu(JMenu var1) {
  80.       throw new Error("setHelpMenu() not yet implemented.");
  81.    }
  82.  
  83.    public JMenu getHelpMenu() {
  84.       throw new Error("getHelpMenu() not yet implemented.");
  85.    }
  86.  
  87.    public Component getComponentAtIndex(int var1) {
  88.       int var2 = ((Container)this).getComponentCount();
  89.       if (var1 <= var2) {
  90.          Component[] var3 = ((Container)this).getComponents();
  91.          return var3[var1];
  92.       } else {
  93.          return null;
  94.       }
  95.    }
  96.  
  97.    public int getComponentIndex(Component var1) {
  98.       int var2 = ((Container)this).getComponentCount();
  99.       Component[] var3 = ((Container)this).getComponents();
  100.  
  101.       for(int var4 = 0; var4 < var2; ++var4) {
  102.          Component var5 = var3[var4];
  103.          if (var5 == var1) {
  104.             return var4;
  105.          }
  106.       }
  107.  
  108.       return -1;
  109.    }
  110.  
  111.    public void setSelected(Component var1) {
  112.       SingleSelectionModel var2 = this.getSelectionModel();
  113.       int var3 = this.getComponentIndex(var1);
  114.       var2.setSelectedIndex(var3);
  115.    }
  116.  
  117.    public boolean isSelected() {
  118.       return this.selectionModel.isSelected();
  119.    }
  120.  
  121.    public boolean isBorderPainted() {
  122.       return this.paintBorder;
  123.    }
  124.  
  125.    public void setBorderPainted(boolean var1) {
  126.       this.paintBorder = var1;
  127.    }
  128.  
  129.    protected void paintBorder(Graphics var1) {
  130.       if (this.isBorderPainted()) {
  131.          super.paintBorder(var1);
  132.       }
  133.  
  134.    }
  135.  
  136.    public void setMargin(Insets var1) {
  137.       this.margin = var1;
  138.       ((Container)this).invalidate();
  139.    }
  140.  
  141.    public Insets getMargin() {
  142.       return this.margin == null ? new Insets(0, 0, 0, 0) : this.margin;
  143.    }
  144.  
  145.    public void processMouseEvent(MouseEvent var1, MenuElement[] var2, MenuSelectionManager var3) {
  146.    }
  147.  
  148.    public void processKeyEvent(KeyEvent var1, MenuElement[] var2, MenuSelectionManager var3) {
  149.    }
  150.  
  151.    public void menuSelectionChanged(boolean var1) {
  152.    }
  153.  
  154.    public MenuElement[] getSubElements() {
  155.       int var1 = this.getMenuCount();
  156.       MenuElement[] var3 = new MenuElement[var1];
  157.  
  158.       for(int var2 = 0; var2 < var1; ++var2) {
  159.          var3[var2] = this.getMenu(var2);
  160.       }
  161.  
  162.       return var3;
  163.    }
  164.  
  165.    public Component getComponent() {
  166.       return this;
  167.    }
  168.  
  169.    public AccessibleContext getAccessibleContext() {
  170.       if (super.accessibleContext == null) {
  171.          super.accessibleContext = new AccessibleJMenuBar(this);
  172.       }
  173.  
  174.       return super.accessibleContext;
  175.    }
  176.  
  177.    public boolean isManagingFocus() {
  178.       return true;
  179.    }
  180.  
  181.    JComponent.KeyboardBinding bindingForKeyStroke(KeyStroke var1, int var2) {
  182.       JComponent.KeyboardBinding var3 = super.bindingForKeyStroke(var1, var2);
  183.       if (var3 != null) {
  184.          return var3;
  185.       } else {
  186.          Component[] var5 = ((Container)this).getComponents();
  187.  
  188.          for(int var4 = 0; var4 < var5.length; ++var4) {
  189.             if (var5[var4] instanceof JMenu) {
  190.                var3 = bindingForKeyStrokeRecursive(var5[var4], var1, var2);
  191.             }
  192.  
  193.             if (var3 != null) {
  194.                return var3;
  195.             }
  196.          }
  197.  
  198.          return null;
  199.       }
  200.    }
  201.  
  202.    static JComponent.KeyboardBinding bindingForKeyStrokeRecursive(Component var0, KeyStroke var1, int var2) {
  203.       JComponent.KeyboardBinding var3 = null;
  204.       if (var0 == null) {
  205.          return null;
  206.       } else {
  207.          if (var0 instanceof JComponent) {
  208.             var3 = ((JComponent)var0).bindingForKeyStroke(var1, var2);
  209.             if (var3 != null) {
  210.                return var3;
  211.             }
  212.          }
  213.  
  214.          if (var0 instanceof JMenu) {
  215.             JMenu var4 = (JMenu)var0;
  216.             Component[] var6 = var4.getMenuComponents();
  217.  
  218.             for(int var5 = 0; var5 < var6.length; ++var5) {
  219.                if (var6[var5] instanceof JMenuItem) {
  220.                   var3 = bindingForKeyStrokeRecursive(var6[var5], var1, var2);
  221.                }
  222.  
  223.                if (var3 != null) {
  224.                   return var3;
  225.                }
  226.             }
  227.          }
  228.  
  229.          return var3;
  230.       }
  231.    }
  232.  
  233.    private void writeObject(ObjectOutputStream var1) throws IOException {
  234.       var1.defaultWriteObject();
  235.       Object[] var2 = new Object[4];
  236.       int var3 = 0;
  237.       if (this.selectionModel instanceof Serializable) {
  238.          var2[var3++] = "selectionModel";
  239.          var2[var3++] = this.selectionModel;
  240.       }
  241.  
  242.       var1.writeObject(var2);
  243.    }
  244.  
  245.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  246.       var1.defaultReadObject();
  247.       Object[] var2 = var1.readObject();
  248.  
  249.       for(int var3 = 0; var3 < var2.length; var3 += 2) {
  250.          if (var2[var3] == null) {
  251.             return;
  252.          }
  253.  
  254.          if (var2[var3].equals("selectionModel")) {
  255.             this.selectionModel = (SingleSelectionModel)var2[var3 + 1];
  256.          }
  257.       }
  258.  
  259.    }
  260. }
  261.