home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / 1&1 / java.z / java_301 / java / awt / MenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-10-20  |  2.5 KB  |  102 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.MenuBarPeer;
  4. import java.util.Vector;
  5.  
  6. public class MenuBar extends MenuComponent implements MenuContainer {
  7.    Vector menus = new Vector();
  8.    Menu helpMenu;
  9.  
  10.    public synchronized void addNotify() {
  11.       super.peer = Toolkit.getDefaultToolkit().createMenuBar(this);
  12.       int nmenus = this.countMenus();
  13.  
  14.       for(int i = 0; i < nmenus; ++i) {
  15.          this.getMenu(i).addNotify();
  16.       }
  17.  
  18.    }
  19.  
  20.    public void removeNotify() {
  21.       int nmenus = this.countMenus();
  22.  
  23.       for(int i = 0; i < nmenus; ++i) {
  24.          this.getMenu(i).removeNotify();
  25.       }
  26.  
  27.       super.removeNotify();
  28.    }
  29.  
  30.    public Menu getHelpMenu() {
  31.       return this.helpMenu;
  32.    }
  33.  
  34.    public synchronized void setHelpMenu(Menu m) {
  35.       if (this.helpMenu != null) {
  36.          this.helpMenu.removeNotify();
  37.          this.helpMenu.parent = null;
  38.       }
  39.  
  40.       this.helpMenu = m;
  41.       if (m != null) {
  42.          m.isHelpMenu = true;
  43.          MenuBarPeer peer = (MenuBarPeer)super.peer;
  44.          if (peer != null) {
  45.             if (m.peer == null) {
  46.                m.addNotify();
  47.             }
  48.  
  49.             peer.addHelpMenu(m);
  50.          }
  51.       }
  52.  
  53.    }
  54.  
  55.    public synchronized Menu add(Menu m) {
  56.       if (m.parent != null) {
  57.          m.parent.remove(m);
  58.       }
  59.  
  60.       this.menus.addElement(m);
  61.       m.parent = this;
  62.       MenuBarPeer peer = (MenuBarPeer)super.peer;
  63.       if (peer != null) {
  64.          if (m.peer == null) {
  65.             m.addNotify();
  66.          }
  67.  
  68.          peer.addMenu(m);
  69.       }
  70.  
  71.       return m;
  72.    }
  73.  
  74.    public synchronized void remove(int index) {
  75.       MenuBarPeer peer = (MenuBarPeer)super.peer;
  76.       if (peer != null) {
  77.          Menu m = this.getMenu(index);
  78.          m.removeNotify();
  79.          m.parent = null;
  80.          peer.delMenu(index);
  81.       }
  82.  
  83.       this.menus.removeElementAt(index);
  84.    }
  85.  
  86.    public synchronized void remove(MenuComponent m) {
  87.       int index = this.menus.indexOf(m);
  88.       if (index >= 0) {
  89.          this.remove(index);
  90.       }
  91.  
  92.    }
  93.  
  94.    public int countMenus() {
  95.       return this.menus.size();
  96.    }
  97.  
  98.    public Menu getMenu(int i) {
  99.       return (Menu)this.menus.elementAt(i);
  100.    }
  101. }
  102.