home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / java / awt / MenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  4.0 KB  |  204 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.InputEvent;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.peer.MenuBarPeer;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9. import java.util.Enumeration;
  10. import java.util.Vector;
  11.  
  12. public class MenuBar extends MenuComponent implements MenuContainer {
  13.    Vector menus = new Vector();
  14.    Menu helpMenu;
  15.    private static final String base = "menubar";
  16.    private static int nameCounter;
  17.    private static final long serialVersionUID = -4930327919388951260L;
  18.    private int menuBarSerializedDataVersion = 1;
  19.  
  20.    public MenuBar() {
  21.       super.name = "menubar" + nameCounter++;
  22.    }
  23.  
  24.    public void addNotify() {
  25.       if (super.peer == null) {
  26.          super.peer = Toolkit.getDefaultToolkit().createMenuBar(this);
  27.       }
  28.  
  29.       int var1 = this.getMenuCount();
  30.  
  31.       for(int var2 = 0; var2 < var1; ++var2) {
  32.          this.getMenu(var2).addNotify();
  33.       }
  34.  
  35.    }
  36.  
  37.    public void removeNotify() {
  38.       int var1 = this.getMenuCount();
  39.  
  40.       for(int var2 = 0; var2 < var1; ++var2) {
  41.          this.getMenu(var2).removeNotify();
  42.       }
  43.  
  44.       super.removeNotify();
  45.    }
  46.  
  47.    public Menu getHelpMenu() {
  48.       return this.helpMenu;
  49.    }
  50.  
  51.    public synchronized void setHelpMenu(Menu var1) {
  52.       if (this.helpMenu != var1) {
  53.          if (this.helpMenu != null) {
  54.             this.helpMenu.removeNotify();
  55.             this.helpMenu.parent = null;
  56.          }
  57.  
  58.          if (var1.parent != this) {
  59.             this.add(var1);
  60.          }
  61.  
  62.          this.helpMenu = var1;
  63.          if (var1 != null) {
  64.             var1.isHelpMenu = true;
  65.             var1.parent = this;
  66.             MenuBarPeer var2 = (MenuBarPeer)super.peer;
  67.             if (var2 != null) {
  68.                if (var1.peer == null) {
  69.                   var1.addNotify();
  70.                }
  71.  
  72.                var2.addHelpMenu(var1);
  73.             }
  74.          }
  75.  
  76.       }
  77.    }
  78.  
  79.    public synchronized Menu add(Menu var1) {
  80.       if (var1.parent != null) {
  81.          var1.parent.remove(var1);
  82.       }
  83.  
  84.       this.menus.addElement(var1);
  85.       var1.parent = this;
  86.       MenuBarPeer var2 = (MenuBarPeer)super.peer;
  87.       if (var2 != null) {
  88.          if (var1.peer == null) {
  89.             var1.addNotify();
  90.          }
  91.  
  92.          var2.addMenu(var1);
  93.       }
  94.  
  95.       return var1;
  96.    }
  97.  
  98.    public synchronized void remove(int var1) {
  99.       MenuBarPeer var2 = (MenuBarPeer)super.peer;
  100.       if (var2 != null) {
  101.          Menu var3 = this.getMenu(var1);
  102.          var3.removeNotify();
  103.          var3.parent = null;
  104.          var2.delMenu(var1);
  105.       }
  106.  
  107.       this.menus.removeElementAt(var1);
  108.    }
  109.  
  110.    public synchronized void remove(MenuComponent var1) {
  111.       int var2 = this.menus.indexOf(var1);
  112.       if (var2 >= 0) {
  113.          this.remove(var2);
  114.       }
  115.  
  116.    }
  117.  
  118.    public int getMenuCount() {
  119.       return this.countMenus();
  120.    }
  121.  
  122.    public int countMenus() {
  123.       return this.menus.size();
  124.    }
  125.  
  126.    public Menu getMenu(int var1) {
  127.       return (Menu)this.menus.elementAt(var1);
  128.    }
  129.  
  130.    public synchronized Enumeration shortcuts() {
  131.       Vector var1 = new Vector();
  132.       int var2 = this.getMenuCount();
  133.  
  134.       for(int var3 = 0; var3 < var2; ++var3) {
  135.          Enumeration var4 = this.getMenu(var3).shortcuts();
  136.  
  137.          while(var4.hasMoreElements()) {
  138.             var1.addElement(var4.nextElement());
  139.          }
  140.       }
  141.  
  142.       return var1.elements();
  143.    }
  144.  
  145.    public MenuItem getShortcutMenuItem(MenuShortcut var1) {
  146.       int var2 = this.getMenuCount();
  147.  
  148.       for(int var3 = 0; var3 < var2; ++var3) {
  149.          MenuItem var4 = this.getMenu(var3).getShortcutMenuItem(var1);
  150.          if (var4 != null) {
  151.             return var4;
  152.          }
  153.       }
  154.  
  155.       return null;
  156.    }
  157.  
  158.    boolean handleShortcut(KeyEvent var1) {
  159.       int var2 = ((AWTEvent)var1).getID();
  160.       if (var2 != 401 && var2 != 402) {
  161.          return false;
  162.       } else {
  163.          int var3 = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
  164.          if ((((InputEvent)var1).getModifiers() & var3) == 0) {
  165.             return false;
  166.          } else {
  167.             int var4 = this.getMenuCount();
  168.  
  169.             for(int var5 = 0; var5 < var4; ++var5) {
  170.                Menu var6 = this.getMenu(var5);
  171.                if (var6.handleShortcut(var1)) {
  172.                   return true;
  173.                }
  174.             }
  175.  
  176.             return false;
  177.          }
  178.       }
  179.    }
  180.  
  181.    public void deleteShortcut(MenuShortcut var1) {
  182.       int var2 = this.getMenuCount();
  183.  
  184.       for(int var3 = 0; var3 < var2; ++var3) {
  185.          this.getMenu(var3).deleteShortcut(var1);
  186.       }
  187.  
  188.    }
  189.  
  190.    private void writeObject(ObjectOutputStream var1) throws ClassNotFoundException, IOException {
  191.       var1.defaultWriteObject();
  192.    }
  193.  
  194.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  195.       var1.defaultReadObject();
  196.  
  197.       for(int var2 = 0; var2 < this.menus.size(); ++var2) {
  198.          Menu var3 = (Menu)this.menus.elementAt(var2);
  199.          var3.parent = this;
  200.       }
  201.  
  202.    }
  203. }
  204.