home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / awt / MenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  4.2 KB  |  256 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.       Object var1 = ((MenuComponent)this).getTreeLock();
  26.       synchronized(var1){}
  27.  
  28.       try {
  29.          if (super.peer == null) {
  30.             super.peer = Toolkit.getDefaultToolkit().createMenuBar(this);
  31.          }
  32.  
  33.          int var3 = this.getMenuCount();
  34.  
  35.          for(int var4 = 0; var4 < var3; ++var4) {
  36.             this.getMenu(var4).addNotify();
  37.          }
  38.       } catch (Throwable var6) {
  39.          throw var6;
  40.       }
  41.  
  42.    }
  43.  
  44.    public void removeNotify() {
  45.       Object var1 = ((MenuComponent)this).getTreeLock();
  46.       synchronized(var1){}
  47.  
  48.       try {
  49.          int var3 = this.getMenuCount();
  50.  
  51.          for(int var4 = 0; var4 < var3; ++var4) {
  52.             this.getMenu(var4).removeNotify();
  53.          }
  54.  
  55.          super.removeNotify();
  56.       } catch (Throwable var6) {
  57.          throw var6;
  58.       }
  59.  
  60.    }
  61.  
  62.    public Menu getHelpMenu() {
  63.       return this.helpMenu;
  64.    }
  65.  
  66.    public void setHelpMenu(Menu var1) {
  67.       Object var2 = ((MenuComponent)this).getTreeLock();
  68.       synchronized(var2){}
  69.  
  70.       try {
  71.          if (this.helpMenu != var1) {
  72.             if (this.helpMenu != null) {
  73.                this.helpMenu.removeNotify();
  74.                this.helpMenu.parent = null;
  75.             }
  76.  
  77.             if (var1.parent != this) {
  78.                this.add(var1);
  79.             }
  80.  
  81.             this.helpMenu = var1;
  82.             if (var1 == null) {
  83.                return;
  84.             }
  85.  
  86.             var1.isHelpMenu = true;
  87.             var1.parent = this;
  88.             MenuBarPeer var4 = (MenuBarPeer)super.peer;
  89.             if (var4 != null) {
  90.                if (var1.peer == null) {
  91.                   var1.addNotify();
  92.                }
  93.  
  94.                var4.addHelpMenu(var1);
  95.             }
  96.  
  97.             return;
  98.          }
  99.       } catch (Throwable var6) {
  100.          throw var6;
  101.       }
  102.  
  103.    }
  104.  
  105.    public Menu add(Menu var1) {
  106.       Object var3 = ((MenuComponent)this).getTreeLock();
  107.       synchronized(var3){}
  108.  
  109.       Menu var2;
  110.       try {
  111.          if (var1.parent != null) {
  112.             var1.parent.remove(var1);
  113.          }
  114.  
  115.          this.menus.addElement(var1);
  116.          var1.parent = this;
  117.          MenuBarPeer var5 = (MenuBarPeer)super.peer;
  118.          if (var5 != null) {
  119.             if (var1.peer == null) {
  120.                var1.addNotify();
  121.             }
  122.  
  123.             var5.addMenu(var1);
  124.          }
  125.  
  126.          var2 = var1;
  127.       } catch (Throwable var7) {
  128.          throw var7;
  129.       }
  130.  
  131.       return var2;
  132.    }
  133.  
  134.    public void remove(int var1) {
  135.       Object var2 = ((MenuComponent)this).getTreeLock();
  136.       synchronized(var2){}
  137.  
  138.       try {
  139.          MenuBarPeer var4 = (MenuBarPeer)super.peer;
  140.          if (var4 != null) {
  141.             Menu var5 = this.getMenu(var1);
  142.             var5.removeNotify();
  143.             var5.parent = null;
  144.             var4.delMenu(var1);
  145.          }
  146.  
  147.          this.menus.removeElementAt(var1);
  148.       } catch (Throwable var7) {
  149.          throw var7;
  150.       }
  151.  
  152.    }
  153.  
  154.    public void remove(MenuComponent var1) {
  155.       Object var2 = ((MenuComponent)this).getTreeLock();
  156.       synchronized(var2){}
  157.  
  158.       try {
  159.          int var4 = this.menus.indexOf(var1);
  160.          if (var4 >= 0) {
  161.             this.remove(var4);
  162.          }
  163.       } catch (Throwable var6) {
  164.          throw var6;
  165.       }
  166.  
  167.    }
  168.  
  169.    public int getMenuCount() {
  170.       return this.countMenus();
  171.    }
  172.  
  173.    /** @deprecated */
  174.    public int countMenus() {
  175.       return this.menus.size();
  176.    }
  177.  
  178.    public Menu getMenu(int var1) {
  179.       return (Menu)this.menus.elementAt(var1);
  180.    }
  181.  
  182.    public synchronized Enumeration shortcuts() {
  183.       Vector var1 = new Vector();
  184.       int var2 = this.getMenuCount();
  185.  
  186.       for(int var3 = 0; var3 < var2; ++var3) {
  187.          Enumeration var4 = this.getMenu(var3).shortcuts();
  188.  
  189.          while(var4.hasMoreElements()) {
  190.             var1.addElement(var4.nextElement());
  191.          }
  192.       }
  193.  
  194.       return var1.elements();
  195.    }
  196.  
  197.    public MenuItem getShortcutMenuItem(MenuShortcut var1) {
  198.       int var2 = this.getMenuCount();
  199.  
  200.       for(int var3 = 0; var3 < var2; ++var3) {
  201.          MenuItem var4 = this.getMenu(var3).getShortcutMenuItem(var1);
  202.          if (var4 != null) {
  203.             return var4;
  204.          }
  205.       }
  206.  
  207.       return null;
  208.    }
  209.  
  210.    boolean handleShortcut(KeyEvent var1) {
  211.       int var2 = ((AWTEvent)var1).getID();
  212.       if (var2 != 401 && var2 != 402) {
  213.          return false;
  214.       } else {
  215.          int var3 = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
  216.          if ((((InputEvent)var1).getModifiers() & var3) == 0) {
  217.             return false;
  218.          } else {
  219.             int var4 = this.getMenuCount();
  220.  
  221.             for(int var5 = 0; var5 < var4; ++var5) {
  222.                Menu var6 = this.getMenu(var5);
  223.                if (var6.handleShortcut(var1)) {
  224.                   return true;
  225.                }
  226.             }
  227.  
  228.             return false;
  229.          }
  230.       }
  231.    }
  232.  
  233.    public void deleteShortcut(MenuShortcut var1) {
  234.       int var2 = this.getMenuCount();
  235.  
  236.       for(int var3 = 0; var3 < var2; ++var3) {
  237.          this.getMenu(var3).deleteShortcut(var1);
  238.       }
  239.  
  240.    }
  241.  
  242.    private void writeObject(ObjectOutputStream var1) throws ClassNotFoundException, IOException {
  243.       var1.defaultWriteObject();
  244.    }
  245.  
  246.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  247.       var1.defaultReadObject();
  248.  
  249.       for(int var2 = 0; var2 < this.menus.size(); ++var2) {
  250.          Menu var3 = (Menu)this.menus.elementAt(var2);
  251.          var3.parent = this;
  252.       }
  253.  
  254.    }
  255. }
  256.