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