home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / awt / Menu.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  5.2 KB  |  314 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.KeyEvent;
  4. import java.awt.peer.MenuPeer;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.util.Enumeration;
  9. import java.util.Vector;
  10.  
  11. public class Menu extends MenuItem implements MenuContainer {
  12.    Vector items;
  13.    boolean tearOff;
  14.    boolean isHelpMenu;
  15.    private static final String base = "menu";
  16.    private static int nameCounter;
  17.    private static final long serialVersionUID = -8809584163345499784L;
  18.    private int menuSerializedDataVersion;
  19.  
  20.    public Menu() {
  21.       this("", false);
  22.    }
  23.  
  24.    public Menu(String var1) {
  25.       this(var1, false);
  26.    }
  27.  
  28.    public Menu(String var1, boolean var2) {
  29.       super(var1);
  30.       this.items = new Vector();
  31.       this.menuSerializedDataVersion = 1;
  32.       super.name = "menu" + nameCounter++;
  33.       this.tearOff = var2;
  34.    }
  35.  
  36.    public void addNotify() {
  37.       Object var1 = ((MenuComponent)this).getTreeLock();
  38.       synchronized(var1){}
  39.  
  40.       try {
  41.          if (super.peer == null) {
  42.             super.peer = Toolkit.getDefaultToolkit().createMenu(this);
  43.          }
  44.  
  45.          int var3 = this.getItemCount();
  46.  
  47.          for(int var4 = 0; var4 < var3; ++var4) {
  48.             MenuItem var5 = this.getItem(var4);
  49.             var5.parent = this;
  50.             var5.addNotify();
  51.          }
  52.       } catch (Throwable var7) {
  53.          throw var7;
  54.       }
  55.  
  56.    }
  57.  
  58.    public void removeNotify() {
  59.       Object var1 = ((MenuComponent)this).getTreeLock();
  60.       synchronized(var1){}
  61.  
  62.       try {
  63.          int var3 = this.getItemCount();
  64.  
  65.          for(int var4 = 0; var4 < var3; ++var4) {
  66.             this.getItem(var4).removeNotify();
  67.          }
  68.  
  69.          super.removeNotify();
  70.       } catch (Throwable var6) {
  71.          throw var6;
  72.       }
  73.  
  74.    }
  75.  
  76.    public boolean isTearOff() {
  77.       return this.tearOff;
  78.    }
  79.  
  80.    public int getItemCount() {
  81.       return this.countItems();
  82.    }
  83.  
  84.    /** @deprecated */
  85.    public int countItems() {
  86.       return this.items.size();
  87.    }
  88.  
  89.    public MenuItem getItem(int var1) {
  90.       return (MenuItem)this.items.elementAt(var1);
  91.    }
  92.  
  93.    public MenuItem add(MenuItem var1) {
  94.       Object var3 = ((MenuComponent)this).getTreeLock();
  95.       synchronized(var3){}
  96.  
  97.       MenuItem var2;
  98.       try {
  99.          if (var1.parent != null) {
  100.             var1.parent.remove(var1);
  101.          }
  102.  
  103.          this.items.addElement(var1);
  104.          var1.parent = this;
  105.          MenuPeer var5 = (MenuPeer)super.peer;
  106.          if (var5 != null) {
  107.             var1.addNotify();
  108.             var5.addItem(var1);
  109.          }
  110.  
  111.          var2 = var1;
  112.       } catch (Throwable var7) {
  113.          throw var7;
  114.       }
  115.  
  116.       return var2;
  117.    }
  118.  
  119.    public void add(String var1) {
  120.       this.add(new MenuItem(var1));
  121.    }
  122.  
  123.    public void insert(MenuItem var1, int var2) {
  124.       Object var3 = ((MenuComponent)this).getTreeLock();
  125.       synchronized(var3){}
  126.  
  127.       try {
  128.          if (var2 < 0) {
  129.             throw new IllegalArgumentException("index less than zero.");
  130.          }
  131.  
  132.          int var5 = this.getItemCount();
  133.          Vector var6 = new Vector();
  134.  
  135.          for(int var7 = var2; var7 < var5; ++var7) {
  136.             var6.addElement(this.getItem(var2));
  137.             this.remove(var2);
  138.          }
  139.  
  140.          this.add(var1);
  141.  
  142.          for(int var8 = 0; var8 < var6.size(); ++var8) {
  143.             this.add((MenuItem)var6.elementAt(var8));
  144.          }
  145.       } catch (Throwable var10) {
  146.          throw var10;
  147.       }
  148.  
  149.    }
  150.  
  151.    public void insert(String var1, int var2) {
  152.       this.insert(new MenuItem(var1), var2);
  153.    }
  154.  
  155.    public void addSeparator() {
  156.       this.add("-");
  157.    }
  158.  
  159.    public void insertSeparator(int var1) {
  160.       Object var2 = ((MenuComponent)this).getTreeLock();
  161.       synchronized(var2){}
  162.  
  163.       try {
  164.          if (var1 < 0) {
  165.             throw new IllegalArgumentException("index less than zero.");
  166.          }
  167.  
  168.          int var4 = this.getItemCount();
  169.          Vector var5 = new Vector();
  170.  
  171.          for(int var6 = var1; var6 < var4; ++var6) {
  172.             var5.addElement(this.getItem(var1));
  173.             this.remove(var1);
  174.          }
  175.  
  176.          this.addSeparator();
  177.  
  178.          for(int var7 = 0; var7 < var5.size(); ++var7) {
  179.             this.add((MenuItem)var5.elementAt(var7));
  180.          }
  181.       } catch (Throwable var9) {
  182.          throw var9;
  183.       }
  184.  
  185.    }
  186.  
  187.    public void remove(int var1) {
  188.       Object var2 = ((MenuComponent)this).getTreeLock();
  189.       synchronized(var2){}
  190.  
  191.       try {
  192.          MenuItem var4 = this.getItem(var1);
  193.          this.items.removeElementAt(var1);
  194.          MenuPeer var5 = (MenuPeer)super.peer;
  195.          if (var5 != null) {
  196.             ((MenuComponent)var4).removeNotify();
  197.             var4.parent = null;
  198.             var5.delItem(var1);
  199.          }
  200.       } catch (Throwable var7) {
  201.          throw var7;
  202.       }
  203.  
  204.    }
  205.  
  206.    public void remove(MenuComponent var1) {
  207.       Object var2 = ((MenuComponent)this).getTreeLock();
  208.       synchronized(var2){}
  209.  
  210.       try {
  211.          int var4 = this.items.indexOf(var1);
  212.          if (var4 >= 0) {
  213.             this.remove(var4);
  214.          }
  215.       } catch (Throwable var6) {
  216.          throw var6;
  217.       }
  218.  
  219.    }
  220.  
  221.    public void removeAll() {
  222.       Object var1 = ((MenuComponent)this).getTreeLock();
  223.       synchronized(var1){}
  224.  
  225.       try {
  226.          int var3 = this.getItemCount();
  227.  
  228.          for(int var4 = 0; var4 < var3; ++var4) {
  229.             this.remove(0);
  230.          }
  231.       } catch (Throwable var6) {
  232.          throw var6;
  233.       }
  234.  
  235.    }
  236.  
  237.    boolean handleShortcut(KeyEvent var1) {
  238.       int var2 = this.getItemCount();
  239.  
  240.       for(int var3 = 0; var3 < var2; ++var3) {
  241.          MenuItem var4 = this.getItem(var3);
  242.          if (var4.handleShortcut(var1)) {
  243.             return true;
  244.          }
  245.       }
  246.  
  247.       return false;
  248.    }
  249.  
  250.    MenuItem getShortcutMenuItem(MenuShortcut var1) {
  251.       int var2 = this.getItemCount();
  252.  
  253.       for(int var3 = 0; var3 < var2; ++var3) {
  254.          MenuItem var4 = this.getItem(var3).getShortcutMenuItem(var1);
  255.          if (var4 != null) {
  256.             return var4;
  257.          }
  258.       }
  259.  
  260.       return null;
  261.    }
  262.  
  263.    synchronized Enumeration shortcuts() {
  264.       Vector var1 = new Vector();
  265.       int var2 = this.getItemCount();
  266.  
  267.       for(int var3 = 0; var3 < var2; ++var3) {
  268.          MenuItem var4 = this.getItem(var3);
  269.          if (var4 instanceof Menu) {
  270.             Enumeration var6 = ((Menu)var4).shortcuts();
  271.  
  272.             while(var6.hasMoreElements()) {
  273.                var1.addElement(var6.nextElement());
  274.             }
  275.          } else {
  276.             MenuShortcut var5 = var4.getShortcut();
  277.             if (var5 != null) {
  278.                var1.addElement(var5);
  279.             }
  280.          }
  281.       }
  282.  
  283.       return var1.elements();
  284.    }
  285.  
  286.    void deleteShortcut(MenuShortcut var1) {
  287.       int var2 = this.getItemCount();
  288.  
  289.       for(int var3 = 0; var3 < var2; ++var3) {
  290.          this.getItem(var3).deleteShortcut();
  291.       }
  292.  
  293.    }
  294.  
  295.    private void writeObject(ObjectOutputStream var1) throws ClassNotFoundException, IOException {
  296.       var1.defaultWriteObject();
  297.    }
  298.  
  299.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  300.       var1.defaultReadObject();
  301.  
  302.       for(int var2 = 0; var2 < this.items.size(); ++var2) {
  303.          MenuItem var3 = (MenuItem)this.items.elementAt(var2);
  304.          var3.parent = this;
  305.       }
  306.  
  307.    }
  308.  
  309.    public String paramString() {
  310.       String var1 = ",tearOff=" + this.tearOff + ",isHelpMenu=" + this.isHelpMenu;
  311.       return super.paramString() + var1;
  312.    }
  313. }
  314.