home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / Component.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  23.9 KB  |  1,444 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.ComponentEvent;
  4. import java.awt.event.ComponentListener;
  5. import java.awt.event.FocusEvent;
  6. import java.awt.event.FocusListener;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.KeyListener;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.MouseListener;
  11. import java.awt.event.MouseMotionListener;
  12. import java.awt.event.PaintEvent;
  13. import java.awt.image.ColorModel;
  14. import java.awt.image.ImageObserver;
  15. import java.awt.image.ImageProducer;
  16. import java.awt.peer.ComponentPeer;
  17. import java.awt.peer.LightweightPeer;
  18. import java.io.IOException;
  19. import java.io.ObjectInputStream;
  20. import java.io.ObjectOutputStream;
  21. import java.io.PrintStream;
  22. import java.io.PrintWriter;
  23. import java.io.Serializable;
  24. import java.util.Locale;
  25. import java.util.Vector;
  26.  
  27. public abstract class Component implements ImageObserver, MenuContainer, Serializable {
  28.    transient ComponentPeer peer;
  29.    transient Container parent;
  30.    // $FF: renamed from: x int
  31.    int field_0;
  32.    // $FF: renamed from: y int
  33.    int field_1;
  34.    int width;
  35.    int height;
  36.    Color foreground;
  37.    Color background;
  38.    Font font;
  39.    Cursor cursor = Cursor.getPredefinedCursor(0);
  40.    Locale locale;
  41.    boolean visible = true;
  42.    boolean enabled = true;
  43.    boolean valid = false;
  44.    Vector popups;
  45.    String name;
  46.    static final Object LOCK = new Object();
  47.    Dimension minSize;
  48.    Dimension prefSize;
  49.    boolean newEventsOnly = false;
  50.    transient ComponentListener componentListener;
  51.    transient FocusListener focusListener;
  52.    transient KeyListener keyListener;
  53.    transient MouseListener mouseListener;
  54.    transient MouseMotionListener mouseMotionListener;
  55.    static final String actionListenerK = "actionL";
  56.    static final String adjustmentListenerK = "adjustmentL";
  57.    static final String componentListenerK = "componentL";
  58.    static final String containerListenerK = "containerL";
  59.    static final String focusListenerK = "focusL";
  60.    static final String itemListenerK = "itemL";
  61.    static final String keyListenerK = "keyL";
  62.    static final String mouseListenerK = "mouseL";
  63.    static final String mouseMotionListenerK = "mouseMotionL";
  64.    static final String textListenerK = "textL";
  65.    static final String windowListenerK = "windowL";
  66.    long eventMask;
  67.    static boolean isInc;
  68.    static int incRate;
  69.    public static final float TOP_ALIGNMENT = 0.0F;
  70.    public static final float CENTER_ALIGNMENT = 0.5F;
  71.    public static final float BOTTOM_ALIGNMENT = 1.0F;
  72.    public static final float LEFT_ALIGNMENT = 0.0F;
  73.    public static final float RIGHT_ALIGNMENT = 1.0F;
  74.    private static final long serialVersionUID = -7644114512714619750L;
  75.    private int componentSerializedDataVersion = 1;
  76.  
  77.    protected Component() {
  78.    }
  79.  
  80.    public String getName() {
  81.       return this.name;
  82.    }
  83.  
  84.    public void setName(String var1) {
  85.       this.name = var1;
  86.    }
  87.  
  88.    public Container getParent() {
  89.       return this.parent;
  90.    }
  91.  
  92.    public ComponentPeer getPeer() {
  93.       return this.peer;
  94.    }
  95.  
  96.    public final Object getTreeLock() {
  97.       return LOCK;
  98.    }
  99.  
  100.    public Toolkit getToolkit() {
  101.       ComponentPeer var1 = this.peer;
  102.       if (var1 != null && !(var1 instanceof LightweightPeer)) {
  103.          return var1.getToolkit();
  104.       } else {
  105.          Container var2 = this.parent;
  106.          return var2 != null ? ((Component)var2).getToolkit() : Toolkit.getDefaultToolkit();
  107.       }
  108.    }
  109.  
  110.    public boolean isValid() {
  111.       return this.peer != null && this.valid;
  112.    }
  113.  
  114.    public boolean isVisible() {
  115.       return this.visible;
  116.    }
  117.  
  118.    public boolean isShowing() {
  119.       if (this.visible && this.peer != null) {
  120.          Container var1 = this.parent;
  121.          return var1 == null || ((Component)var1).isShowing();
  122.       } else {
  123.          return false;
  124.       }
  125.    }
  126.  
  127.    public boolean isEnabled() {
  128.       return this.enabled;
  129.    }
  130.  
  131.    public void setEnabled(boolean var1) {
  132.       this.enable(var1);
  133.    }
  134.  
  135.    public void enable() {
  136.       if (!this.enabled) {
  137.          synchronized(this){}
  138.  
  139.          try {
  140.             this.enabled = true;
  141.             ComponentPeer var3 = this.peer;
  142.             if (var3 != null) {
  143.                var3.enable();
  144.             }
  145.          } catch (Throwable var5) {
  146.             throw var5;
  147.          }
  148.  
  149.       }
  150.    }
  151.  
  152.    public void enable(boolean var1) {
  153.       if (var1) {
  154.          this.enable();
  155.       } else {
  156.          this.disable();
  157.       }
  158.    }
  159.  
  160.    public void disable() {
  161.       if (this.enabled) {
  162.          synchronized(this){}
  163.  
  164.          try {
  165.             this.enabled = false;
  166.             ComponentPeer var3 = this.peer;
  167.             if (var3 != null) {
  168.                var3.disable();
  169.             }
  170.          } catch (Throwable var5) {
  171.             throw var5;
  172.          }
  173.  
  174.       }
  175.    }
  176.  
  177.    public void setVisible(boolean var1) {
  178.       this.show(var1);
  179.    }
  180.  
  181.    public void show() {
  182.       if (!this.visible) {
  183.          Object var1 = LOCK;
  184.          synchronized(var1){}
  185.  
  186.          try {
  187.             this.visible = true;
  188.             ComponentPeer var3 = this.peer;
  189.             if (var3 != null) {
  190.                var3.show();
  191.                if (var3 instanceof LightweightPeer) {
  192.                   this.repaint();
  193.                }
  194.             }
  195.  
  196.             if (this.componentListener != null || (this.eventMask & 1L) != 0L) {
  197.                ComponentEvent var4 = new ComponentEvent(this, 102);
  198.                Toolkit.getEventQueue().postEvent(var4);
  199.             }
  200.          } catch (Throwable var6) {
  201.             throw var6;
  202.          }
  203.  
  204.          Container var7 = this.parent;
  205.          if (var7 != null) {
  206.             var7.invalidate();
  207.          }
  208.       }
  209.  
  210.    }
  211.  
  212.    public void show(boolean var1) {
  213.       if (var1) {
  214.          this.show();
  215.       } else {
  216.          this.hide();
  217.       }
  218.    }
  219.  
  220.    public void hide() {
  221.       if (this.visible) {
  222.          Object var1 = LOCK;
  223.          synchronized(var1){}
  224.  
  225.          try {
  226.             this.visible = false;
  227.             ComponentPeer var3 = this.peer;
  228.             if (var3 != null) {
  229.                var3.hide();
  230.                if (var3 instanceof LightweightPeer) {
  231.                   this.repaint();
  232.                }
  233.             }
  234.  
  235.             if (this.componentListener != null || (this.eventMask & 1L) != 0L) {
  236.                ComponentEvent var4 = new ComponentEvent(this, 103);
  237.                Toolkit.getEventQueue().postEvent(var4);
  238.             }
  239.          } catch (Throwable var6) {
  240.             throw var6;
  241.          }
  242.  
  243.          Container var7 = this.parent;
  244.          if (var7 != null) {
  245.             var7.invalidate();
  246.          }
  247.       }
  248.  
  249.    }
  250.  
  251.    public Color getForeground() {
  252.       Color var1 = this.foreground;
  253.       if (var1 != null) {
  254.          return var1;
  255.       } else {
  256.          Container var2 = this.parent;
  257.          return var2 != null ? ((Component)var2).getForeground() : null;
  258.       }
  259.    }
  260.  
  261.    public void setForeground(Color var1) {
  262.       ComponentPeer var2 = this.peer;
  263.       this.foreground = var1;
  264.       if (var2 != null) {
  265.          var1 = this.getForeground();
  266.          if (var1 != null) {
  267.             var2.setForeground(var1);
  268.          }
  269.       }
  270.  
  271.    }
  272.  
  273.    public Color getBackground() {
  274.       Color var1 = this.background;
  275.       if (var1 != null) {
  276.          return var1;
  277.       } else {
  278.          Container var2 = this.parent;
  279.          return var2 != null ? ((Component)var2).getBackground() : null;
  280.       }
  281.    }
  282.  
  283.    public void setBackground(Color var1) {
  284.       ComponentPeer var2 = this.peer;
  285.       this.background = var1;
  286.       if (var2 != null) {
  287.          var1 = this.getBackground();
  288.          if (var1 != null) {
  289.             var2.setBackground(var1);
  290.          }
  291.       }
  292.  
  293.    }
  294.  
  295.    public Font getFont() {
  296.       Font var1 = this.font;
  297.       if (var1 != null) {
  298.          return var1;
  299.       } else {
  300.          Container var2 = this.parent;
  301.          return var2 != null ? ((Component)var2).getFont() : null;
  302.       }
  303.    }
  304.  
  305.    public synchronized void setFont(Font var1) {
  306.       ComponentPeer var2 = this.peer;
  307.       this.font = var1;
  308.       if (var2 != null) {
  309.          var1 = this.getFont();
  310.          if (var1 != null) {
  311.             var2.setFont(var1);
  312.          }
  313.       }
  314.  
  315.    }
  316.  
  317.    public Locale getLocale() {
  318.       Locale var1 = this.locale;
  319.       if (var1 != null) {
  320.          return var1;
  321.       } else {
  322.          Container var2 = this.parent;
  323.          if (var2 == null) {
  324.             throw new IllegalComponentStateException("This component must have a parent in order to determine its locale");
  325.          } else {
  326.             return ((Component)var2).getLocale();
  327.          }
  328.       }
  329.    }
  330.  
  331.    public void setLocale(Locale var1) {
  332.       this.locale = var1;
  333.    }
  334.  
  335.    public ColorModel getColorModel() {
  336.       ComponentPeer var1 = this.peer;
  337.       return var1 != null && !(var1 instanceof LightweightPeer) ? var1.getColorModel() : this.getToolkit().getColorModel();
  338.    }
  339.  
  340.    public Point getLocation() {
  341.       return this.location();
  342.    }
  343.  
  344.    public Point getLocationOnScreen() {
  345.       Object var2 = LOCK;
  346.       synchronized(var2){}
  347.  
  348.       Point var1;
  349.       try {
  350.          if (this.peer == null || !this.isShowing()) {
  351.             throw new IllegalComponentStateException("component must be showing on the screen to determine its location");
  352.          }
  353.  
  354.          if (!(this.peer instanceof LightweightPeer)) {
  355.             Point var10 = this.peer.getLocationOnScreen();
  356.             var1 = var10;
  357.             return var1;
  358.          }
  359.  
  360.          Container var4 = this.getNativeContainer();
  361.          Point var5 = var4.peer.getLocationOnScreen();
  362.  
  363.          for(Object var6 = this; var6 != var4; var6 = ((Component)var6).getParent()) {
  364.             var5.x += ((Component)var6).field_0;
  365.             var5.y += ((Component)var6).field_1;
  366.          }
  367.  
  368.          var1 = var5;
  369.       } catch (Throwable var8) {
  370.          throw var8;
  371.       }
  372.  
  373.       return var1;
  374.    }
  375.  
  376.    public Point location() {
  377.       return new Point(this.field_0, this.field_1);
  378.    }
  379.  
  380.    public void setLocation(int var1, int var2) {
  381.       this.move(var1, var2);
  382.    }
  383.  
  384.    public void move(int var1, int var2) {
  385.       this.setBounds(var1, var2, this.width, this.height);
  386.    }
  387.  
  388.    public void setLocation(Point var1) {
  389.       this.setLocation(var1.x, var1.y);
  390.    }
  391.  
  392.    public Dimension getSize() {
  393.       return this.size();
  394.    }
  395.  
  396.    public Dimension size() {
  397.       return new Dimension(this.width, this.height);
  398.    }
  399.  
  400.    public void setSize(int var1, int var2) {
  401.       this.resize(var1, var2);
  402.    }
  403.  
  404.    public void resize(int var1, int var2) {
  405.       this.setBounds(this.field_0, this.field_1, var1, var2);
  406.    }
  407.  
  408.    public void setSize(Dimension var1) {
  409.       this.resize(var1);
  410.    }
  411.  
  412.    public void resize(Dimension var1) {
  413.       this.setSize(var1.width, var1.height);
  414.    }
  415.  
  416.    public Rectangle getBounds() {
  417.       return this.bounds();
  418.    }
  419.  
  420.    public Rectangle bounds() {
  421.       return new Rectangle(this.field_0, this.field_1, this.width, this.height);
  422.    }
  423.  
  424.    public void setBounds(int var1, int var2, int var3, int var4) {
  425.       this.reshape(var1, var2, var3, var4);
  426.    }
  427.  
  428.    public void reshape(int var1, int var2, int var3, int var4) {
  429.       Object var5 = LOCK;
  430.       synchronized(var5){}
  431.  
  432.       try {
  433.          boolean var7 = this.width != var3 || this.height != var4;
  434.          boolean var8 = this.field_0 != var1 || this.field_1 != var2;
  435.          boolean var9 = this.peer instanceof LightweightPeer;
  436.          if (var7 || var8) {
  437.             if (var9) {
  438.                this.repaint();
  439.             }
  440.  
  441.             this.field_0 = var1;
  442.             this.field_1 = var2;
  443.             this.width = var3;
  444.             this.height = var4;
  445.             if (this.peer != null) {
  446.                if (this.peer instanceof LightweightPeer) {
  447.                   this.peer.setBounds(var1, var2, var3, var4);
  448.                } else {
  449.                   int var10 = var1;
  450.                   int var11 = var2;
  451.  
  452.                   for(Container var12 = this.parent; var12 != null && var12.peer instanceof LightweightPeer; var12 = var12.parent) {
  453.                      var10 += var12.field_0;
  454.                      var11 += var12.field_1;
  455.                   }
  456.  
  457.                   this.peer.setBounds(var10, var11, var3, var4);
  458.                }
  459.  
  460.                if (var7) {
  461.                   this.invalidate();
  462.                   if (this.componentListener != null || (this.eventMask & 1L) != 0L) {
  463.                      ComponentEvent var15 = new ComponentEvent(this, 101);
  464.                      Toolkit.getEventQueue().postEvent(var15);
  465.                   }
  466.                }
  467.  
  468.                if (var8 && (this.componentListener != null || (this.eventMask & 1L) != 0L)) {
  469.                   ComponentEvent var16 = new ComponentEvent(this, 100);
  470.                   Toolkit.getEventQueue().postEvent(var16);
  471.                }
  472.  
  473.                if (this.parent != null && this.parent.valid) {
  474.                   this.parent.invalidate();
  475.                }
  476.  
  477.                if (var9) {
  478.                   this.repaint();
  479.                }
  480.             }
  481.          }
  482.       } catch (Throwable var14) {
  483.          throw var14;
  484.       }
  485.  
  486.    }
  487.  
  488.    public void setBounds(Rectangle var1) {
  489.       this.setBounds(var1.x, var1.y, var1.width, var1.height);
  490.    }
  491.  
  492.    public Dimension getPreferredSize() {
  493.       return this.preferredSize();
  494.    }
  495.  
  496.    public Dimension preferredSize() {
  497.       Dimension var1 = this.prefSize;
  498.       if (var1 != null && this.isValid()) {
  499.          return var1;
  500.       } else {
  501.          Object var3 = LOCK;
  502.          synchronized(var3){}
  503.  
  504.          Dimension var2;
  505.          try {
  506.             this.prefSize = this.peer != null ? this.peer.preferredSize() : this.getMinimumSize();
  507.             var2 = this.prefSize;
  508.          } catch (Throwable var6) {
  509.             throw var6;
  510.          }
  511.  
  512.          return var2;
  513.       }
  514.    }
  515.  
  516.    public Dimension getMinimumSize() {
  517.       return this.minimumSize();
  518.    }
  519.  
  520.    public Dimension minimumSize() {
  521.       Dimension var1 = this.minSize;
  522.       if (var1 != null && this.isValid()) {
  523.          return var1;
  524.       } else {
  525.          Object var3 = LOCK;
  526.          synchronized(var3){}
  527.  
  528.          Dimension var2;
  529.          try {
  530.             this.minSize = this.peer != null ? this.peer.minimumSize() : this.size();
  531.             var2 = this.minSize;
  532.          } catch (Throwable var6) {
  533.             throw var6;
  534.          }
  535.  
  536.          return var2;
  537.       }
  538.    }
  539.  
  540.    public Dimension getMaximumSize() {
  541.       return new Dimension(32767, 32767);
  542.    }
  543.  
  544.    public float getAlignmentX() {
  545.       return 0.5F;
  546.    }
  547.  
  548.    public float getAlignmentY() {
  549.       return 0.5F;
  550.    }
  551.  
  552.    public void doLayout() {
  553.       this.layout();
  554.    }
  555.  
  556.    public void layout() {
  557.    }
  558.  
  559.    public void validate() {
  560.       if (!this.valid) {
  561.          Object var1 = LOCK;
  562.          synchronized(var1){}
  563.  
  564.          try {
  565.             this.valid = true;
  566.          } catch (Throwable var3) {
  567.             throw var3;
  568.          }
  569.  
  570.       }
  571.    }
  572.  
  573.    public void invalidate() {
  574.       Object var1 = LOCK;
  575.       synchronized(var1){}
  576.  
  577.       try {
  578.          this.valid = false;
  579.          this.prefSize = null;
  580.          this.minSize = null;
  581.          if (this.parent != null && this.parent.valid) {
  582.             this.parent.invalidate();
  583.          }
  584.       } catch (Throwable var3) {
  585.          throw var3;
  586.       }
  587.  
  588.    }
  589.  
  590.    public Graphics getGraphics() {
  591.       if (this.peer instanceof LightweightPeer) {
  592.          Graphics var2 = this.parent.getGraphics();
  593.          var2.translate(this.field_0, this.field_1);
  594.          var2.setClip(0, 0, this.width, this.height);
  595.          return var2;
  596.       } else {
  597.          ComponentPeer var1 = this.peer;
  598.          return var1 != null ? var1.getGraphics() : null;
  599.       }
  600.    }
  601.  
  602.    public FontMetrics getFontMetrics(Font var1) {
  603.       ComponentPeer var2 = this.peer;
  604.       return var2 != null && !(var2 instanceof LightweightPeer) ? var2.getFontMetrics(var1) : this.getToolkit().getFontMetrics(var1);
  605.    }
  606.  
  607.    public synchronized void setCursor(Cursor var1) {
  608.       this.cursor = var1;
  609.       ComponentPeer var2 = this.peer;
  610.       if (var2 != null) {
  611.          var2.setCursor(var1);
  612.       }
  613.  
  614.    }
  615.  
  616.    public Cursor getCursor() {
  617.       return this.cursor;
  618.    }
  619.  
  620.    public void paint(Graphics var1) {
  621.    }
  622.  
  623.    public void update(Graphics var1) {
  624.       if (!(this.peer instanceof LightweightPeer)) {
  625.          var1.setColor(this.getBackground());
  626.          var1.fillRect(0, 0, this.width, this.height);
  627.          var1.setColor(this.getForeground());
  628.       }
  629.  
  630.       this.paint(var1);
  631.    }
  632.  
  633.    public void paintAll(Graphics var1) {
  634.       ComponentPeer var2 = this.peer;
  635.       if (this.visible && var2 != null) {
  636.          this.validate();
  637.          if (var2 instanceof LightweightPeer) {
  638.             this.paint(var1);
  639.             return;
  640.          }
  641.  
  642.          var2.paint(var1);
  643.       }
  644.  
  645.    }
  646.  
  647.    public void repaint() {
  648.       this.repaint(0L, 0, 0, this.width, this.height);
  649.    }
  650.  
  651.    public void repaint(long var1) {
  652.       this.repaint(var1, 0, 0, this.width, this.height);
  653.    }
  654.  
  655.    public void repaint(int var1, int var2, int var3, int var4) {
  656.       this.repaint(0L, var1, var2, var3, var4);
  657.    }
  658.  
  659.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  660.       if (this.peer instanceof LightweightPeer) {
  661.          int var11 = this.field_0 + (var3 < 0 ? 0 : var3);
  662.          int var8 = this.field_1 + (var4 < 0 ? 0 : var4);
  663.          int var9 = var5 > this.width ? this.width : var5;
  664.          int var10 = var6 > this.height ? this.height : var6;
  665.          this.parent.repaint(var1, var11, var8, var9, var10);
  666.       } else {
  667.          ComponentPeer var7 = this.peer;
  668.          if (var7 != null && var5 > 0 && var6 > 0) {
  669.             var7.repaint(var1, var3, var4, var5, var6);
  670.          }
  671.  
  672.       }
  673.    }
  674.  
  675.    public void print(Graphics var1) {
  676.       this.paint(var1);
  677.    }
  678.  
  679.    public void printAll(Graphics var1) {
  680.       ComponentPeer var2 = this.peer;
  681.       if (this.visible && var2 != null) {
  682.          this.validate();
  683.          var2.print(var1);
  684.       }
  685.  
  686.    }
  687.  
  688.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  689.       int var7 = -1;
  690.       if ((var2 & 48) != 0) {
  691.          var7 = 0;
  692.       } else if ((var2 & 8) != 0 && isInc) {
  693.          try {
  694.             var7 = incRate;
  695.             if (var7 < 0) {
  696.                var7 = 0;
  697.             }
  698.          } catch (Exception var8) {
  699.             var7 = 100;
  700.          }
  701.       }
  702.  
  703.       if (var7 >= 0) {
  704.          this.repaint((long)var7, 0, 0, this.width, this.height);
  705.       }
  706.  
  707.       return (var2 & 160) == 0;
  708.    }
  709.  
  710.    public Image createImage(ImageProducer var1) {
  711.       ComponentPeer var2 = this.peer;
  712.       return var2 != null && !(var2 instanceof LightweightPeer) ? var2.createImage(var1) : this.getToolkit().createImage(var1);
  713.    }
  714.  
  715.    public Image createImage(int var1, int var2) {
  716.       ComponentPeer var3 = this.peer;
  717.       if (var3 instanceof LightweightPeer) {
  718.          return this.parent.createImage(var1, var2);
  719.       } else {
  720.          return var3 != null ? var3.createImage(var1, var2) : null;
  721.       }
  722.    }
  723.  
  724.    public boolean prepareImage(Image var1, ImageObserver var2) {
  725.       return this.prepareImage(var1, -1, -1, var2);
  726.    }
  727.  
  728.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  729.       ComponentPeer var5 = this.peer;
  730.       if (var5 instanceof LightweightPeer) {
  731.          return this.parent.prepareImage(var1, var2, var3, var4);
  732.       } else {
  733.          return var5 != null ? var5.prepareImage(var1, var2, var3, var4) : this.getToolkit().prepareImage(var1, var2, var3, var4);
  734.       }
  735.    }
  736.  
  737.    public int checkImage(Image var1, ImageObserver var2) {
  738.       return this.checkImage(var1, -1, -1, var2);
  739.    }
  740.  
  741.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  742.       ComponentPeer var5 = this.peer;
  743.       if (var5 instanceof LightweightPeer) {
  744.          return this.parent.checkImage(var1, var2, var3, var4);
  745.       } else {
  746.          return var5 != null ? var5.checkImage(var1, var2, var3, var4) : this.getToolkit().checkImage(var1, var2, var3, var4);
  747.       }
  748.    }
  749.  
  750.    public boolean contains(int var1, int var2) {
  751.       return this.inside(var1, var2);
  752.    }
  753.  
  754.    public boolean inside(int var1, int var2) {
  755.       return var1 >= 0 && var1 < this.width && var2 >= 0 && var2 < this.height;
  756.    }
  757.  
  758.    public boolean contains(Point var1) {
  759.       return this.contains(var1.x, var1.y);
  760.    }
  761.  
  762.    public Component getComponentAt(int var1, int var2) {
  763.       return this.locate(var1, var2);
  764.    }
  765.  
  766.    public Component locate(int var1, int var2) {
  767.       return this.contains(var1, var2) ? this : null;
  768.    }
  769.  
  770.    public Component getComponentAt(Point var1) {
  771.       return this.getComponentAt(var1.x, var1.y);
  772.    }
  773.  
  774.    public void deliverEvent(Event var1) {
  775.       this.postEvent(var1);
  776.    }
  777.  
  778.    public final void dispatchEvent(AWTEvent var1) {
  779.       this.dispatchEventImpl(var1);
  780.    }
  781.  
  782.    void dispatchEventImpl(AWTEvent var1) {
  783.       int var2 = var1.getID();
  784.       switch (var2) {
  785.          case 401:
  786.          case 402:
  787.             Container var5 = (Container)(this instanceof Container ? this : this.parent);
  788.             if (var5 != null) {
  789.                var5.preProcessKeyEvent((KeyEvent)var1);
  790.                if (var1.isConsumed()) {
  791.                   return;
  792.                }
  793.             }
  794.             break;
  795.          case 800:
  796.          case 801:
  797.             Graphics var3 = this.getGraphics();
  798.             if (var3 == null) {
  799.                return;
  800.             }
  801.  
  802.             Rectangle var4 = ((PaintEvent)var1).getUpdateRect();
  803.             var3.clipRect(var4.x, var4.y, var4.width, var4.height);
  804.             if (var2 == 800) {
  805.                this.paint(var3);
  806.             } else {
  807.                this.update(var3);
  808.             }
  809.  
  810.             var3.dispose();
  811.             return;
  812.          case 1004:
  813.             if (this.parent != null && !(this instanceof Window)) {
  814.                this.parent.setFocusOwner(this);
  815.             }
  816.       }
  817.  
  818.       if (this.newEventsOnly) {
  819.          if (this.eventEnabled(var1)) {
  820.             this.processEvent(var1);
  821.          }
  822.       } else if (!(var1 instanceof MouseEvent) || this.postsOldMouseEvents()) {
  823.          Event var6 = var1.convertToOld();
  824.          if (var6 != null) {
  825.             int var8 = var6.key;
  826.             int var9 = var6.modifiers;
  827.             this.postEvent(var6);
  828.             if (var6.isConsumed()) {
  829.                var1.consume();
  830.             }
  831.  
  832.             switch (var6.id) {
  833.                case 401:
  834.                case 402:
  835.                case 403:
  836.                case 404:
  837.                   if (var6.key != var8) {
  838.                      ((KeyEvent)var1).setKeyChar(var6.getKeyEventChar());
  839.                   }
  840.  
  841.                   if (var6.modifiers != var9) {
  842.                      ((KeyEvent)var1).setModifiers(var6.modifiers);
  843.                   }
  844.             }
  845.          }
  846.       }
  847.  
  848.       if (!var1.isConsumed() && var1 instanceof KeyEvent) {
  849.          Container var7 = (Container)(this instanceof Container ? this : this.parent);
  850.          if (var7 != null) {
  851.             var7.postProcessKeyEvent((KeyEvent)var1);
  852.          }
  853.       }
  854.  
  855.       if (this.peer != null) {
  856.          this.peer.handleEvent(var1);
  857.       }
  858.  
  859.    }
  860.  
  861.    boolean eventEnabled(AWTEvent var1) {
  862.       switch (var1.id) {
  863.          case 100:
  864.          case 101:
  865.          case 102:
  866.          case 103:
  867.             if ((this.eventMask & 1L) != 0L || this.componentListener != null) {
  868.                return true;
  869.             }
  870.             break;
  871.          case 400:
  872.          case 401:
  873.          case 402:
  874.             if ((this.eventMask & 8L) != 0L || this.keyListener != null) {
  875.                return true;
  876.             }
  877.             break;
  878.          case 500:
  879.          case 501:
  880.          case 502:
  881.          case 504:
  882.          case 505:
  883.             if ((this.eventMask & 16L) != 0L || this.mouseListener != null) {
  884.                return true;
  885.             }
  886.             break;
  887.          case 503:
  888.          case 506:
  889.             if ((this.eventMask & 32L) != 0L || this.mouseMotionListener != null) {
  890.                return true;
  891.             }
  892.             break;
  893.          case 1004:
  894.          case 1005:
  895.             if ((this.eventMask & 4L) != 0L || this.focusListener != null) {
  896.                return true;
  897.             }
  898.       }
  899.  
  900.       if (var1.id > 1999) {
  901.          return true;
  902.       } else {
  903.          return false;
  904.       }
  905.    }
  906.  
  907.    public boolean postEvent(Event var1) {
  908.       if (this.handleEvent(var1)) {
  909.          var1.consume();
  910.          return true;
  911.       } else {
  912.          Container var2 = this.parent;
  913.          int var3 = var1.x;
  914.          int var4 = var1.y;
  915.          if (var2 != null) {
  916.             var1.translate(this.field_0, this.field_1);
  917.             if (((Component)var2).postEvent(var1)) {
  918.                var1.consume();
  919.                return true;
  920.             }
  921.  
  922.             var1.x = var3;
  923.             var1.y = var4;
  924.          }
  925.  
  926.          return false;
  927.       }
  928.    }
  929.  
  930.    public synchronized void addComponentListener(ComponentListener var1) {
  931.       this.componentListener = AWTEventMulticaster.add(this.componentListener, var1);
  932.       this.newEventsOnly = true;
  933.    }
  934.  
  935.    public synchronized void removeComponentListener(ComponentListener var1) {
  936.       this.componentListener = AWTEventMulticaster.remove(this.componentListener, var1);
  937.    }
  938.  
  939.    public synchronized void addFocusListener(FocusListener var1) {
  940.       this.focusListener = AWTEventMulticaster.add(this.focusListener, var1);
  941.       this.newEventsOnly = true;
  942.       if (this.peer instanceof LightweightPeer) {
  943.          this.parent.proxyEnableEvents(4L);
  944.       }
  945.  
  946.    }
  947.  
  948.    public synchronized void removeFocusListener(FocusListener var1) {
  949.       this.focusListener = AWTEventMulticaster.remove(this.focusListener, var1);
  950.    }
  951.  
  952.    public synchronized void addKeyListener(KeyListener var1) {
  953.       this.keyListener = AWTEventMulticaster.add(this.keyListener, var1);
  954.       this.newEventsOnly = true;
  955.       if (this.peer instanceof LightweightPeer) {
  956.          this.parent.proxyEnableEvents(8L);
  957.       }
  958.  
  959.    }
  960.  
  961.    public synchronized void removeKeyListener(KeyListener var1) {
  962.       this.keyListener = AWTEventMulticaster.remove(this.keyListener, var1);
  963.    }
  964.  
  965.    public synchronized void addMouseListener(MouseListener var1) {
  966.       this.mouseListener = AWTEventMulticaster.add(this.mouseListener, var1);
  967.       this.newEventsOnly = true;
  968.       if (this.peer instanceof LightweightPeer) {
  969.          this.parent.proxyEnableEvents(16L);
  970.       }
  971.  
  972.    }
  973.  
  974.    public synchronized void removeMouseListener(MouseListener var1) {
  975.       this.mouseListener = AWTEventMulticaster.remove(this.mouseListener, var1);
  976.    }
  977.  
  978.    public synchronized void addMouseMotionListener(MouseMotionListener var1) {
  979.       this.mouseMotionListener = AWTEventMulticaster.add(this.mouseMotionListener, var1);
  980.       this.newEventsOnly = true;
  981.       if (this.peer instanceof LightweightPeer) {
  982.          this.parent.proxyEnableEvents(32L);
  983.       }
  984.  
  985.    }
  986.  
  987.    public synchronized void removeMouseMotionListener(MouseMotionListener var1) {
  988.       this.mouseMotionListener = AWTEventMulticaster.remove(this.mouseMotionListener, var1);
  989.    }
  990.  
  991.    protected final void enableEvents(long var1) {
  992.       this.eventMask |= var1;
  993.       this.newEventsOnly = true;
  994.       if (this.peer instanceof LightweightPeer) {
  995.          this.parent.proxyEnableEvents(this.eventMask);
  996.       }
  997.  
  998.    }
  999.  
  1000.    protected final void disableEvents(long var1) {
  1001.       this.eventMask &= ~var1;
  1002.    }
  1003.  
  1004.    protected void processEvent(AWTEvent var1) {
  1005.       if (var1 instanceof FocusEvent) {
  1006.          this.processFocusEvent((FocusEvent)var1);
  1007.       } else {
  1008.          if (var1 instanceof MouseEvent) {
  1009.             switch (var1.getID()) {
  1010.                case 500:
  1011.                case 501:
  1012.                case 502:
  1013.                case 504:
  1014.                case 505:
  1015.                   this.processMouseEvent((MouseEvent)var1);
  1016.                   return;
  1017.                case 503:
  1018.                case 506:
  1019.                   this.processMouseMotionEvent((MouseEvent)var1);
  1020.                   return;
  1021.             }
  1022.          } else {
  1023.             if (var1 instanceof KeyEvent) {
  1024.                this.processKeyEvent((KeyEvent)var1);
  1025.                return;
  1026.             }
  1027.  
  1028.             if (var1 instanceof ComponentEvent) {
  1029.                this.processComponentEvent((ComponentEvent)var1);
  1030.             }
  1031.          }
  1032.  
  1033.       }
  1034.    }
  1035.  
  1036.    protected void processComponentEvent(ComponentEvent var1) {
  1037.       if (this.componentListener != null) {
  1038.          int var2 = ((AWTEvent)var1).getID();
  1039.          switch (var2) {
  1040.             case 100:
  1041.                this.componentListener.componentMoved(var1);
  1042.                return;
  1043.             case 101:
  1044.                this.componentListener.componentResized(var1);
  1045.                return;
  1046.             case 102:
  1047.                this.componentListener.componentShown(var1);
  1048.                return;
  1049.             case 103:
  1050.                this.componentListener.componentHidden(var1);
  1051.                return;
  1052.          }
  1053.       }
  1054.  
  1055.    }
  1056.  
  1057.    protected void processFocusEvent(FocusEvent var1) {
  1058.       if (this.focusListener != null) {
  1059.          int var2 = ((AWTEvent)var1).getID();
  1060.          switch (var2) {
  1061.             case 1004:
  1062.                this.focusListener.focusGained(var1);
  1063.                return;
  1064.             case 1005:
  1065.                this.focusListener.focusLost(var1);
  1066.                return;
  1067.          }
  1068.       }
  1069.  
  1070.    }
  1071.  
  1072.    protected void processKeyEvent(KeyEvent var1) {
  1073.       if (this.keyListener != null) {
  1074.          int var2 = ((AWTEvent)var1).getID();
  1075.          switch (var2) {
  1076.             case 400:
  1077.                this.keyListener.keyTyped(var1);
  1078.                return;
  1079.             case 401:
  1080.                this.keyListener.keyPressed(var1);
  1081.                return;
  1082.             case 402:
  1083.                this.keyListener.keyReleased(var1);
  1084.                return;
  1085.          }
  1086.       }
  1087.  
  1088.    }
  1089.  
  1090.    protected void processMouseEvent(MouseEvent var1) {
  1091.       if (this.mouseListener != null) {
  1092.          int var2 = ((AWTEvent)var1).getID();
  1093.          switch (var2) {
  1094.             case 500:
  1095.                this.mouseListener.mouseClicked(var1);
  1096.                return;
  1097.             case 501:
  1098.                this.mouseListener.mousePressed(var1);
  1099.                return;
  1100.             case 502:
  1101.                this.mouseListener.mouseReleased(var1);
  1102.                return;
  1103.             case 503:
  1104.             default:
  1105.                break;
  1106.             case 504:
  1107.                this.mouseListener.mouseEntered(var1);
  1108.                return;
  1109.             case 505:
  1110.                this.mouseListener.mouseExited(var1);
  1111.                return;
  1112.          }
  1113.       }
  1114.  
  1115.    }
  1116.  
  1117.    protected void processMouseMotionEvent(MouseEvent var1) {
  1118.       if (this.mouseMotionListener != null) {
  1119.          int var2 = ((AWTEvent)var1).getID();
  1120.          switch (var2) {
  1121.             case 503:
  1122.                this.mouseMotionListener.mouseMoved(var1);
  1123.                return;
  1124.             case 506:
  1125.                this.mouseMotionListener.mouseDragged(var1);
  1126.                return;
  1127.          }
  1128.       }
  1129.  
  1130.    }
  1131.  
  1132.    boolean postsOldMouseEvents() {
  1133.       return false;
  1134.    }
  1135.  
  1136.    public boolean handleEvent(Event var1) {
  1137.       switch (var1.id) {
  1138.          case 401:
  1139.          case 403:
  1140.             return this.keyDown(var1, var1.key);
  1141.          case 402:
  1142.          case 404:
  1143.             return this.keyUp(var1, var1.key);
  1144.          case 501:
  1145.             return this.mouseDown(var1, var1.x, var1.y);
  1146.          case 502:
  1147.             return this.mouseUp(var1, var1.x, var1.y);
  1148.          case 503:
  1149.             return this.mouseMove(var1, var1.x, var1.y);
  1150.          case 504:
  1151.             return this.mouseEnter(var1, var1.x, var1.y);
  1152.          case 505:
  1153.             return this.mouseExit(var1, var1.x, var1.y);
  1154.          case 506:
  1155.             return this.mouseDrag(var1, var1.x, var1.y);
  1156.          case 1001:
  1157.             return this.action(var1, var1.arg);
  1158.          case 1004:
  1159.             return this.gotFocus(var1, var1.arg);
  1160.          case 1005:
  1161.             return this.lostFocus(var1, var1.arg);
  1162.          default:
  1163.             return false;
  1164.       }
  1165.    }
  1166.  
  1167.    public boolean mouseDown(Event var1, int var2, int var3) {
  1168.       return false;
  1169.    }
  1170.  
  1171.    public boolean mouseDrag(Event var1, int var2, int var3) {
  1172.       return false;
  1173.    }
  1174.  
  1175.    public boolean mouseUp(Event var1, int var2, int var3) {
  1176.       return false;
  1177.    }
  1178.  
  1179.    public boolean mouseMove(Event var1, int var2, int var3) {
  1180.       return false;
  1181.    }
  1182.  
  1183.    public boolean mouseEnter(Event var1, int var2, int var3) {
  1184.       return false;
  1185.    }
  1186.  
  1187.    public boolean mouseExit(Event var1, int var2, int var3) {
  1188.       return false;
  1189.    }
  1190.  
  1191.    public boolean keyDown(Event var1, int var2) {
  1192.       return false;
  1193.    }
  1194.  
  1195.    public boolean keyUp(Event var1, int var2) {
  1196.       return false;
  1197.    }
  1198.  
  1199.    public boolean action(Event var1, Object var2) {
  1200.       return false;
  1201.    }
  1202.  
  1203.    public void addNotify() {
  1204.       if (this.peer == null) {
  1205.          this.peer = this.getToolkit().createComponent(this);
  1206.          long var1 = 0L;
  1207.          if (this.mouseListener != null || (this.eventMask & 16L) != 0L) {
  1208.             var1 |= 16L;
  1209.          }
  1210.  
  1211.          if (this.mouseMotionListener != null || (this.eventMask & 32L) != 0L) {
  1212.             var1 |= 32L;
  1213.          }
  1214.  
  1215.          if (this.focusListener != null || (this.eventMask & 4L) != 0L) {
  1216.             var1 |= 4L;
  1217.          }
  1218.  
  1219.          if (this.keyListener != null || (this.eventMask & 8L) != 0L) {
  1220.             var1 |= 8L;
  1221.          }
  1222.  
  1223.          if (var1 != 0L) {
  1224.             this.parent.proxyEnableEvents(var1);
  1225.          }
  1226.       } else if (this.parent != null && this.parent.peer instanceof LightweightPeer) {
  1227.          new NativeInLightFixer(this);
  1228.          int var4 = this.field_0;
  1229.          int var2 = this.field_1;
  1230.  
  1231.          for(Container var3 = this.parent; var3 != null && var3.peer instanceof LightweightPeer; var3 = var3.parent) {
  1232.             var4 += var3.field_0;
  1233.             var2 += var3.field_1;
  1234.          }
  1235.  
  1236.          this.peer.setBounds(var4, var2, this.width, this.height);
  1237.       }
  1238.  
  1239.       this.invalidate();
  1240.       int var5 = this.popups != null ? this.popups.size() : 0;
  1241.  
  1242.       for(int var6 = 0; var6 < var5; ++var6) {
  1243.          PopupMenu var7 = (PopupMenu)this.popups.elementAt(var6);
  1244.          var7.addNotify();
  1245.       }
  1246.  
  1247.       for(Container var8 = this.getParent(); var8 != null; var8 = ((Component)var8).getParent()) {
  1248.          if (var8 instanceof Window) {
  1249.             ((Window)var8).getWarningString();
  1250.             return;
  1251.          }
  1252.       }
  1253.  
  1254.    }
  1255.  
  1256.    public void removeNotify() {
  1257.       int var1 = this.popups != null ? this.popups.size() : 0;
  1258.  
  1259.       for(int var2 = 0; var2 < var1; ++var2) {
  1260.          PopupMenu var3 = (PopupMenu)this.popups.elementAt(var2);
  1261.          ((Menu)var3).removeNotify();
  1262.       }
  1263.  
  1264.       if (this.peer != null) {
  1265.          ComponentPeer var4 = this.peer;
  1266.          var4.hide();
  1267.          this.peer = null;
  1268.          Toolkit.getEventQueue().removeSourceEvents(this);
  1269.          var4.dispose();
  1270.       }
  1271.  
  1272.    }
  1273.  
  1274.    public boolean gotFocus(Event var1, Object var2) {
  1275.       return false;
  1276.    }
  1277.  
  1278.    public boolean lostFocus(Event var1, Object var2) {
  1279.       return false;
  1280.    }
  1281.  
  1282.    public boolean isFocusTraversable() {
  1283.       ComponentPeer var1 = this.peer;
  1284.       return var1 != null ? var1.isFocusTraversable() : false;
  1285.    }
  1286.  
  1287.    public void requestFocus() {
  1288.       ComponentPeer var1 = this.peer;
  1289.       if (var1 != null) {
  1290.          if (var1 instanceof LightweightPeer) {
  1291.             this.parent.proxyRequestFocus(this);
  1292.             return;
  1293.          }
  1294.  
  1295.          var1.requestFocus();
  1296.          Toolkit.getEventQueue().changeKeyEventFocus(this);
  1297.       }
  1298.  
  1299.    }
  1300.  
  1301.    public void transferFocus() {
  1302.       this.nextFocus();
  1303.    }
  1304.  
  1305.    public void nextFocus() {
  1306.       Container var1 = this.parent;
  1307.       if (var1 != null) {
  1308.          var1.transferFocus(this);
  1309.       }
  1310.  
  1311.    }
  1312.  
  1313.    public synchronized void add(PopupMenu var1) {
  1314.       if (var1.parent != null) {
  1315.          var1.parent.remove(var1);
  1316.       }
  1317.  
  1318.       if (this.popups == null) {
  1319.          this.popups = new Vector();
  1320.       }
  1321.  
  1322.       this.popups.addElement(var1);
  1323.       var1.parent = this;
  1324.       if (this.peer != null && var1.peer == null) {
  1325.          var1.addNotify();
  1326.       }
  1327.  
  1328.    }
  1329.  
  1330.    public synchronized void remove(MenuComponent var1) {
  1331.       int var2 = this.popups.indexOf(var1);
  1332.       if (var2 >= 0) {
  1333.          PopupMenu var3 = (PopupMenu)var1;
  1334.          if (var3.peer != null) {
  1335.             ((Menu)var3).removeNotify();
  1336.          }
  1337.  
  1338.          var3.parent = null;
  1339.          this.popups.removeElementAt(var2);
  1340.          if (this.popups.size() == 0) {
  1341.             this.popups = null;
  1342.          }
  1343.       }
  1344.  
  1345.    }
  1346.  
  1347.    protected String paramString() {
  1348.       String var1 = (this.name != null ? this.name : "") + "," + this.field_0 + "," + this.field_1 + "," + this.width + "x" + this.height;
  1349.       if (!this.valid) {
  1350.          var1 = var1 + ",invalid";
  1351.       }
  1352.  
  1353.       if (!this.visible) {
  1354.          var1 = var1 + ",hidden";
  1355.       }
  1356.  
  1357.       if (!this.enabled) {
  1358.          var1 = var1 + ",disabled";
  1359.       }
  1360.  
  1361.       return var1;
  1362.    }
  1363.  
  1364.    public String toString() {
  1365.       return this.getClass().getName() + "[" + this.paramString() + "]";
  1366.    }
  1367.  
  1368.    public void list() {
  1369.       this.list((PrintStream)System.out, 0);
  1370.    }
  1371.  
  1372.    public void list(PrintStream var1) {
  1373.       this.list((PrintStream)var1, 0);
  1374.    }
  1375.  
  1376.    public void list(PrintStream var1, int var2) {
  1377.       for(int var3 = 0; var3 < var2; ++var3) {
  1378.          var1.print("  ");
  1379.       }
  1380.  
  1381.       var1.println(this);
  1382.    }
  1383.  
  1384.    public void list(PrintWriter var1) {
  1385.       this.list((PrintWriter)var1, 0);
  1386.    }
  1387.  
  1388.    public void list(PrintWriter var1, int var2) {
  1389.       for(int var3 = 0; var3 < var2; ++var3) {
  1390.          var1.print("  ");
  1391.       }
  1392.  
  1393.       var1.println(this);
  1394.    }
  1395.  
  1396.    Container getNativeContainer() {
  1397.       Container var1;
  1398.       for(var1 = this.parent; var1 != null && var1.peer instanceof LightweightPeer; var1 = ((Component)var1).getParent()) {
  1399.       }
  1400.  
  1401.       return var1;
  1402.    }
  1403.  
  1404.    private void writeObject(ObjectOutputStream var1) throws IOException {
  1405.       var1.defaultWriteObject();
  1406.       AWTEventMulticaster.save(var1, "componentL", this.componentListener);
  1407.       AWTEventMulticaster.save(var1, "focusL", this.focusListener);
  1408.       AWTEventMulticaster.save(var1, "keyL", this.keyListener);
  1409.       AWTEventMulticaster.save(var1, "mouseL", this.mouseListener);
  1410.       AWTEventMulticaster.save(var1, "mouseMotionL", this.mouseMotionListener);
  1411.       var1.writeObject((Object)null);
  1412.    }
  1413.  
  1414.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  1415.       var1.defaultReadObject();
  1416.  
  1417.       Object var2;
  1418.       while((var2 = var1.readObject()) != null) {
  1419.          String var3 = ((String)var2).intern();
  1420.          if (var3 == "componentL") {
  1421.             this.addComponentListener((ComponentListener)var1.readObject());
  1422.          } else if (var3 == "focusL") {
  1423.             this.addFocusListener((FocusListener)var1.readObject());
  1424.          } else if (var3 == "keyL") {
  1425.             this.addKeyListener((KeyListener)var1.readObject());
  1426.          } else if (var3 == "mouseL") {
  1427.             this.addMouseListener((MouseListener)var1.readObject());
  1428.          } else if (var3 == "mouseMotionL") {
  1429.             this.addMouseMotionListener((MouseMotionListener)var1.readObject());
  1430.          } else {
  1431.             var1.readObject();
  1432.          }
  1433.       }
  1434.  
  1435.    }
  1436.  
  1437.    static {
  1438.       String var0 = System.getProperty("awt.image.incrementaldraw");
  1439.       isInc = var0 == null || var0.equals("true");
  1440.       var0 = System.getProperty("awt.image.redrawrate");
  1441.       incRate = var0 != null ? Integer.parseInt(var0) : 100;
  1442.    }
  1443. }
  1444.