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

  1. package java.awt;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.InputEvent;
  6. import java.awt.event.KeyEvent;
  7. import java.awt.peer.MenuItemPeer;
  8. import java.io.IOException;
  9. import java.io.ObjectInputStream;
  10. import java.io.ObjectOutputStream;
  11.  
  12. public class MenuItem extends MenuComponent {
  13.    boolean enabled;
  14.    String label;
  15.    String actionCommand;
  16.    long eventMask;
  17.    transient ActionListener actionListener;
  18.    private MenuShortcut shortcut;
  19.    private static final String base = "menuitem";
  20.    private static int nameCounter;
  21.    private static final long serialVersionUID = -21757335363267194L;
  22.    private int menuItemSerializedDataVersion;
  23.  
  24.    public MenuItem() {
  25.       this("", (MenuShortcut)null);
  26.    }
  27.  
  28.    public MenuItem(String var1) {
  29.       this(var1, (MenuShortcut)null);
  30.    }
  31.  
  32.    public MenuItem(String var1, MenuShortcut var2) {
  33.       this.enabled = true;
  34.       this.menuItemSerializedDataVersion = 1;
  35.       super.name = "menuitem" + nameCounter++;
  36.       this.label = var1;
  37.       this.shortcut = var2;
  38.    }
  39.  
  40.    public void addNotify() {
  41.       Object var1 = ((MenuComponent)this).getTreeLock();
  42.       synchronized(var1){}
  43.  
  44.       try {
  45.          if (super.peer == null) {
  46.             super.peer = Toolkit.getDefaultToolkit().createMenuItem(this);
  47.          }
  48.       } catch (Throwable var3) {
  49.          throw var3;
  50.       }
  51.  
  52.    }
  53.  
  54.    public String getLabel() {
  55.       return this.label;
  56.    }
  57.  
  58.    public synchronized void setLabel(String var1) {
  59.       this.label = var1;
  60.       MenuItemPeer var2 = (MenuItemPeer)super.peer;
  61.       if (var2 != null) {
  62.          var2.setLabel(var1);
  63.       }
  64.  
  65.    }
  66.  
  67.    public boolean isEnabled() {
  68.       return this.enabled;
  69.    }
  70.  
  71.    public synchronized void setEnabled(boolean var1) {
  72.       this.enable(var1);
  73.    }
  74.  
  75.    /** @deprecated */
  76.    public synchronized void enable() {
  77.       this.enabled = true;
  78.       MenuItemPeer var1 = (MenuItemPeer)super.peer;
  79.       if (var1 != null) {
  80.          var1.enable();
  81.       }
  82.  
  83.    }
  84.  
  85.    /** @deprecated */
  86.    public void enable(boolean var1) {
  87.       if (var1) {
  88.          this.enable();
  89.       } else {
  90.          this.disable();
  91.       }
  92.    }
  93.  
  94.    /** @deprecated */
  95.    public synchronized void disable() {
  96.       this.enabled = false;
  97.       MenuItemPeer var1 = (MenuItemPeer)super.peer;
  98.       if (var1 != null) {
  99.          var1.disable();
  100.       }
  101.  
  102.    }
  103.  
  104.    public MenuShortcut getShortcut() {
  105.       return this.shortcut;
  106.    }
  107.  
  108.    public void setShortcut(MenuShortcut var1) {
  109.       this.shortcut = var1;
  110.       MenuItemPeer var2 = (MenuItemPeer)super.peer;
  111.       if (var2 != null) {
  112.          var2.setLabel(this.label);
  113.       }
  114.  
  115.    }
  116.  
  117.    public void deleteShortcut() {
  118.       this.shortcut = null;
  119.       MenuItemPeer var1 = (MenuItemPeer)super.peer;
  120.       if (var1 != null) {
  121.          var1.setLabel(this.label);
  122.       }
  123.  
  124.    }
  125.  
  126.    void deleteShortcut(MenuShortcut var1) {
  127.       if (var1.equals(this.shortcut)) {
  128.          this.shortcut = null;
  129.          MenuItemPeer var2 = (MenuItemPeer)super.peer;
  130.          if (var2 != null) {
  131.             var2.setLabel(this.label);
  132.          }
  133.       }
  134.  
  135.    }
  136.  
  137.    boolean handleShortcut(KeyEvent var1) {
  138.       MenuShortcut var2 = new MenuShortcut(var1.getKeyCode(), (((InputEvent)var1).getModifiers() & 1) > 0);
  139.       if (var2.equals(this.shortcut) && this.enabled) {
  140.          if (((AWTEvent)var1).getID() == 401) {
  141.             Toolkit.getEventQueue().postEvent(new ActionEvent(this, 1001, this.actionCommand));
  142.          }
  143.  
  144.          return true;
  145.       } else {
  146.          return false;
  147.       }
  148.    }
  149.  
  150.    MenuItem getShortcutMenuItem(MenuShortcut var1) {
  151.       return var1.equals(this.shortcut) ? this : null;
  152.    }
  153.  
  154.    protected final void enableEvents(long var1) {
  155.       this.eventMask |= var1;
  156.    }
  157.  
  158.    protected final void disableEvents(long var1) {
  159.       this.eventMask &= ~var1;
  160.    }
  161.  
  162.    public void setActionCommand(String var1) {
  163.       this.actionCommand = var1;
  164.    }
  165.  
  166.    public String getActionCommand() {
  167.       return this.actionCommand == null ? this.label : this.actionCommand;
  168.    }
  169.  
  170.    public synchronized void addActionListener(ActionListener var1) {
  171.       this.actionListener = AWTEventMulticaster.add(this.actionListener, var1);
  172.       super.newEventsOnly = true;
  173.    }
  174.  
  175.    public synchronized void removeActionListener(ActionListener var1) {
  176.       this.actionListener = AWTEventMulticaster.remove(this.actionListener, var1);
  177.    }
  178.  
  179.    protected void processEvent(AWTEvent var1) {
  180.       if (var1 instanceof ActionEvent) {
  181.          this.processActionEvent((ActionEvent)var1);
  182.       }
  183.  
  184.    }
  185.  
  186.    boolean eventEnabled(AWTEvent var1) {
  187.       if (var1.id == 1001) {
  188.          return (this.eventMask & 128L) != 0L || this.actionListener != null;
  189.       } else {
  190.          return super.eventEnabled(var1);
  191.       }
  192.    }
  193.  
  194.    protected void processActionEvent(ActionEvent var1) {
  195.       if (this.actionListener != null) {
  196.          this.actionListener.actionPerformed(var1);
  197.       }
  198.  
  199.    }
  200.  
  201.    public String paramString() {
  202.       String var1 = ",label=" + this.label;
  203.       if (this.shortcut != null) {
  204.          var1 = var1 + ",shortcut=" + this.shortcut;
  205.       }
  206.  
  207.       return super.paramString() + var1;
  208.    }
  209.  
  210.    private void writeObject(ObjectOutputStream var1) throws IOException {
  211.       var1.defaultWriteObject();
  212.       AWTEventMulticaster.save(var1, "actionL", this.actionListener);
  213.       var1.writeObject((Object)null);
  214.    }
  215.  
  216.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  217.       var1.defaultReadObject();
  218.  
  219.       Object var2;
  220.       while((var2 = var1.readObject()) != null) {
  221.          String var3 = ((String)var2).intern();
  222.          if (var3 == "actionL") {
  223.             this.addActionListener((ActionListener)var1.readObject());
  224.          } else {
  225.             var1.readObject();
  226.          }
  227.       }
  228.  
  229.    }
  230. }
  231.