home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / PopupMenu.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.6 KB  |  95 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.PopupMenuPeer;
  4. import javax.accessibility.AccessibleContext;
  5.  
  6. public class PopupMenu extends Menu {
  7.    private static final String base = "popup";
  8.    static int nameCounter = 0;
  9.    transient boolean isTrayIconPopup;
  10.    private static final long serialVersionUID = -4620452533522760060L;
  11.  
  12.    public PopupMenu() throws HeadlessException {
  13.       this("");
  14.    }
  15.  
  16.    public PopupMenu(String var1) throws HeadlessException {
  17.       super(var1);
  18.       this.isTrayIconPopup = false;
  19.    }
  20.  
  21.    public MenuContainer getParent() {
  22.       return this.isTrayIconPopup ? null : super.getParent();
  23.    }
  24.  
  25.    String constructComponentName() {
  26.       synchronized(this.getClass()) {
  27.          return "popup" + nameCounter++;
  28.       }
  29.    }
  30.  
  31.    public void addNotify() {
  32.       synchronized(this.getTreeLock()) {
  33.          if (this.parent != null && !(this.parent instanceof Component)) {
  34.             super.addNotify();
  35.          } else {
  36.             if (this.peer == null) {
  37.                this.peer = Toolkit.getDefaultToolkit().createPopupMenu(this);
  38.             }
  39.  
  40.             int var2 = this.getItemCount();
  41.  
  42.             for(int var3 = 0; var3 < var2; ++var3) {
  43.                MenuItem var4 = this.getItem(var3);
  44.                var4.parent = this;
  45.                var4.addNotify();
  46.             }
  47.          }
  48.  
  49.       }
  50.    }
  51.  
  52.    public void show(Component var1, int var2, int var3) {
  53.       MenuContainer var4 = this.parent;
  54.       if (var4 == null) {
  55.          throw new NullPointerException("parent is null");
  56.       } else if (!(var4 instanceof Component)) {
  57.          throw new IllegalArgumentException("PopupMenus with non-Component parents cannot be shown");
  58.       } else {
  59.          Component var5 = (Component)var4;
  60.          if (var5 != var1) {
  61.             if (!(var5 instanceof Container)) {
  62.                throw new IllegalArgumentException("origin not in parent's hierarchy");
  63.             }
  64.  
  65.             if (!((Container)var5).isAncestorOf(var1)) {
  66.                throw new IllegalArgumentException("origin not in parent's hierarchy");
  67.             }
  68.          }
  69.  
  70.          if (var5.getPeer() != null && var5.isShowing()) {
  71.             if (this.peer == null) {
  72.                this.addNotify();
  73.             }
  74.  
  75.             synchronized(this.getTreeLock()) {
  76.                if (this.peer != null) {
  77.                   ((PopupMenuPeer)this.peer).show(new Event(var1, 0L, 501, var2, var3, 0, 0));
  78.                }
  79.  
  80.             }
  81.          } else {
  82.             throw new RuntimeException("parent not showing on screen");
  83.          }
  84.       }
  85.    }
  86.  
  87.    public AccessibleContext getAccessibleContext() {
  88.       if (this.accessibleContext == null) {
  89.          this.accessibleContext = new AccessibleAWTPopupMenu(this);
  90.       }
  91.  
  92.       return this.accessibleContext;
  93.    }
  94. }
  95.