home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / JPopupMenu$PanelPopup.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.7 KB  |  171 lines

  1. package javax.swing;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Graphics;
  7. import java.awt.Panel;
  8. import java.awt.Point;
  9. import java.awt.Rectangle;
  10. import java.awt.Window;
  11. import java.io.Serializable;
  12.  
  13. class JPopupMenu$PanelPopup extends Panel implements JPopupMenu.Popup, Serializable {
  14.    // $FF: synthetic field
  15.    private final JPopupMenu this$0;
  16.    int desiredLocationX;
  17.    int desiredLocationY;
  18.    JRootPane rootPane;
  19.  
  20.    public JPopupMenu$PanelPopup(JPopupMenu var1) {
  21.       this.this$0 = var1;
  22.       ((Container)this).setLayout(new BorderLayout());
  23.       this.rootPane = new JRootPane();
  24.       ((Container)this).add(this.rootPane, "Center");
  25.    }
  26.  
  27.    public void addComponent(Component var1, Object var2) {
  28.       this.rootPane.getContentPane().add(var1, var2);
  29.    }
  30.  
  31.    Point convertParentLocationToScreen(Container var1, int var2, int var3) {
  32.       Window var4 = null;
  33.  
  34.       for(Object var6 = this; var6 != null; var6 = ((Component)var6).getParent()) {
  35.          if (var6 instanceof Window) {
  36.             var4 = (Window)var6;
  37.             break;
  38.          }
  39.       }
  40.  
  41.       if (var4 != null) {
  42.          Rectangle var5 = ((Component)var4).getBounds();
  43.          Point var7 = new Point(var2, var3);
  44.          var7 = SwingUtilities.convertPoint(var1, var7, (Component)null);
  45.          var7.x += var5.x;
  46.          var7.y += var5.y;
  47.          return var7;
  48.       } else {
  49.          throw new Error("convertParentLocationToScreen: no window ancestor found");
  50.       }
  51.    }
  52.  
  53.    Point convertScreenLocationToParent(Container var1, int var2, int var3) {
  54.       Window var4 = null;
  55.  
  56.       for(Container var6 = var1; var6 != null; var6 = ((Component)var6).getParent()) {
  57.          if (var6 instanceof Window) {
  58.             var4 = (Window)var6;
  59.             break;
  60.          }
  61.       }
  62.  
  63.       if (var4 != null) {
  64.          Point var7 = new Point(var2, var3);
  65.          SwingUtilities.convertPointFromScreen(var7, var1);
  66.          return var7;
  67.       } else {
  68.          throw new Error("convertScreenLocationToParent: no window ancestor found");
  69.       }
  70.    }
  71.  
  72.    public Rectangle getBoundsOnScreen() {
  73.       Container var1 = ((Component)this).getParent();
  74.       if (var1 != null) {
  75.          Rectangle var2 = ((Component)this).getBounds();
  76.          Point var3 = this.convertParentLocationToScreen(var1, var2.x, var2.y);
  77.          var2.x = var3.x;
  78.          var2.y = var3.y;
  79.          return var2;
  80.       } else {
  81.          throw new Error("getBoundsOnScreen called on an invisible popup");
  82.       }
  83.    }
  84.  
  85.    public Component getComponent() {
  86.       return this;
  87.    }
  88.  
  89.    public int getHeight() {
  90.       return ((Component)this).getBounds().height;
  91.    }
  92.  
  93.    public int getWidth() {
  94.       return ((Component)this).getBounds().width;
  95.    }
  96.  
  97.    public void hide() {
  98.       Container var1 = ((Component)this).getParent();
  99.       Rectangle var2 = ((Component)this).getBounds();
  100.       if (var1 != null) {
  101.          var1.remove(this);
  102.       }
  103.  
  104.       ((Component)var1).repaint(var2.x, var2.y, var2.width, var2.height);
  105.    }
  106.  
  107.    public void pack() {
  108.       ((Component)this).setSize(((Container)this).getPreferredSize());
  109.    }
  110.  
  111.    public void paint(Graphics var1) {
  112.       super.paint(var1);
  113.    }
  114.  
  115.    public void removeComponent(Component var1) {
  116.       this.rootPane.getContentPane().remove(var1);
  117.    }
  118.  
  119.    public void setLocationOnScreen(int var1, int var2) {
  120.       Container var3 = ((Component)this).getParent();
  121.       if (var3 != null) {
  122.          Point var4 = this.convertScreenLocationToParent(var3, var1, var2);
  123.          ((Component)this).setLocation(var4.x, var4.y);
  124.       } else {
  125.          this.desiredLocationX = var1;
  126.          this.desiredLocationY = var2;
  127.       }
  128.  
  129.    }
  130.  
  131.    public void show(Component var1) {
  132.       Object var2 = null;
  133.       if (var1 != null) {
  134.          var2 = var1.getParent();
  135.       }
  136.  
  137.       Object var3 = null;
  138.  
  139.       for(Object var4 = var2; var4 != null; var4 = ((Component)var4).getParent()) {
  140.          if (var4 instanceof JRootPane) {
  141.             var2 = ((JRootPane)var4).getLayeredPane();
  142.  
  143.             for(var8 = ((Component)var2).getParent(); var8 != null && !(var8 instanceof Window); var8 = ((Component)var8).getParent()) {
  144.             }
  145.  
  146.             Window var7 = (Window)var8;
  147.             break;
  148.          }
  149.  
  150.          if (var4 instanceof Window) {
  151.             var2 = var4;
  152.             Window var6 = (Window)var4;
  153.             break;
  154.          }
  155.       }
  156.  
  157.       Point var5 = this.convertScreenLocationToParent((Container)var2, this.desiredLocationX, this.desiredLocationY);
  158.       ((Component)this).setLocation(var5.x, var5.y);
  159.       if (var2 instanceof JLayeredPane) {
  160.          ((JLayeredPane)var2).add(this, JLayeredPane.POPUP_LAYER, 0);
  161.       } else {
  162.          ((Container)var2).add(this);
  163.       }
  164.  
  165.    }
  166.  
  167.    public void update(Graphics var1) {
  168.       this.paint(var1);
  169.    }
  170. }
  171.