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 / Component.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  35.5 KB  |  2,419 lines

  1. package java.awt;
  2.  
  3. import java.awt.GraphicsCallback.PeerPaintCallback;
  4. import java.awt.GraphicsCallback.PeerPrintCallback;
  5. import java.awt.dnd.DropTarget;
  6. import java.awt.event.ComponentEvent;
  7. import java.awt.event.ComponentListener;
  8. import java.awt.event.FocusEvent;
  9. import java.awt.event.FocusListener;
  10. import java.awt.event.HierarchyBoundsListener;
  11. import java.awt.event.HierarchyEvent;
  12. import java.awt.event.HierarchyListener;
  13. import java.awt.event.InputEvent;
  14. import java.awt.event.InputMethodEvent;
  15. import java.awt.event.InputMethodListener;
  16. import java.awt.event.KeyEvent;
  17. import java.awt.event.KeyListener;
  18. import java.awt.event.MouseEvent;
  19. import java.awt.event.MouseListener;
  20. import java.awt.event.MouseMotionListener;
  21. import java.awt.event.PaintEvent;
  22. import java.awt.event.WindowEvent;
  23. import java.awt.im.InputContext;
  24. import java.awt.im.InputMethodRequests;
  25. import java.awt.image.ColorModel;
  26. import java.awt.image.ImageObserver;
  27. import java.awt.image.ImageProducer;
  28. import java.awt.peer.ComponentPeer;
  29. import java.awt.peer.LightweightPeer;
  30. import java.beans.PropertyChangeListener;
  31. import java.beans.PropertyChangeSupport;
  32. import java.io.IOException;
  33. import java.io.ObjectInputStream;
  34. import java.io.ObjectOutputStream;
  35. import java.io.OptionalDataException;
  36. import java.io.PrintStream;
  37. import java.io.PrintWriter;
  38. import java.io.Serializable;
  39. import java.security.AccessController;
  40. import java.util.EventListener;
  41. import java.util.Hashtable;
  42. import java.util.Locale;
  43. import java.util.Vector;
  44. import javax.accessibility.Accessible;
  45. import javax.accessibility.AccessibleContext;
  46. import javax.accessibility.AccessibleSelection;
  47. import javax.accessibility.AccessibleState;
  48. import javax.accessibility.AccessibleStateSet;
  49. import javax.swing.JComponent;
  50. import sun.awt.AppContext;
  51. import sun.awt.ConstrainableGraphics;
  52. import sun.awt.DebugHelper;
  53. import sun.awt.GlobalCursorManager;
  54. import sun.awt.SunToolkit;
  55. import sun.awt.WindowClosingListener;
  56. import sun.awt.im.CompositionArea;
  57. import sun.java2d.loops.RasterOutputManager;
  58. import sun.security.action.GetPropertyAction;
  59.  
  60. public abstract class Component implements ImageObserver, MenuContainer, Serializable {
  61.    transient ComponentPeer peer;
  62.    transient Container parent;
  63.    transient AppContext appContext;
  64.    // $FF: renamed from: x int
  65.    int field_0;
  66.    // $FF: renamed from: y int
  67.    int field_1;
  68.    int width;
  69.    int height;
  70.    Color foreground;
  71.    Color background;
  72.    Font font;
  73.    Font peerFont;
  74.    Cursor cursor;
  75.    Locale locale;
  76.    transient GraphicsConfiguration graphicsConfig = null;
  77.    boolean visible = true;
  78.    boolean enabled = true;
  79.    boolean valid = false;
  80.    DropTarget dropTarget;
  81.    boolean hasFocus = false;
  82.    Vector popups;
  83.    private String name;
  84.    private boolean nameExplicitlySet = false;
  85.    static final Object LOCK = new AWTTreeLock();
  86.    Dimension minSize;
  87.    Dimension prefSize;
  88.    transient ComponentOrientation componentOrientation;
  89.    boolean newEventsOnly;
  90.    transient ComponentListener componentListener;
  91.    transient FocusListener focusListener;
  92.    transient HierarchyListener hierarchyListener;
  93.    transient HierarchyBoundsListener hierarchyBoundsListener;
  94.    transient KeyListener keyListener;
  95.    transient MouseListener mouseListener;
  96.    transient MouseMotionListener mouseMotionListener;
  97.    transient InputMethodListener inputMethodListener;
  98.    transient RuntimeException windowClosingException;
  99.    static final String actionListenerK = "actionL";
  100.    static final String adjustmentListenerK = "adjustmentL";
  101.    static final String componentListenerK = "componentL";
  102.    static final String containerListenerK = "containerL";
  103.    static final String focusListenerK = "focusL";
  104.    static final String itemListenerK = "itemL";
  105.    static final String keyListenerK = "keyL";
  106.    static final String mouseListenerK = "mouseL";
  107.    static final String mouseMotionListenerK = "mouseMotionL";
  108.    static final String textListenerK = "textL";
  109.    static final String ownedWindowK = "ownedL";
  110.    static final String windowListenerK = "windowL";
  111.    static final String inputMethodListenerK = "inputMethodL";
  112.    static final String hierarchyListenerK = "hierarchyL";
  113.    static final String hierarchyBoundsListenerK = "hierarchyBoundsL";
  114.    long eventMask;
  115.    private static final DebugHelper dbg;
  116.    static boolean isInc;
  117.    static int incRate;
  118.    public static final float TOP_ALIGNMENT = 0.0F;
  119.    public static final float CENTER_ALIGNMENT = 0.5F;
  120.    public static final float BOTTOM_ALIGNMENT = 1.0F;
  121.    public static final float LEFT_ALIGNMENT = 0.0F;
  122.    public static final float RIGHT_ALIGNMENT = 1.0F;
  123.    private static final long serialVersionUID = -7644114512714619750L;
  124.    private PropertyChangeSupport changeSupport;
  125.    boolean isPacked;
  126.    private transient Object privateKey;
  127.    static Hashtable metrics;
  128.    private int componentSerializedDataVersion;
  129.    AccessibleContext accessibleContext;
  130.    // $FF: synthetic field
  131.    static Class class$java$awt$Component;
  132.    // $FF: synthetic field
  133.    static Class class$java$awt$event$ComponentListener;
  134.    // $FF: synthetic field
  135.    static Class class$java$awt$event$FocusListener;
  136.    // $FF: synthetic field
  137.    static Class class$java$awt$event$HierarchyListener;
  138.    // $FF: synthetic field
  139.    static Class class$java$awt$event$HierarchyBoundsListener;
  140.    // $FF: synthetic field
  141.    static Class class$java$awt$event$KeyListener;
  142.    // $FF: synthetic field
  143.    static Class class$java$awt$event$MouseListener;
  144.    // $FF: synthetic field
  145.    static Class class$java$awt$event$MouseMotionListener;
  146.    // $FF: synthetic field
  147.    static Class class$java$awt$event$InputMethodListener;
  148.  
  149.    protected Component() {
  150.       this.componentOrientation = ComponentOrientation.UNKNOWN;
  151.       this.newEventsOnly = false;
  152.       this.windowClosingException = null;
  153.       this.eventMask = 4096L;
  154.       this.isPacked = false;
  155.       this.privateKey = new Object();
  156.       this.componentSerializedDataVersion = 3;
  157.       this.accessibleContext = null;
  158.       this.appContext = AppContext.getAppContext();
  159.       SunToolkit.insertTargetMapping(this, this.appContext);
  160.    }
  161.  
  162.    String constructComponentName() {
  163.       return null;
  164.    }
  165.  
  166.    public String getName() {
  167.       if (this.name == null && !this.nameExplicitlySet) {
  168.          synchronized(this) {
  169.             if (this.name == null && !this.nameExplicitlySet) {
  170.                this.name = this.constructComponentName();
  171.             }
  172.          }
  173.       }
  174.  
  175.       return this.name;
  176.    }
  177.  
  178.    public void setName(String var1) {
  179.       synchronized(this) {
  180.          this.name = var1;
  181.          this.nameExplicitlySet = true;
  182.       }
  183.    }
  184.  
  185.    public Container getParent() {
  186.       return this.getParent_NoClientCode();
  187.    }
  188.  
  189.    final Container getParent_NoClientCode() {
  190.       return this.parent;
  191.    }
  192.  
  193.    public ComponentPeer getPeer() {
  194.       return this.peer;
  195.    }
  196.  
  197.    public synchronized void setDropTarget(DropTarget var1) {
  198.       if (var1 != this.dropTarget && (this.dropTarget == null || !this.dropTarget.equals(var1))) {
  199.          DropTarget var2;
  200.          if ((var2 = this.dropTarget) != null) {
  201.             if (this.peer != null) {
  202.                this.dropTarget.removeNotify(this.peer);
  203.             }
  204.  
  205.             DropTarget var3 = this.dropTarget;
  206.             this.dropTarget = null;
  207.  
  208.             try {
  209.                var3.setComponent((Component)null);
  210.             } catch (IllegalArgumentException var6) {
  211.             }
  212.          }
  213.  
  214.          if ((this.dropTarget = var1) != null) {
  215.             try {
  216.                this.dropTarget.setComponent(this);
  217.                if (this.peer != null) {
  218.                   this.dropTarget.addNotify(this.peer);
  219.                }
  220.             } catch (IllegalArgumentException var7) {
  221.                if (var2 != null) {
  222.                   try {
  223.                      var2.setComponent(this);
  224.                      if (this.peer != null) {
  225.                         this.dropTarget.addNotify(this.peer);
  226.                      }
  227.                   } catch (IllegalArgumentException var5) {
  228.                   }
  229.                }
  230.             }
  231.          }
  232.  
  233.       }
  234.    }
  235.  
  236.    public synchronized DropTarget getDropTarget() {
  237.       return this.dropTarget;
  238.    }
  239.  
  240.    public GraphicsConfiguration getGraphicsConfiguration() {
  241.       Object var1 = this.getTreeLock();
  242.       synchronized(var1) {
  243.          if (this.graphicsConfig != null) {
  244.             GraphicsConfiguration var6 = this.graphicsConfig;
  245.             return var6;
  246.          } else if (this.getParent() != null) {
  247.             GraphicsConfiguration var5 = this.getParent().getGraphicsConfiguration();
  248.             return var5;
  249.          } else {
  250.             Object var2 = null;
  251.             return (GraphicsConfiguration)var2;
  252.          }
  253.       }
  254.    }
  255.  
  256.    void resetGC() {
  257.       Object var1 = this.getTreeLock();
  258.       synchronized(var1) {
  259.          this.graphicsConfig = null;
  260.       }
  261.    }
  262.  
  263.    void checkGD(String var1) {
  264.       if (this.graphicsConfig != null && !this.graphicsConfig.getDevice().getIDstring().equals(var1)) {
  265.          throw new IllegalArgumentException("adding a container to a container on a different GraphicsDevice");
  266.       }
  267.    }
  268.  
  269.    public final Object getTreeLock() {
  270.       return LOCK;
  271.    }
  272.  
  273.    public Toolkit getToolkit() {
  274.       return this.getToolkitImpl();
  275.    }
  276.  
  277.    final Toolkit getToolkitImpl() {
  278.       ComponentPeer var1 = this.peer;
  279.       if (var1 != null && !(var1 instanceof LightweightPeer)) {
  280.          return var1.getToolkit();
  281.       } else {
  282.          Container var2 = this.parent;
  283.          return var2 != null ? ((Component)var2).getToolkitImpl() : Toolkit.getDefaultToolkit();
  284.       }
  285.    }
  286.  
  287.    public boolean isValid() {
  288.       return this.peer != null && this.valid;
  289.    }
  290.  
  291.    public boolean isDisplayable() {
  292.       return this.getPeer() != null;
  293.    }
  294.  
  295.    public boolean isVisible() {
  296.       return this.visible;
  297.    }
  298.  
  299.    boolean isRecursivelyVisible() {
  300.       return this.visible && (this.parent == null || this.parent.isRecursivelyVisible());
  301.    }
  302.  
  303.    public boolean isShowing() {
  304.       if (this.visible && this.peer != null) {
  305.          Container var1 = this.parent;
  306.          return var1 == null || ((Component)var1).isShowing();
  307.       } else {
  308.          return false;
  309.       }
  310.    }
  311.  
  312.    public boolean isEnabled() {
  313.       return this.isEnabledImpl();
  314.    }
  315.  
  316.    final boolean isEnabledImpl() {
  317.       return this.enabled;
  318.    }
  319.  
  320.    public void setEnabled(boolean var1) {
  321.       this.enable(var1);
  322.    }
  323.  
  324.    public void enable() {
  325.       if (!this.enabled) {
  326.          Object var1 = this.getTreeLock();
  327.          synchronized(var1) {
  328.             this.enabled = true;
  329.             ComponentPeer var2 = this.peer;
  330.             if (var2 != null) {
  331.                var2.enable();
  332.                if (this.visible) {
  333.                   GlobalCursorManager.updateCursorImmediately();
  334.                }
  335.             }
  336.          }
  337.  
  338.          if (this.accessibleContext != null) {
  339.             this.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.ENABLED);
  340.          }
  341.       }
  342.  
  343.    }
  344.  
  345.    public void enable(boolean var1) {
  346.       if (var1) {
  347.          this.enable();
  348.       } else {
  349.          this.disable();
  350.       }
  351.  
  352.    }
  353.  
  354.    public void disable() {
  355.       if (this.enabled) {
  356.          Object var1 = this.getTreeLock();
  357.          synchronized(var1) {
  358.             this.enabled = false;
  359.             ComponentPeer var2 = this.peer;
  360.             if (var2 != null) {
  361.                var2.disable();
  362.                if (this.visible) {
  363.                   GlobalCursorManager.updateCursorImmediately();
  364.                }
  365.             }
  366.          }
  367.  
  368.          if (this.accessibleContext != null) {
  369.             this.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.ENABLED);
  370.          }
  371.       }
  372.  
  373.    }
  374.  
  375.    public boolean isDoubleBuffered() {
  376.       return false;
  377.    }
  378.  
  379.    public void enableInputMethods(boolean var1) {
  380.       if (var1) {
  381.          if ((this.eventMask & 4096L) != 0L) {
  382.             return;
  383.          }
  384.  
  385.          if (this.hasFocus()) {
  386.             InputContext var2 = this.getInputContext();
  387.             if (var2 != null) {
  388.                FocusEvent var3 = new FocusEvent(this, 1004);
  389.                var2.dispatchEvent(var3);
  390.             }
  391.          }
  392.  
  393.          this.eventMask |= 4096L;
  394.       } else {
  395.          if (this.areInputMethodsEnabled()) {
  396.             InputContext var4 = this.getInputContext();
  397.             if (var4 != null) {
  398.                var4.endComposition();
  399.                var4.removeNotify(this);
  400.             }
  401.          }
  402.  
  403.          this.eventMask &= -4097L;
  404.       }
  405.  
  406.    }
  407.  
  408.    public void setVisible(boolean var1) {
  409.       this.show(var1);
  410.    }
  411.  
  412.    public void show() {
  413.       if (!this.visible) {
  414.          Object var1 = this.getTreeLock();
  415.          synchronized(var1) {
  416.             this.visible = true;
  417.             ComponentPeer var2 = this.peer;
  418.             if (var2 != null) {
  419.                var2.show();
  420.                this.createHierarchyEvents(1400, this, this.parent, 4L);
  421.                if (var2 instanceof LightweightPeer) {
  422.                   this.repaint();
  423.                }
  424.  
  425.                GlobalCursorManager.updateCursorImmediately();
  426.             }
  427.  
  428.             if (this.componentListener != null || (this.eventMask & 1L) != 0L) {
  429.                ComponentEvent var3 = new ComponentEvent(this, 102);
  430.                Toolkit.getEventQueue().postEvent(var3);
  431.             }
  432.          }
  433.  
  434.          Container var6 = this.parent;
  435.          if (var6 != null) {
  436.             var6.invalidate();
  437.          }
  438.       }
  439.  
  440.    }
  441.  
  442.    public void show(boolean var1) {
  443.       if (var1) {
  444.          this.show();
  445.       } else {
  446.          this.hide();
  447.       }
  448.  
  449.    }
  450.  
  451.    public void hide() {
  452.       if (this.visible) {
  453.          Object var1 = this.getTreeLock();
  454.          synchronized(var1) {
  455.             this.visible = false;
  456.             ComponentPeer var2 = this.peer;
  457.             if (var2 != null) {
  458.                var2.hide();
  459.                this.createHierarchyEvents(1400, this, this.parent, 4L);
  460.                if (var2 instanceof LightweightPeer) {
  461.                   this.repaint();
  462.                }
  463.  
  464.                GlobalCursorManager.updateCursorImmediately();
  465.             }
  466.  
  467.             if (this.componentListener != null || (this.eventMask & 1L) != 0L) {
  468.                ComponentEvent var3 = new ComponentEvent(this, 103);
  469.                Toolkit.getEventQueue().postEvent(var3);
  470.             }
  471.          }
  472.  
  473.          Container var6 = this.parent;
  474.          if (var6 != null) {
  475.             var6.invalidate();
  476.          }
  477.       }
  478.  
  479.    }
  480.  
  481.    public Color getForeground() {
  482.       Color var1 = this.foreground;
  483.       if (var1 != null) {
  484.          return var1;
  485.       } else {
  486.          Container var2 = this.parent;
  487.          return var2 != null ? ((Component)var2).getForeground() : null;
  488.       }
  489.    }
  490.  
  491.    public void setForeground(Color var1) {
  492.       Color var2 = this.foreground;
  493.       ComponentPeer var3 = this.peer;
  494.       this.foreground = var1;
  495.       if (var3 != null) {
  496.          var1 = this.getForeground();
  497.          if (var1 != null) {
  498.             var3.setForeground(var1);
  499.          }
  500.       }
  501.  
  502.       this.firePropertyChange("foreground", var2, var1);
  503.    }
  504.  
  505.    public Color getBackground() {
  506.       Color var1 = this.background;
  507.       if (var1 != null) {
  508.          return var1;
  509.       } else {
  510.          Container var2 = this.parent;
  511.          return var2 != null ? ((Component)var2).getBackground() : null;
  512.       }
  513.    }
  514.  
  515.    public void setBackground(Color var1) {
  516.       Color var2 = this.background;
  517.       ComponentPeer var3 = this.peer;
  518.       this.background = var1;
  519.       if (var3 != null) {
  520.          var1 = this.getBackground();
  521.          if (var1 != null) {
  522.             var3.setBackground(var1);
  523.          }
  524.       }
  525.  
  526.       this.firePropertyChange("background", var2, var1);
  527.    }
  528.  
  529.    public Font getFont() {
  530.       return this.getFont_NoClientCode();
  531.    }
  532.  
  533.    final Font getFont_NoClientCode() {
  534.       Font var1 = this.font;
  535.       if (var1 != null) {
  536.          return var1;
  537.       } else {
  538.          Container var2 = this.parent;
  539.          return var2 != null ? ((Component)var2).getFont_NoClientCode() : null;
  540.       }
  541.    }
  542.  
  543.    public void setFont(Font var1) {
  544.       Font var2;
  545.       Font var3;
  546.       synchronized(this) {
  547.          var2 = this.font;
  548.          ComponentPeer var5 = this.peer;
  549.          var3 = this.font = var1;
  550.          if (var5 != null) {
  551.             var1 = this.getFont();
  552.             if (var1 != null) {
  553.                var5.setFont(var1);
  554.                this.peerFont = var1;
  555.             }
  556.          }
  557.       }
  558.  
  559.       this.firePropertyChange("font", var2, var3);
  560.       if (this.valid) {
  561.          this.invalidate();
  562.       }
  563.  
  564.    }
  565.  
  566.    public Locale getLocale() {
  567.       Locale var1 = this.locale;
  568.       if (var1 != null) {
  569.          return var1;
  570.       } else {
  571.          Container var2 = this.parent;
  572.          if (var2 == null) {
  573.             throw new IllegalComponentStateException("This component must have a parent in order to determine its locale");
  574.          } else {
  575.             return ((Component)var2).getLocale();
  576.          }
  577.       }
  578.    }
  579.  
  580.    public void setLocale(Locale var1) {
  581.       this.locale = var1;
  582.       if (this.valid) {
  583.          this.invalidate();
  584.       }
  585.  
  586.    }
  587.  
  588.    public ColorModel getColorModel() {
  589.       ComponentPeer var1 = this.peer;
  590.       return var1 != null && !(var1 instanceof LightweightPeer) ? var1.getColorModel() : this.getToolkit().getColorModel();
  591.    }
  592.  
  593.    public Point getLocation() {
  594.       return this.location();
  595.    }
  596.  
  597.    public Point getLocationOnScreen() {
  598.       Object var1 = this.getTreeLock();
  599.       synchronized(var1) {
  600.          Point var2 = this.getLocationOnScreen_NoTreeLock();
  601.          return var2;
  602.       }
  603.    }
  604.  
  605.    final Point getLocationOnScreen_NoTreeLock() {
  606.       if (this.peer != null && this.isShowing()) {
  607.          if (!(this.peer instanceof LightweightPeer)) {
  608.             Point var4 = this.peer.getLocationOnScreen();
  609.             return var4;
  610.          } else {
  611.             Container var1 = this.getNativeContainer();
  612.             Point var2 = var1.peer.getLocationOnScreen();
  613.  
  614.             for(Object var3 = this; var3 != var1; var3 = ((Component)var3).getParent()) {
  615.                var2.x += ((Component)var3).field_0;
  616.                var2.y += ((Component)var3).field_1;
  617.             }
  618.  
  619.             return var2;
  620.          }
  621.       } else {
  622.          throw new IllegalComponentStateException("component must be showing on the screen to determine its location");
  623.       }
  624.    }
  625.  
  626.    public Point location() {
  627.       return new Point(this.field_0, this.field_1);
  628.    }
  629.  
  630.    public void setLocation(int var1, int var2) {
  631.       this.move(var1, var2);
  632.    }
  633.  
  634.    public void move(int var1, int var2) {
  635.       this.setBounds(var1, var2, this.width, this.height);
  636.    }
  637.  
  638.    public void setLocation(Point var1) {
  639.       this.setLocation(var1.x, var1.y);
  640.    }
  641.  
  642.    public Dimension getSize() {
  643.       return this.size();
  644.    }
  645.  
  646.    public Dimension size() {
  647.       return new Dimension(this.width, this.height);
  648.    }
  649.  
  650.    public void setSize(int var1, int var2) {
  651.       this.resize(var1, var2);
  652.    }
  653.  
  654.    public void resize(int var1, int var2) {
  655.       this.setBounds(this.field_0, this.field_1, var1, var2);
  656.    }
  657.  
  658.    public void setSize(Dimension var1) {
  659.       this.resize(var1);
  660.    }
  661.  
  662.    public void resize(Dimension var1) {
  663.       this.setSize(var1.width, var1.height);
  664.    }
  665.  
  666.    public Rectangle getBounds() {
  667.       return this.bounds();
  668.    }
  669.  
  670.    public Rectangle bounds() {
  671.       return new Rectangle(this.field_0, this.field_1, this.width, this.height);
  672.    }
  673.  
  674.    public void setBounds(int var1, int var2, int var3, int var4) {
  675.       this.reshape(var1, var2, var3, var4);
  676.    }
  677.  
  678.    public void reshape(int var1, int var2, int var3, int var4) {
  679.       Object var5 = this.getTreeLock();
  680.       synchronized(var5) {
  681.          boolean var6 = this.width != var3 || this.height != var4;
  682.          boolean var7 = this.field_0 != var1 || this.field_1 != var2;
  683.          boolean var8 = this.peer instanceof LightweightPeer;
  684.          if (var6) {
  685.             this.isPacked = false;
  686.          }
  687.  
  688.          if (var6 || var7) {
  689.             if (var8 && this.visible) {
  690.                this.repaint();
  691.             }
  692.  
  693.             this.field_0 = var1;
  694.             this.field_1 = var2;
  695.             this.width = var3;
  696.             this.height = var4;
  697.             if (this.peer != null) {
  698.                if (var8) {
  699.                   this.peer.setBounds(var1, var2, var3, var4);
  700.                } else {
  701.                   int var9 = var1;
  702.                   int var10 = var2;
  703.  
  704.                   for(Container var11 = this.parent; var11 != null && var11.peer instanceof LightweightPeer; var11 = var11.parent) {
  705.                      var9 += var11.field_0;
  706.                      var10 += var11.field_1;
  707.                   }
  708.  
  709.                   this.peer.setBounds(var9, var10, var3, var4);
  710.                }
  711.  
  712.                if (var6) {
  713.                   this.invalidate();
  714.                }
  715.  
  716.                if (this.parent != null && this.parent.valid) {
  717.                   this.parent.invalidate();
  718.                }
  719.             }
  720.  
  721.             if (var6) {
  722.                if (this.componentListener == null && (this.eventMask & 1L) == 0L) {
  723.                   this.createChildHierarchyEvents(1402, 0L);
  724.                } else {
  725.                   ComponentEvent var14 = new ComponentEvent(this, 101);
  726.                   Toolkit.getEventQueue().postEvent(var14);
  727.                }
  728.             }
  729.  
  730.             if (var7) {
  731.                if (this.componentListener == null && (this.eventMask & 1L) == 0L) {
  732.                   this.createChildHierarchyEvents(1401, 0L);
  733.                } else {
  734.                   ComponentEvent var15 = new ComponentEvent(this, 100);
  735.                   Toolkit.getEventQueue().postEvent(var15);
  736.                }
  737.             }
  738.  
  739.             if (var8 && this.visible) {
  740.                this.repaint();
  741.             }
  742.          }
  743.  
  744.       }
  745.    }
  746.  
  747.    public void setBounds(Rectangle var1) {
  748.       this.setBounds(var1.x, var1.y, var1.width, var1.height);
  749.    }
  750.  
  751.    public int getX() {
  752.       return this.field_0;
  753.    }
  754.  
  755.    public int getY() {
  756.       return this.field_1;
  757.    }
  758.  
  759.    public int getWidth() {
  760.       return this.width;
  761.    }
  762.  
  763.    public int getHeight() {
  764.       return this.height;
  765.    }
  766.  
  767.    public Rectangle getBounds(Rectangle var1) {
  768.       if (var1 == null) {
  769.          return new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  770.       } else {
  771.          var1.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  772.          return var1;
  773.       }
  774.    }
  775.  
  776.    public Dimension getSize(Dimension var1) {
  777.       if (var1 == null) {
  778.          return new Dimension(this.getWidth(), this.getHeight());
  779.       } else {
  780.          var1.setSize(this.getWidth(), this.getHeight());
  781.          return var1;
  782.       }
  783.    }
  784.  
  785.    public Point getLocation(Point var1) {
  786.       if (var1 == null) {
  787.          return new Point(this.getX(), this.getY());
  788.       } else {
  789.          var1.setLocation(this.getX(), this.getY());
  790.          return var1;
  791.       }
  792.    }
  793.  
  794.    public boolean isOpaque() {
  795.       return !this.isLightweight();
  796.    }
  797.  
  798.    public boolean isLightweight() {
  799.       return this.getPeer() instanceof LightweightPeer;
  800.    }
  801.  
  802.    public Dimension getPreferredSize() {
  803.       return this.preferredSize();
  804.    }
  805.  
  806.    public Dimension preferredSize() {
  807.       Dimension var1 = this.prefSize;
  808.       if (var1 != null && this.isValid()) {
  809.          return var1;
  810.       } else {
  811.          Object var2 = this.getTreeLock();
  812.          synchronized(var2) {
  813.             this.prefSize = this.peer != null ? this.peer.preferredSize() : this.getMinimumSize();
  814.             Dimension var3 = this.prefSize;
  815.             return var3;
  816.          }
  817.       }
  818.    }
  819.  
  820.    public Dimension getMinimumSize() {
  821.       return this.minimumSize();
  822.    }
  823.  
  824.    public Dimension minimumSize() {
  825.       Dimension var1 = this.minSize;
  826.       if (var1 != null && this.isValid()) {
  827.          return var1;
  828.       } else {
  829.          Object var2 = this.getTreeLock();
  830.          synchronized(var2) {
  831.             this.minSize = this.peer != null ? this.peer.minimumSize() : this.size();
  832.             Dimension var3 = this.minSize;
  833.             return var3;
  834.          }
  835.       }
  836.    }
  837.  
  838.    public Dimension getMaximumSize() {
  839.       return new Dimension(32767, 32767);
  840.    }
  841.  
  842.    public float getAlignmentX() {
  843.       return 0.5F;
  844.    }
  845.  
  846.    public float getAlignmentY() {
  847.       return 0.5F;
  848.    }
  849.  
  850.    public void doLayout() {
  851.       this.layout();
  852.    }
  853.  
  854.    public void layout() {
  855.    }
  856.  
  857.    public void validate() {
  858.       if (!this.valid) {
  859.          Object var1 = this.getTreeLock();
  860.          synchronized(var1) {
  861.             ComponentPeer var2 = this.peer;
  862.             if (!this.valid && var2 != null) {
  863.                Font var3 = this.getFont();
  864.                Font var4 = this.peerFont;
  865.                if (var3 != var4 && (var4 == null || !var4.equals(var3))) {
  866.                   var2.setFont(var3);
  867.                   this.peerFont = var3;
  868.                }
  869.             }
  870.          }
  871.  
  872.          this.valid = true;
  873.       }
  874.  
  875.    }
  876.  
  877.    public void invalidate() {
  878.       Object var1 = this.getTreeLock();
  879.       synchronized(var1) {
  880.          this.valid = false;
  881.          this.prefSize = null;
  882.          this.minSize = null;
  883.          if (this.parent != null && this.parent.valid) {
  884.             this.parent.invalidate();
  885.          }
  886.  
  887.       }
  888.    }
  889.  
  890.    public Graphics getGraphics() {
  891.       if (this.peer instanceof LightweightPeer) {
  892.          if (this.parent == null) {
  893.             return null;
  894.          } else {
  895.             Graphics var2 = this.parent.getGraphics();
  896.             if (var2 == null) {
  897.                return null;
  898.             } else {
  899.                if (var2 instanceof ConstrainableGraphics) {
  900.                   ((ConstrainableGraphics)var2).constrain(this.field_0, this.field_1, this.width, this.height);
  901.                } else {
  902.                   var2.translate(this.field_0, this.field_1);
  903.                   var2.setClip(0, 0, this.width, this.height);
  904.                }
  905.  
  906.                var2.setFont(this.getFont());
  907.                return var2;
  908.             }
  909.          }
  910.       } else {
  911.          ComponentPeer var1 = this.peer;
  912.          return var1 != null ? var1.getGraphics() : null;
  913.       }
  914.    }
  915.  
  916.    public FontMetrics getFontMetrics(Font var1) {
  917.       FontMetrics var2 = (FontMetrics)metrics.get(var1);
  918.       if (var2 != null) {
  919.          return var2;
  920.       } else if (RasterOutputManager.usesPlatformFont() && this.peer != null && !(this.peer instanceof LightweightPeer)) {
  921.          var2 = this.peer.getFontMetrics(var1);
  922.          metrics.put(var1, var2);
  923.          return var2;
  924.       } else {
  925.          if (this.parent != null) {
  926.             Graphics var3 = this.parent.getGraphics();
  927.             if (var3 != null) {
  928.                FontMetrics var4;
  929.                try {
  930.                   var2 = var3.getFontMetrics(var1);
  931.                   metrics.put(var1, var2);
  932.                   var4 = var2;
  933.                } finally {
  934.                   var3.dispose();
  935.                }
  936.  
  937.                return var4;
  938.             }
  939.          }
  940.  
  941.          var2 = this.getToolkit().getFontMetrics(var1);
  942.          metrics.put(var1, var2);
  943.          return var2;
  944.       }
  945.    }
  946.  
  947.    public void setCursor(Cursor var1) {
  948.       this.cursor = var1;
  949.       if (this.peer != null) {
  950.          GlobalCursorManager.updateCursorImmediately();
  951.       }
  952.  
  953.    }
  954.  
  955.    public Cursor getCursor() {
  956.       Cursor var1 = this.cursor;
  957.       if (var1 != null) {
  958.          return var1;
  959.       } else {
  960.          Container var2 = this.parent;
  961.          return var2 != null ? ((Component)var2).getCursor() : Cursor.getPredefinedCursor(0);
  962.       }
  963.    }
  964.  
  965.    public void paint(Graphics var1) {
  966.    }
  967.  
  968.    public void update(Graphics var1) {
  969.       if (this instanceof Canvas || this instanceof Panel || this instanceof Frame || this instanceof Dialog || this instanceof Window) {
  970.          var1.clearRect(0, 0, this.width, this.height);
  971.       }
  972.  
  973.       this.paint(var1);
  974.    }
  975.  
  976.    public void paintAll(Graphics var1) {
  977.       if (this.isShowing()) {
  978.          PeerPaintCallback.getInstance().runOneComponent(this, new Rectangle(0, 0, this.width, this.height), var1, var1.getClip(), 3);
  979.       }
  980.  
  981.    }
  982.  
  983.    void lightweightPaint(Graphics var1) {
  984.       this.paint(var1);
  985.    }
  986.  
  987.    void paintHeavyweightComponents(Graphics var1) {
  988.    }
  989.  
  990.    public void repaint() {
  991.       this.repaint(0L, 0, 0, this.width, this.height);
  992.    }
  993.  
  994.    public void repaint(long var1) {
  995.       this.repaint(var1, 0, 0, this.width, this.height);
  996.    }
  997.  
  998.    public void repaint(int var1, int var2, int var3, int var4) {
  999.       this.repaint(0L, var1, var2, var3, var4);
  1000.    }
  1001.  
  1002.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  1003.       if (this.peer instanceof LightweightPeer) {
  1004.          if (this.parent != null) {
  1005.             int var7 = this.field_0 + (var3 < 0 ? 0 : var3);
  1006.             int var8 = this.field_1 + (var4 < 0 ? 0 : var4);
  1007.             int var9 = var5 > this.width ? this.width : var5;
  1008.             int var10 = var6 > this.height ? this.height : var6;
  1009.             this.parent.repaint(var1, var7, var8, var9, var10);
  1010.          }
  1011.       } else {
  1012.          if (!this.isVisible()) {
  1013.             return;
  1014.          }
  1015.  
  1016.          ComponentPeer var11 = this.peer;
  1017.          if (var11 != null && var5 > 0 && var6 > 0) {
  1018.             var11.repaint(var1, var3, var4, var5, var6);
  1019.          }
  1020.       }
  1021.  
  1022.    }
  1023.  
  1024.    public void print(Graphics var1) {
  1025.       this.paint(var1);
  1026.    }
  1027.  
  1028.    public void printAll(Graphics var1) {
  1029.       if (this.isShowing()) {
  1030.          PeerPrintCallback.getInstance().runOneComponent(this, new Rectangle(0, 0, this.width, this.height), var1, var1.getClip(), 3);
  1031.       }
  1032.  
  1033.    }
  1034.  
  1035.    void lightweightPrint(Graphics var1) {
  1036.       this.print(var1);
  1037.    }
  1038.  
  1039.    void printHeavyweightComponents(Graphics var1) {
  1040.    }
  1041.  
  1042.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  1043.       int var7 = -1;
  1044.       if ((var2 & 48) != 0) {
  1045.          var7 = 0;
  1046.       } else if ((var2 & 8) != 0 && isInc) {
  1047.          try {
  1048.             var7 = incRate;
  1049.             if (var7 < 0) {
  1050.                var7 = 0;
  1051.             }
  1052.          } catch (Exception var9) {
  1053.             var7 = 100;
  1054.          }
  1055.       }
  1056.  
  1057.       if (var7 >= 0) {
  1058.          this.repaint((long)var7, 0, 0, this.width, this.height);
  1059.       }
  1060.  
  1061.       return (var2 & 160) == 0;
  1062.    }
  1063.  
  1064.    public Image createImage(ImageProducer var1) {
  1065.       ComponentPeer var2 = this.peer;
  1066.       return var2 != null && !(var2 instanceof LightweightPeer) ? var2.createImage(var1) : this.getToolkit().createImage(var1);
  1067.    }
  1068.  
  1069.    public Image createImage(int var1, int var2) {
  1070.       ComponentPeer var3 = this.peer;
  1071.       if (var3 instanceof LightweightPeer) {
  1072.          return this.parent != null ? this.parent.createImage(var1, var2) : null;
  1073.       } else {
  1074.          return var3 != null ? var3.createImage(var1, var2) : null;
  1075.       }
  1076.    }
  1077.  
  1078.    public boolean prepareImage(Image var1, ImageObserver var2) {
  1079.       return this.prepareImage(var1, -1, -1, var2);
  1080.    }
  1081.  
  1082.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  1083.       ComponentPeer var5 = this.peer;
  1084.       if (var5 instanceof LightweightPeer) {
  1085.          return this.parent != null ? this.parent.prepareImage(var1, var2, var3, var4) : this.getToolkit().prepareImage(var1, var2, var3, var4);
  1086.       } else {
  1087.          return var5 != null ? var5.prepareImage(var1, var2, var3, var4) : this.getToolkit().prepareImage(var1, var2, var3, var4);
  1088.       }
  1089.    }
  1090.  
  1091.    public int checkImage(Image var1, ImageObserver var2) {
  1092.       return this.checkImage(var1, -1, -1, var2);
  1093.    }
  1094.  
  1095.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  1096.       ComponentPeer var5 = this.peer;
  1097.       if (var5 instanceof LightweightPeer) {
  1098.          return this.parent != null ? this.parent.checkImage(var1, var2, var3, var4) : this.getToolkit().checkImage(var1, var2, var3, var4);
  1099.       } else {
  1100.          return var5 != null ? var5.checkImage(var1, var2, var3, var4) : this.getToolkit().checkImage(var1, var2, var3, var4);
  1101.       }
  1102.    }
  1103.  
  1104.    public boolean contains(int var1, int var2) {
  1105.       return this.inside(var1, var2);
  1106.    }
  1107.  
  1108.    public boolean inside(int var1, int var2) {
  1109.       return var1 >= 0 && var1 < this.width && var2 >= 0 && var2 < this.height;
  1110.    }
  1111.  
  1112.    public boolean contains(Point var1) {
  1113.       return this.contains(var1.x, var1.y);
  1114.    }
  1115.  
  1116.    public Component getComponentAt(int var1, int var2) {
  1117.       return this.locate(var1, var2);
  1118.    }
  1119.  
  1120.    public Component locate(int var1, int var2) {
  1121.       return this.contains(var1, var2) ? this : null;
  1122.    }
  1123.  
  1124.    public Component getComponentAt(Point var1) {
  1125.       return this.getComponentAt(var1.x, var1.y);
  1126.    }
  1127.  
  1128.    public void deliverEvent(Event var1) {
  1129.       this.postEvent(var1);
  1130.    }
  1131.  
  1132.    public final void dispatchEvent(AWTEvent var1) {
  1133.       this.dispatchEventImpl(var1);
  1134.    }
  1135.  
  1136.    void dispatchEventImpl(AWTEvent var1) {
  1137.       int var2 = var1.getID();
  1138.       Toolkit var3 = Toolkit.getDefaultToolkit();
  1139.       var3.notifyAWTEventListeners(var1);
  1140.       if (this.areInputMethodsEnabled() && (var1 instanceof InputMethodEvent && !(this instanceof CompositionArea) || var1 instanceof InputEvent || var1 instanceof FocusEvent)) {
  1141.          InputContext var4 = this.getInputContext();
  1142.          if (var4 != null) {
  1143.             var4.dispatchEvent(var1);
  1144.             if (var1.isConsumed()) {
  1145.                return;
  1146.             }
  1147.          }
  1148.       }
  1149.  
  1150.       switch (var2) {
  1151.          case 201:
  1152.             if (var3 instanceof WindowClosingListener) {
  1153.                this.windowClosingException = ((WindowClosingListener)var3).windowClosingNotify((WindowEvent)var1);
  1154.                if (this.checkWindowClosingException()) {
  1155.                   return;
  1156.                }
  1157.             }
  1158.             break;
  1159.          case 401:
  1160.          case 402:
  1161.             Container var8 = (Container)(this instanceof Container ? this : this.parent);
  1162.             if (var8 != null) {
  1163.                var8.preProcessKeyEvent((KeyEvent)var1);
  1164.                if (var1.isConsumed()) {
  1165.                   return;
  1166.                }
  1167.             }
  1168.             break;
  1169.          case 1004:
  1170.             if (this.parent != null && !(this instanceof Window)) {
  1171.                this.parent.setFocusOwner(this);
  1172.             }
  1173.          case 1005:
  1174.       }
  1175.  
  1176.       if (this.newEventsOnly) {
  1177.          if (this.eventEnabled(var1)) {
  1178.             this.processEvent(var1);
  1179.          }
  1180.       } else if (!(var1 instanceof MouseEvent) || this.postsOldMouseEvents()) {
  1181.          Event var5 = var1.convertToOld();
  1182.          if (var5 != null) {
  1183.             int var6 = var5.key;
  1184.             int var7 = var5.modifiers;
  1185.             this.postEvent(var5);
  1186.             if (var5.isConsumed()) {
  1187.                var1.consume();
  1188.             }
  1189.  
  1190.             switch (var5.id) {
  1191.                case 401:
  1192.                case 402:
  1193.                case 403:
  1194.                case 404:
  1195.                   if (var5.key != var6) {
  1196.                      ((KeyEvent)var1).setKeyChar(var5.getKeyEventChar());
  1197.                   }
  1198.  
  1199.                   if (var5.modifiers != var7) {
  1200.                      ((KeyEvent)var1).setModifiers(var5.modifiers);
  1201.                   }
  1202.             }
  1203.          }
  1204.       }
  1205.  
  1206.       if (!var1.isConsumed()) {
  1207.          if (var1 instanceof KeyEvent) {
  1208.             Container var9 = (Container)(this instanceof Container ? this : this.parent);
  1209.             if (var9 != null) {
  1210.                var9.postProcessKeyEvent((KeyEvent)var1);
  1211.             }
  1212.          } else {
  1213.             switch (var2) {
  1214.                case 201:
  1215.                   if (var3 instanceof WindowClosingListener) {
  1216.                      this.windowClosingException = ((WindowClosingListener)var3).windowClosingDelivered((WindowEvent)var1);
  1217.                      if (this.checkWindowClosingException()) {
  1218.                         return;
  1219.                      }
  1220.                   }
  1221.             }
  1222.          }
  1223.       }
  1224.  
  1225.       if (this.peer != null) {
  1226.          this.peer.handleEvent(var1);
  1227.       }
  1228.  
  1229.    }
  1230.  
  1231.    boolean checkWindowClosingException() {
  1232.       if (this.windowClosingException != null) {
  1233.          if (this instanceof Dialog) {
  1234.             ((Dialog)this).interruptBlocking();
  1235.          } else {
  1236.             this.windowClosingException.fillInStackTrace();
  1237.             this.windowClosingException.printStackTrace();
  1238.             this.windowClosingException = null;
  1239.          }
  1240.  
  1241.          return true;
  1242.       } else {
  1243.          return false;
  1244.       }
  1245.    }
  1246.  
  1247.    boolean areInputMethodsEnabled() {
  1248.       return (this.eventMask & 4096L) != 0L && ((this.eventMask & 8L) != 0L || this.keyListener != null);
  1249.    }
  1250.  
  1251.    boolean eventEnabled(AWTEvent var1) {
  1252.       switch (var1.id) {
  1253.          case 100:
  1254.          case 101:
  1255.          case 102:
  1256.          case 103:
  1257.             if ((this.eventMask & 1L) != 0L || this.componentListener != null) {
  1258.                return true;
  1259.             }
  1260.             break;
  1261.          case 400:
  1262.          case 401:
  1263.          case 402:
  1264.             if ((this.eventMask & 8L) != 0L || this.keyListener != null) {
  1265.                return true;
  1266.             }
  1267.             break;
  1268.          case 500:
  1269.          case 501:
  1270.          case 502:
  1271.          case 504:
  1272.          case 505:
  1273.             if ((this.eventMask & 16L) != 0L || this.mouseListener != null) {
  1274.                return true;
  1275.             }
  1276.             break;
  1277.          case 503:
  1278.          case 506:
  1279.             if ((this.eventMask & 32L) != 0L || this.mouseMotionListener != null) {
  1280.                return true;
  1281.             }
  1282.             break;
  1283.          case 1004:
  1284.          case 1005:
  1285.             if ((this.eventMask & 4L) != 0L || this.focusListener != null) {
  1286.                return true;
  1287.             }
  1288.             break;
  1289.          case 1100:
  1290.          case 1101:
  1291.             if ((this.eventMask & 2048L) != 0L || this.inputMethodListener != null) {
  1292.                return true;
  1293.             }
  1294.             break;
  1295.          case 1400:
  1296.             if ((this.eventMask & 32768L) != 0L || this.hierarchyListener != null) {
  1297.                return true;
  1298.             }
  1299.             break;
  1300.          case 1401:
  1301.          case 1402:
  1302.             if ((this.eventMask & 65536L) != 0L || this.hierarchyBoundsListener != null) {
  1303.                return true;
  1304.             }
  1305.       }
  1306.  
  1307.       if (var1.id > 1999) {
  1308.          return true;
  1309.       } else {
  1310.          return false;
  1311.       }
  1312.    }
  1313.  
  1314.    private Window getWindowForObject(Object var1) {
  1315.       if (var1 instanceof Component) {
  1316.          while(var1 != null) {
  1317.             if (var1 instanceof Window) {
  1318.                return (Window)var1;
  1319.             }
  1320.  
  1321.             var1 = ((Component)var1).getParent();
  1322.          }
  1323.       }
  1324.  
  1325.       return null;
  1326.    }
  1327.  
  1328.    public boolean postEvent(Event var1) {
  1329.       ComponentPeer var2 = this.peer;
  1330.       if (this.handleEvent(var1)) {
  1331.          var1.consume();
  1332.          return true;
  1333.       } else {
  1334.          Container var3 = this.parent;
  1335.          int var4 = var1.x;
  1336.          int var5 = var1.y;
  1337.          if (var3 != null) {
  1338.             var1.translate(this.field_0, this.field_1);
  1339.             if (((Component)var3).postEvent(var1)) {
  1340.                var1.consume();
  1341.                return true;
  1342.             }
  1343.  
  1344.             var1.x = var4;
  1345.             var1.y = var5;
  1346.          }
  1347.  
  1348.          return false;
  1349.       }
  1350.    }
  1351.  
  1352.    public synchronized void addComponentListener(ComponentListener var1) {
  1353.       if (var1 != null) {
  1354.          this.componentListener = AWTEventMulticaster.add(this.componentListener, var1);
  1355.          this.newEventsOnly = true;
  1356.       }
  1357.    }
  1358.  
  1359.    public synchronized void removeComponentListener(ComponentListener var1) {
  1360.       if (var1 != null) {
  1361.          this.componentListener = AWTEventMulticaster.remove(this.componentListener, var1);
  1362.       }
  1363.    }
  1364.  
  1365.    public synchronized void addFocusListener(FocusListener var1) {
  1366.       if (var1 != null) {
  1367.          this.focusListener = AWTEventMulticaster.add(this.focusListener, var1);
  1368.          this.newEventsOnly = true;
  1369.          if (this.peer instanceof LightweightPeer) {
  1370.             this.parent.proxyEnableEvents(4L);
  1371.          }
  1372.  
  1373.       }
  1374.    }
  1375.  
  1376.    public synchronized void removeFocusListener(FocusListener var1) {
  1377.       if (var1 != null) {
  1378.          this.focusListener = AWTEventMulticaster.remove(this.focusListener, var1);
  1379.       }
  1380.    }
  1381.  
  1382.    public void addHierarchyListener(HierarchyListener var1) {
  1383.       if (var1 != null) {
  1384.          boolean var8;
  1385.          synchronized(this) {
  1386.             var8 = this.hierarchyListener == null && (this.eventMask & 32768L) == 0L;
  1387.             this.hierarchyListener = AWTEventMulticaster.add(this.hierarchyListener, var1);
  1388.             var8 = var8 && this.hierarchyListener != null;
  1389.             this.newEventsOnly = true;
  1390.          }
  1391.  
  1392.          if (var8) {
  1393.             Object var4 = this.getTreeLock();
  1394.             synchronized(var4) {
  1395.                if (this.parent != null) {
  1396.                   this.parent.adjustListeningChildren(32768L, 1);
  1397.                }
  1398.             }
  1399.          }
  1400.  
  1401.       }
  1402.    }
  1403.  
  1404.    public void removeHierarchyListener(HierarchyListener var1) {
  1405.       if (var1 != null) {
  1406.          boolean var8;
  1407.          synchronized(this) {
  1408.             var8 = this.hierarchyListener != null && (this.eventMask & 32768L) == 0L;
  1409.             this.hierarchyListener = AWTEventMulticaster.remove(this.hierarchyListener, var1);
  1410.             var8 = var8 && this.hierarchyListener == null;
  1411.          }
  1412.  
  1413.          if (var8) {
  1414.             Object var4 = this.getTreeLock();
  1415.             synchronized(var4) {
  1416.                if (this.parent != null) {
  1417.                   this.parent.adjustListeningChildren(32768L, -1);
  1418.                }
  1419.             }
  1420.          }
  1421.  
  1422.       }
  1423.    }
  1424.  
  1425.    public void addHierarchyBoundsListener(HierarchyBoundsListener var1) {
  1426.       if (var1 != null) {
  1427.          boolean var8;
  1428.          synchronized(this) {
  1429.             var8 = this.hierarchyBoundsListener == null && (this.eventMask & 65536L) == 0L;
  1430.             this.hierarchyBoundsListener = AWTEventMulticaster.add(this.hierarchyBoundsListener, var1);
  1431.             var8 = var8 && this.hierarchyBoundsListener != null;
  1432.             this.newEventsOnly = true;
  1433.          }
  1434.  
  1435.          if (var8) {
  1436.             Object var4 = this.getTreeLock();
  1437.             synchronized(var4) {
  1438.                if (this.parent != null) {
  1439.                   this.parent.adjustListeningChildren(65536L, 1);
  1440.                }
  1441.             }
  1442.          }
  1443.  
  1444.       }
  1445.    }
  1446.  
  1447.    public void removeHierarchyBoundsListener(HierarchyBoundsListener var1) {
  1448.       if (var1 != null) {
  1449.          boolean var8;
  1450.          synchronized(this) {
  1451.             var8 = this.hierarchyBoundsListener != null && (this.eventMask & 65536L) == 0L;
  1452.             this.hierarchyBoundsListener = AWTEventMulticaster.remove(this.hierarchyBoundsListener, var1);
  1453.             var8 = var8 && this.hierarchyBoundsListener == null;
  1454.          }
  1455.  
  1456.          if (var8) {
  1457.             Object var4 = this.getTreeLock();
  1458.             synchronized(var4) {
  1459.                if (this.parent != null) {
  1460.                   this.parent.adjustListeningChildren(65536L, -1);
  1461.                }
  1462.             }
  1463.          }
  1464.  
  1465.       }
  1466.    }
  1467.  
  1468.    int numListening(long var1) {
  1469.       return (var1 != 32768L || this.hierarchyListener == null && (this.eventMask & 32768L) == 0L) && (var1 != 65536L || this.hierarchyBoundsListener == null && (this.eventMask & 65536L) == 0L) ? 0 : 1;
  1470.    }
  1471.  
  1472.    int createHierarchyEvents(int var1, Component var2, Container var3, long var4) {
  1473.       switch (var1) {
  1474.          case 1400:
  1475.             if (this.hierarchyListener != null || (this.eventMask & 32768L) != 0L) {
  1476.                HierarchyEvent var7 = new HierarchyEvent(this, var1, var2, var3, var4);
  1477.                this.dispatchEvent(var7);
  1478.                return 1;
  1479.             }
  1480.             break;
  1481.          case 1401:
  1482.          case 1402:
  1483.             if (this.hierarchyBoundsListener != null || (this.eventMask & 65536L) != 0L) {
  1484.                HierarchyEvent var6 = new HierarchyEvent(this, var1, var2, var3);
  1485.                this.dispatchEvent(var6);
  1486.                return 1;
  1487.             }
  1488.       }
  1489.  
  1490.       return 0;
  1491.    }
  1492.  
  1493.    void createChildHierarchyEvents(int var1, long var2) {
  1494.    }
  1495.  
  1496.    public synchronized void addKeyListener(KeyListener var1) {
  1497.       if (var1 != null) {
  1498.          this.keyListener = AWTEventMulticaster.add(this.keyListener, var1);
  1499.          this.newEventsOnly = true;
  1500.          if (this.peer instanceof LightweightPeer) {
  1501.             this.parent.proxyEnableEvents(8L);
  1502.          }
  1503.  
  1504.       }
  1505.    }
  1506.  
  1507.    public synchronized void removeKeyListener(KeyListener var1) {
  1508.       if (var1 != null) {
  1509.          this.keyListener = AWTEventMulticaster.remove(this.keyListener, var1);
  1510.       }
  1511.    }
  1512.  
  1513.    public synchronized void addMouseListener(MouseListener var1) {
  1514.       if (var1 != null) {
  1515.          this.mouseListener = AWTEventMulticaster.add(this.mouseListener, var1);
  1516.          this.newEventsOnly = true;
  1517.          if (this.peer instanceof LightweightPeer) {
  1518.             this.parent.proxyEnableEvents(16L);
  1519.          }
  1520.  
  1521.       }
  1522.    }
  1523.  
  1524.    public synchronized void removeMouseListener(MouseListener var1) {
  1525.       if (var1 != null) {
  1526.          this.mouseListener = AWTEventMulticaster.remove(this.mouseListener, var1);
  1527.       }
  1528.    }
  1529.  
  1530.    public synchronized void addMouseMotionListener(MouseMotionListener var1) {
  1531.       if (var1 != null) {
  1532.          this.mouseMotionListener = AWTEventMulticaster.add(this.mouseMotionListener, var1);
  1533.          this.newEventsOnly = true;
  1534.          if (this.peer instanceof LightweightPeer) {
  1535.             this.parent.proxyEnableEvents(32L);
  1536.          }
  1537.  
  1538.       }
  1539.    }
  1540.  
  1541.    public synchronized void removeMouseMotionListener(MouseMotionListener var1) {
  1542.       if (var1 != null) {
  1543.          this.mouseMotionListener = AWTEventMulticaster.remove(this.mouseMotionListener, var1);
  1544.       }
  1545.    }
  1546.  
  1547.    public synchronized void addInputMethodListener(InputMethodListener var1) {
  1548.       if (var1 != null) {
  1549.          this.inputMethodListener = AWTEventMulticaster.add(this.inputMethodListener, var1);
  1550.          this.newEventsOnly = true;
  1551.       }
  1552.    }
  1553.  
  1554.    public synchronized void removeInputMethodListener(InputMethodListener var1) {
  1555.       if (var1 != null) {
  1556.          this.inputMethodListener = AWTEventMulticaster.remove(this.inputMethodListener, var1);
  1557.       }
  1558.    }
  1559.  
  1560.    public EventListener[] getListeners(Class var1) {
  1561.       Object var2 = null;
  1562.       if (var1 == (class$java$awt$event$ComponentListener == null ? (class$java$awt$event$ComponentListener = class$("java.awt.event.ComponentListener")) : class$java$awt$event$ComponentListener)) {
  1563.          var2 = this.componentListener;
  1564.       } else if (var1 == (class$java$awt$event$FocusListener == null ? (class$java$awt$event$FocusListener = class$("java.awt.event.FocusListener")) : class$java$awt$event$FocusListener)) {
  1565.          var2 = this.focusListener;
  1566.       } else if (var1 == (class$java$awt$event$HierarchyListener == null ? (class$java$awt$event$HierarchyListener = class$("java.awt.event.HierarchyListener")) : class$java$awt$event$HierarchyListener)) {
  1567.          var2 = this.hierarchyListener;
  1568.       } else if (var1 == (class$java$awt$event$HierarchyBoundsListener == null ? (class$java$awt$event$HierarchyBoundsListener = class$("java.awt.event.HierarchyBoundsListener")) : class$java$awt$event$HierarchyBoundsListener)) {
  1569.          var2 = this.hierarchyBoundsListener;
  1570.       } else if (var1 == (class$java$awt$event$KeyListener == null ? (class$java$awt$event$KeyListener = class$("java.awt.event.KeyListener")) : class$java$awt$event$KeyListener)) {
  1571.          var2 = this.keyListener;
  1572.       } else if (var1 == (class$java$awt$event$MouseListener == null ? (class$java$awt$event$MouseListener = class$("java.awt.event.MouseListener")) : class$java$awt$event$MouseListener)) {
  1573.          var2 = this.mouseListener;
  1574.       } else if (var1 == (class$java$awt$event$MouseMotionListener == null ? (class$java$awt$event$MouseMotionListener = class$("java.awt.event.MouseMotionListener")) : class$java$awt$event$MouseMotionListener)) {
  1575.          var2 = this.mouseMotionListener;
  1576.       } else if (var1 == (class$java$awt$event$InputMethodListener == null ? (class$java$awt$event$InputMethodListener = class$("java.awt.event.InputMethodListener")) : class$java$awt$event$InputMethodListener)) {
  1577.          var2 = this.inputMethodListener;
  1578.       }
  1579.  
  1580.       return AWTEventMulticaster.getListeners((EventListener)var2, var1);
  1581.    }
  1582.  
  1583.    public InputMethodRequests getInputMethodRequests() {
  1584.       return null;
  1585.    }
  1586.  
  1587.    public InputContext getInputContext() {
  1588.       Container var1 = this.parent;
  1589.       return var1 == null ? null : ((Component)var1).getInputContext();
  1590.    }
  1591.  
  1592.    protected final void enableEvents(long var1) {
  1593.       long var3 = 0L;
  1594.       synchronized(this) {
  1595.          if ((var1 & 32768L) != 0L && this.hierarchyListener == null && (this.eventMask & 32768L) == 0L) {
  1596.             var3 |= 32768L;
  1597.          }
  1598.  
  1599.          if ((var1 & 65536L) != 0L && this.hierarchyBoundsListener == null && (this.eventMask & 65536L) == 0L) {
  1600.             var3 |= 65536L;
  1601.          }
  1602.  
  1603.          this.eventMask |= var1;
  1604.          this.newEventsOnly = true;
  1605.       }
  1606.  
  1607.       if (this.peer instanceof LightweightPeer) {
  1608.          this.parent.proxyEnableEvents(this.eventMask);
  1609.       }
  1610.  
  1611.       if (var3 != 0L) {
  1612.          Object var6 = this.getTreeLock();
  1613.          synchronized(var6) {
  1614.             if (this.parent != null) {
  1615.                this.parent.adjustListeningChildren(var3, 1);
  1616.             }
  1617.          }
  1618.       }
  1619.  
  1620.    }
  1621.  
  1622.    protected final void disableEvents(long var1) {
  1623.       long var3 = 0L;
  1624.       synchronized(this) {
  1625.          if ((var1 & 32768L) != 0L && this.hierarchyListener == null && (this.eventMask & 32768L) != 0L) {
  1626.             var3 |= 32768L;
  1627.          }
  1628.  
  1629.          if ((var1 & 65536L) != 0L && this.hierarchyBoundsListener == null && (this.eventMask & 65536L) != 0L) {
  1630.             var3 |= 65536L;
  1631.          }
  1632.  
  1633.          this.eventMask &= ~var1;
  1634.       }
  1635.  
  1636.       if (var3 != 0L) {
  1637.          Object var6 = this.getTreeLock();
  1638.          synchronized(var6) {
  1639.             if (this.parent != null) {
  1640.                this.parent.adjustListeningChildren(var3, -1);
  1641.             }
  1642.          }
  1643.       }
  1644.  
  1645.    }
  1646.  
  1647.    protected AWTEvent coalesceEvents(AWTEvent var1, AWTEvent var2) {
  1648.       int var3 = var1.getID();
  1649.       switch (var3) {
  1650.          case 503:
  1651.          case 506:
  1652.             MouseEvent var8 = (MouseEvent)var1;
  1653.             if (((InputEvent)var8).getModifiers() == ((MouseEvent)var2).getModifiers()) {
  1654.                return var2;
  1655.             }
  1656.             break;
  1657.          case 800:
  1658.          case 801:
  1659.             if (this.peer != null) {
  1660.                this.peer.coalescePaintEvent((PaintEvent)var2);
  1661.                return var2;
  1662.             }
  1663.  
  1664.             PaintEvent var4 = (PaintEvent)var1;
  1665.             PaintEvent var5 = (PaintEvent)var2;
  1666.             Rectangle var6 = var4.getUpdateRect();
  1667.             Rectangle var7 = var5.getUpdateRect();
  1668.             if (var6.contains(var7)) {
  1669.                return var1;
  1670.             }
  1671.  
  1672.             if (var7.contains(var6)) {
  1673.                return var2;
  1674.             }
  1675.       }
  1676.  
  1677.       return null;
  1678.    }
  1679.  
  1680.    protected void processEvent(AWTEvent var1) {
  1681.       if (var1 instanceof FocusEvent) {
  1682.          this.processFocusEvent((FocusEvent)var1);
  1683.       } else if (var1 instanceof MouseEvent) {
  1684.          switch (var1.getID()) {
  1685.             case 500:
  1686.             case 501:
  1687.             case 502:
  1688.             case 504:
  1689.             case 505:
  1690.                this.processMouseEvent((MouseEvent)var1);
  1691.                break;
  1692.             case 503:
  1693.             case 506:
  1694.                this.processMouseMotionEvent((MouseEvent)var1);
  1695.          }
  1696.       } else if (var1 instanceof KeyEvent) {
  1697.          this.processKeyEvent((KeyEvent)var1);
  1698.       } else if (var1 instanceof ComponentEvent) {
  1699.          this.processComponentEvent((ComponentEvent)var1);
  1700.       } else if (var1 instanceof InputMethodEvent) {
  1701.          this.processInputMethodEvent((InputMethodEvent)var1);
  1702.       } else if (var1 instanceof HierarchyEvent) {
  1703.          switch (var1.getID()) {
  1704.             case 1400:
  1705.                this.processHierarchyEvent((HierarchyEvent)var1);
  1706.                break;
  1707.             case 1401:
  1708.             case 1402:
  1709.                this.processHierarchyBoundsEvent((HierarchyEvent)var1);
  1710.          }
  1711.       }
  1712.  
  1713.    }
  1714.  
  1715.    protected void processComponentEvent(ComponentEvent var1) {
  1716.       ComponentListener var2 = this.componentListener;
  1717.       if (var2 != null) {
  1718.          int var3 = ((AWTEvent)var1).getID();
  1719.          switch (var3) {
  1720.             case 100:
  1721.                var2.componentMoved(var1);
  1722.                break;
  1723.             case 101:
  1724.                var2.componentResized(var1);
  1725.                break;
  1726.             case 102:
  1727.                var2.componentShown(var1);
  1728.                break;
  1729.             case 103:
  1730.                var2.componentHidden(var1);
  1731.          }
  1732.       }
  1733.  
  1734.    }
  1735.  
  1736.    protected void processFocusEvent(FocusEvent var1) {
  1737.       FocusListener var2 = this.focusListener;
  1738.       if (var2 != null) {
  1739.          int var3 = ((AWTEvent)var1).getID();
  1740.          switch (var3) {
  1741.             case 1004:
  1742.                var2.focusGained(var1);
  1743.                break;
  1744.             case 1005:
  1745.                var2.focusLost(var1);
  1746.          }
  1747.       }
  1748.  
  1749.    }
  1750.  
  1751.    protected void processKeyEvent(KeyEvent var1) {
  1752.       KeyListener var2 = this.keyListener;
  1753.       if (var2 != null) {
  1754.          int var3 = ((AWTEvent)var1).getID();
  1755.          switch (var3) {
  1756.             case 400:
  1757.                var2.keyTyped(var1);
  1758.                break;
  1759.             case 401:
  1760.                var2.keyPressed(var1);
  1761.                break;
  1762.             case 402:
  1763.                var2.keyReleased(var1);
  1764.          }
  1765.       }
  1766.  
  1767.    }
  1768.  
  1769.    protected void processMouseEvent(MouseEvent var1) {
  1770.       MouseListener var2 = this.mouseListener;
  1771.       if (var2 != null) {
  1772.          int var3 = ((AWTEvent)var1).getID();
  1773.          switch (var3) {
  1774.             case 500:
  1775.                var2.mouseClicked(var1);
  1776.                break;
  1777.             case 501:
  1778.                var2.mousePressed(var1);
  1779.                break;
  1780.             case 502:
  1781.                var2.mouseReleased(var1);
  1782.             case 503:
  1783.             default:
  1784.                break;
  1785.             case 504:
  1786.                var2.mouseEntered(var1);
  1787.                break;
  1788.             case 505:
  1789.                var2.mouseExited(var1);
  1790.          }
  1791.       }
  1792.  
  1793.    }
  1794.  
  1795.    protected void processMouseMotionEvent(MouseEvent var1) {
  1796.       MouseMotionListener var2 = this.mouseMotionListener;
  1797.       if (var2 != null) {
  1798.          int var3 = ((AWTEvent)var1).getID();
  1799.          switch (var3) {
  1800.             case 503:
  1801.                var2.mouseMoved(var1);
  1802.                break;
  1803.             case 506:
  1804.                var2.mouseDragged(var1);
  1805.          }
  1806.       }
  1807.  
  1808.    }
  1809.  
  1810.    boolean postsOldMouseEvents() {
  1811.       return false;
  1812.    }
  1813.  
  1814.    protected void processInputMethodEvent(InputMethodEvent var1) {
  1815.       InputMethodListener var2 = this.inputMethodListener;
  1816.       if (var2 != null) {
  1817.          int var3 = ((AWTEvent)var1).getID();
  1818.          switch (var3) {
  1819.             case 1100:
  1820.                var2.inputMethodTextChanged(var1);
  1821.                break;
  1822.             case 1101:
  1823.                var2.caretPositionChanged(var1);
  1824.          }
  1825.       }
  1826.  
  1827.    }
  1828.  
  1829.    protected void processHierarchyEvent(HierarchyEvent var1) {
  1830.       HierarchyListener var2 = this.hierarchyListener;
  1831.       if (var2 != null) {
  1832.          int var3 = ((AWTEvent)var1).getID();
  1833.          switch (var3) {
  1834.             case 1400:
  1835.                var2.hierarchyChanged(var1);
  1836.          }
  1837.       }
  1838.  
  1839.    }
  1840.  
  1841.    protected void processHierarchyBoundsEvent(HierarchyEvent var1) {
  1842.       HierarchyBoundsListener var2 = this.hierarchyBoundsListener;
  1843.       if (var2 != null) {
  1844.          int var3 = ((AWTEvent)var1).getID();
  1845.          switch (var3) {
  1846.             case 1401:
  1847.                var2.ancestorMoved(var1);
  1848.                break;
  1849.             case 1402:
  1850.                var2.ancestorResized(var1);
  1851.          }
  1852.       }
  1853.  
  1854.    }
  1855.  
  1856.    public boolean handleEvent(Event var1) {
  1857.       switch (var1.id) {
  1858.          case 401:
  1859.          case 403:
  1860.             return this.keyDown(var1, var1.key);
  1861.          case 402:
  1862.          case 404:
  1863.             return this.keyUp(var1, var1.key);
  1864.          case 501:
  1865.             return this.mouseDown(var1, var1.x, var1.y);
  1866.          case 502:
  1867.             return this.mouseUp(var1, var1.x, var1.y);
  1868.          case 503:
  1869.             return this.mouseMove(var1, var1.x, var1.y);
  1870.          case 504:
  1871.             return this.mouseEnter(var1, var1.x, var1.y);
  1872.          case 505:
  1873.             return this.mouseExit(var1, var1.x, var1.y);
  1874.          case 506:
  1875.             return this.mouseDrag(var1, var1.x, var1.y);
  1876.          case 1001:
  1877.             return this.action(var1, var1.arg);
  1878.          case 1004:
  1879.             return this.gotFocus(var1, var1.arg);
  1880.          case 1005:
  1881.             return this.lostFocus(var1, var1.arg);
  1882.          default:
  1883.             return false;
  1884.       }
  1885.    }
  1886.  
  1887.    public boolean mouseDown(Event var1, int var2, int var3) {
  1888.       return false;
  1889.    }
  1890.  
  1891.    public boolean mouseDrag(Event var1, int var2, int var3) {
  1892.       return false;
  1893.    }
  1894.  
  1895.    public boolean mouseUp(Event var1, int var2, int var3) {
  1896.       return false;
  1897.    }
  1898.  
  1899.    public boolean mouseMove(Event var1, int var2, int var3) {
  1900.       return false;
  1901.    }
  1902.  
  1903.    public boolean mouseEnter(Event var1, int var2, int var3) {
  1904.       return false;
  1905.    }
  1906.  
  1907.    public boolean mouseExit(Event var1, int var2, int var3) {
  1908.       return false;
  1909.    }
  1910.  
  1911.    public boolean keyDown(Event var1, int var2) {
  1912.       return false;
  1913.    }
  1914.  
  1915.    public boolean keyUp(Event var1, int var2) {
  1916.       return false;
  1917.    }
  1918.  
  1919.    public boolean action(Event var1, Object var2) {
  1920.       return false;
  1921.    }
  1922.  
  1923.    public void addNotify() {
  1924.       Object var1 = this.getTreeLock();
  1925.       synchronized(var1) {
  1926.          Object var2 = this.peer;
  1927.          if (var2 != null && !(var2 instanceof LightweightPeer)) {
  1928.             Container var8 = this.parent;
  1929.             if (var8 != null && var8.peer instanceof LightweightPeer) {
  1930.                new NativeInLightFixer(this);
  1931.             }
  1932.          } else {
  1933.             if (var2 == null) {
  1934.                this.peer = (ComponentPeer)(var2 = this.getToolkit().createComponent(this));
  1935.             }
  1936.  
  1937.             if (this.parent != null) {
  1938.                long var3 = 0L;
  1939.                if (this.mouseListener != null || (this.eventMask & 16L) != 0L) {
  1940.                   var3 |= 16L;
  1941.                }
  1942.  
  1943.                if (this.mouseMotionListener != null || (this.eventMask & 32L) != 0L) {
  1944.                   var3 |= 32L;
  1945.                }
  1946.  
  1947.                if (this.focusListener != null || (this.eventMask & 4L) != 0L) {
  1948.                   var3 |= 4L;
  1949.                }
  1950.  
  1951.                if (this.keyListener != null || (this.eventMask & 8L) != 0L) {
  1952.                   var3 |= 8L;
  1953.                }
  1954.  
  1955.                if (var3 != 0L) {
  1956.                   this.parent.proxyEnableEvents(var3);
  1957.                }
  1958.             }
  1959.          }
  1960.  
  1961.          this.invalidate();
  1962.          int var9 = this.popups != null ? this.popups.size() : 0;
  1963.  
  1964.          for(int var4 = 0; var4 < var9; ++var4) {
  1965.             PopupMenu var5 = (PopupMenu)this.popups.elementAt(var4);
  1966.             var5.addNotify();
  1967.          }
  1968.  
  1969.          if (this.dropTarget != null) {
  1970.             this.dropTarget.addNotify((ComponentPeer)var2);
  1971.          }
  1972.  
  1973.          this.peerFont = this.getFont();
  1974.          if (this.hierarchyListener != null || (this.eventMask & 32768L) != 0L) {
  1975.             HierarchyEvent var10 = new HierarchyEvent(this, 1400, this, this.parent, (long)(2 | (this.isRecursivelyVisible() ? 4 : 0)));
  1976.             this.dispatchEvent(var10);
  1977.          }
  1978.  
  1979.       }
  1980.    }
  1981.  
  1982.    public void removeNotify() {
  1983.       Object var1 = this.getTreeLock();
  1984.       synchronized(var1) {
  1985.          int var2 = this.popups != null ? this.popups.size() : 0;
  1986.  
  1987.          for(int var3 = 0; var3 < var2; ++var3) {
  1988.             PopupMenu var4 = (PopupMenu)this.popups.elementAt(var3);
  1989.             ((Menu)var4).removeNotify();
  1990.          }
  1991.  
  1992.          if (this.areInputMethodsEnabled()) {
  1993.             InputContext var8 = this.getInputContext();
  1994.             if (var8 != null) {
  1995.                var8.removeNotify(this);
  1996.             }
  1997.          }
  1998.  
  1999.          ComponentPeer var9 = this.peer;
  2000.          if (var9 != null) {
  2001.             if (this.dropTarget != null) {
  2002.                this.dropTarget.removeNotify(this.peer);
  2003.             }
  2004.  
  2005.             if (this.visible) {
  2006.                var9.hide();
  2007.             }
  2008.  
  2009.             this.peer = null;
  2010.             this.peerFont = null;
  2011.             Toolkit.getEventQueue().removeSourceEvents(this);
  2012.             var9.dispose();
  2013.          }
  2014.  
  2015.          if ((var9 instanceof LightweightPeer || var9 == null) && this.hasFocus()) {
  2016.             this.dispatchEvent(new FocusEvent(this, 1005));
  2017.          }
  2018.  
  2019.          if (this.hierarchyListener != null || (this.eventMask & 32768L) != 0L) {
  2020.             HierarchyEvent var5 = new HierarchyEvent(this, 1400, this, this.parent, (long)(2 | (this.isRecursivelyVisible() ? 4 : 0)));
  2021.             this.dispatchEvent(var5);
  2022.          }
  2023.  
  2024.       }
  2025.    }
  2026.  
  2027.    public boolean gotFocus(Event var1, Object var2) {
  2028.       return false;
  2029.    }
  2030.  
  2031.    public boolean lostFocus(Event var1, Object var2) {
  2032.       return false;
  2033.    }
  2034.  
  2035.    public boolean isFocusTraversable() {
  2036.       ComponentPeer var1 = this.peer;
  2037.       return var1 != null ? var1.isFocusTraversable() : false;
  2038.    }
  2039.  
  2040.    public void requestFocus() {
  2041.       ComponentPeer var1 = this.peer;
  2042.       if (var1 != null) {
  2043.          if (var1 instanceof LightweightPeer) {
  2044.             if (this.parent != null) {
  2045.                this.parent.proxyRequestFocus(this);
  2046.             }
  2047.          } else {
  2048.             var1.requestFocus();
  2049.             Toolkit.getEventQueue().changeKeyEventFocus(this);
  2050.          }
  2051.       }
  2052.  
  2053.    }
  2054.  
  2055.    public void transferFocus() {
  2056.       this.nextFocus();
  2057.    }
  2058.  
  2059.    public void nextFocus() {
  2060.       Container var1 = this.parent;
  2061.       if (var1 != null) {
  2062.          var1.transferFocus(this);
  2063.       }
  2064.  
  2065.    }
  2066.  
  2067.    public boolean hasFocus() {
  2068.       if ((this.eventMask & 4L) != 0L) {
  2069.          return this.hasFocus;
  2070.       } else {
  2071.          for(Container var1 = this.getParent(); var1 != null; var1 = ((Component)var1).getParent()) {
  2072.             if (var1 instanceof Window) {
  2073.                return ((Window)var1).getFocusOwner() == this;
  2074.             }
  2075.          }
  2076.  
  2077.          return false;
  2078.       }
  2079.    }
  2080.  
  2081.    public synchronized void add(PopupMenu var1) {
  2082.       if (var1.parent != null) {
  2083.          var1.parent.remove(var1);
  2084.       }
  2085.  
  2086.       if (this.popups == null) {
  2087.          this.popups = new Vector();
  2088.       }
  2089.  
  2090.       this.popups.addElement(var1);
  2091.       var1.parent = this;
  2092.       if (this.peer != null && var1.peer == null) {
  2093.          var1.addNotify();
  2094.       }
  2095.  
  2096.    }
  2097.  
  2098.    public synchronized void remove(MenuComponent var1) {
  2099.       if (this.popups != null) {
  2100.          int var2 = this.popups.indexOf(var1);
  2101.          if (var2 >= 0) {
  2102.             PopupMenu var3 = (PopupMenu)var1;
  2103.             if (var3.peer != null) {
  2104.                ((Menu)var3).removeNotify();
  2105.             }
  2106.  
  2107.             var3.parent = null;
  2108.             this.popups.removeElementAt(var2);
  2109.             if (this.popups.size() == 0) {
  2110.                this.popups = null;
  2111.             }
  2112.          }
  2113.       }
  2114.  
  2115.    }
  2116.  
  2117.    protected String paramString() {
  2118.       String var1 = this.getName();
  2119.       String var2 = (var1 != null ? var1 : "") + "," + this.field_0 + "," + this.field_1 + "," + this.width + "x" + this.height;
  2120.       if (!this.valid) {
  2121.          var2 = var2 + ",invalid";
  2122.       }
  2123.  
  2124.       if (!this.visible) {
  2125.          var2 = var2 + ",hidden";
  2126.       }
  2127.  
  2128.       if (!this.enabled) {
  2129.          var2 = var2 + ",disabled";
  2130.       }
  2131.  
  2132.       return var2;
  2133.    }
  2134.  
  2135.    public String toString() {
  2136.       return this.getClass().getName() + "[" + this.paramString() + "]";
  2137.    }
  2138.  
  2139.    public void list() {
  2140.       this.list((PrintStream)System.out, 0);
  2141.    }
  2142.  
  2143.    public void list(PrintStream var1) {
  2144.       this.list((PrintStream)var1, 0);
  2145.    }
  2146.  
  2147.    public void list(PrintStream var1, int var2) {
  2148.       for(int var3 = 0; var3 < var2; ++var3) {
  2149.          var1.print("  ");
  2150.       }
  2151.  
  2152.       var1.println(this);
  2153.    }
  2154.  
  2155.    public void list(PrintWriter var1) {
  2156.       this.list((PrintWriter)var1, 0);
  2157.    }
  2158.  
  2159.    public void list(PrintWriter var1, int var2) {
  2160.       for(int var3 = 0; var3 < var2; ++var3) {
  2161.          var1.print("  ");
  2162.       }
  2163.  
  2164.       var1.println(this);
  2165.    }
  2166.  
  2167.    Container getNativeContainer() {
  2168.       Container var1;
  2169.       for(var1 = this.parent; var1 != null && var1.peer instanceof LightweightPeer; var1 = ((Component)var1).getParent()) {
  2170.       }
  2171.  
  2172.       return var1;
  2173.    }
  2174.  
  2175.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  2176.       if (var1 != null) {
  2177.          if (this.changeSupport == null) {
  2178.             this.changeSupport = new PropertyChangeSupport(this);
  2179.          }
  2180.  
  2181.          this.changeSupport.addPropertyChangeListener(var1);
  2182.       }
  2183.    }
  2184.  
  2185.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  2186.       if (var1 != null) {
  2187.          if (this.changeSupport != null) {
  2188.             this.changeSupport.removePropertyChangeListener(var1);
  2189.          }
  2190.       }
  2191.    }
  2192.  
  2193.    public synchronized void addPropertyChangeListener(String var1, PropertyChangeListener var2) {
  2194.       if (var2 != null) {
  2195.          if (this.changeSupport == null) {
  2196.             this.changeSupport = new PropertyChangeSupport(this);
  2197.          }
  2198.  
  2199.          this.changeSupport.addPropertyChangeListener(var1, var2);
  2200.       }
  2201.    }
  2202.  
  2203.    public synchronized void removePropertyChangeListener(String var1, PropertyChangeListener var2) {
  2204.       if (var2 != null) {
  2205.          if (this.changeSupport != null) {
  2206.             this.changeSupport.removePropertyChangeListener(var1, var2);
  2207.          }
  2208.       }
  2209.    }
  2210.  
  2211.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  2212.       PropertyChangeSupport var4 = this.changeSupport;
  2213.       if (var4 != null) {
  2214.          var4.firePropertyChange(var1, var2, var3);
  2215.       }
  2216.    }
  2217.  
  2218.    private void writeObject(ObjectOutputStream var1) throws IOException {
  2219.       var1.defaultWriteObject();
  2220.       AWTEventMulticaster.save(var1, "componentL", this.componentListener);
  2221.       AWTEventMulticaster.save(var1, "focusL", this.focusListener);
  2222.       AWTEventMulticaster.save(var1, "keyL", this.keyListener);
  2223.       AWTEventMulticaster.save(var1, "mouseL", this.mouseListener);
  2224.       AWTEventMulticaster.save(var1, "mouseMotionL", this.mouseMotionListener);
  2225.       AWTEventMulticaster.save(var1, "inputMethodL", this.inputMethodListener);
  2226.       var1.writeObject((Object)null);
  2227.       var1.writeObject(this.componentOrientation);
  2228.       AWTEventMulticaster.save(var1, "hierarchyL", this.hierarchyListener);
  2229.       AWTEventMulticaster.save(var1, "hierarchyBoundsL", this.hierarchyBoundsListener);
  2230.       var1.writeObject((Object)null);
  2231.    }
  2232.  
  2233.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  2234.       var1.defaultReadObject();
  2235.       this.privateKey = new Object();
  2236.       this.appContext = AppContext.getAppContext();
  2237.       SunToolkit.insertTargetMapping(this, this.appContext);
  2238.  
  2239.       Object var2;
  2240.       while(null != (var2 = var1.readObject())) {
  2241.          String var3 = ((String)var2).intern();
  2242.          if ("componentL" == var3) {
  2243.             this.addComponentListener((ComponentListener)var1.readObject());
  2244.          } else if ("focusL" == var3) {
  2245.             this.addFocusListener((FocusListener)var1.readObject());
  2246.          } else if ("keyL" == var3) {
  2247.             this.addKeyListener((KeyListener)var1.readObject());
  2248.          } else if ("mouseL" == var3) {
  2249.             this.addMouseListener((MouseListener)var1.readObject());
  2250.          } else if ("mouseMotionL" == var3) {
  2251.             this.addMouseMotionListener((MouseMotionListener)var1.readObject());
  2252.          } else if ("inputMethodL" == var3) {
  2253.             this.addInputMethodListener((InputMethodListener)var1.readObject());
  2254.          } else {
  2255.             var1.readObject();
  2256.          }
  2257.       }
  2258.  
  2259.       Object var10 = null;
  2260.  
  2261.       try {
  2262.          var10 = var1.readObject();
  2263.       } catch (OptionalDataException var8) {
  2264.          if (!var8.eof) {
  2265.             throw var8;
  2266.          }
  2267.       }
  2268.  
  2269.       if (var10 != null) {
  2270.          this.componentOrientation = (ComponentOrientation)var10;
  2271.       } else {
  2272.          this.componentOrientation = ComponentOrientation.UNKNOWN;
  2273.       }
  2274.  
  2275.       try {
  2276.          while(null != (var2 = var1.readObject())) {
  2277.             String var4 = ((String)var2).intern();
  2278.             if ("hierarchyL" == var4) {
  2279.                this.addHierarchyListener((HierarchyListener)var1.readObject());
  2280.             } else if ("hierarchyBoundsL" == var4) {
  2281.                this.addHierarchyBoundsListener((HierarchyBoundsListener)var1.readObject());
  2282.             } else {
  2283.                var1.readObject();
  2284.             }
  2285.          }
  2286.       } catch (OptionalDataException var7) {
  2287.          if (!var7.eof) {
  2288.             throw var7;
  2289.          }
  2290.       }
  2291.  
  2292.       if (this.popups != null) {
  2293.          int var11 = this.popups.size();
  2294.  
  2295.          for(int var5 = 0; var5 < var11; ++var5) {
  2296.             PopupMenu var6 = (PopupMenu)this.popups.elementAt(var5);
  2297.             var6.parent = this;
  2298.          }
  2299.       }
  2300.  
  2301.    }
  2302.  
  2303.    public void setComponentOrientation(ComponentOrientation var1) {
  2304.       ComponentOrientation var2 = this.componentOrientation;
  2305.       this.componentOrientation = var1;
  2306.       this.firePropertyChange("componentOrientation", var2, var1);
  2307.       if (this.valid) {
  2308.          this.invalidate();
  2309.       }
  2310.  
  2311.    }
  2312.  
  2313.    public ComponentOrientation getComponentOrientation() {
  2314.       return this.componentOrientation;
  2315.    }
  2316.  
  2317.    private static native void initIDs();
  2318.  
  2319.    public AccessibleContext getAccessibleContext() {
  2320.       return this.accessibleContext;
  2321.    }
  2322.  
  2323.    int getAccessibleIndexInParent() {
  2324.       Object var1 = this.getTreeLock();
  2325.       synchronized(var1) {
  2326.          int var2 = -1;
  2327.          Container var3 = this.getParent();
  2328.          if (var3 != null && var3 instanceof Accessible) {
  2329.             Component[] var4 = var3.getComponents();
  2330.  
  2331.             for(int var5 = 0; var5 < var4.length; ++var5) {
  2332.                if (var4[var5] instanceof Accessible) {
  2333.                   ++var2;
  2334.                }
  2335.  
  2336.                if (this.equals(var4[var5])) {
  2337.                   return var2;
  2338.                }
  2339.             }
  2340.          }
  2341.  
  2342.          byte var9 = -1;
  2343.          return var9;
  2344.       }
  2345.    }
  2346.  
  2347.    AccessibleStateSet getAccessibleStateSet() {
  2348.       Object var1 = this.getTreeLock();
  2349.       synchronized(var1) {
  2350.          AccessibleStateSet var2 = new AccessibleStateSet();
  2351.          if (this.isEnabled()) {
  2352.             var2.add(AccessibleState.ENABLED);
  2353.          }
  2354.  
  2355.          if (this.isFocusTraversable()) {
  2356.             var2.add(AccessibleState.FOCUSABLE);
  2357.          }
  2358.  
  2359.          if (this.isVisible()) {
  2360.             var2.add(AccessibleState.VISIBLE);
  2361.          }
  2362.  
  2363.          if (this.isShowing()) {
  2364.             var2.add(AccessibleState.SHOWING);
  2365.          }
  2366.  
  2367.          if (this.hasFocus()) {
  2368.             var2.add(AccessibleState.FOCUSED);
  2369.          }
  2370.  
  2371.          if (this instanceof Accessible) {
  2372.             AccessibleContext var3 = ((Accessible)this).getAccessibleContext();
  2373.             if (var3 != null) {
  2374.                Accessible var4 = var3.getAccessibleParent();
  2375.                if (var4 != null) {
  2376.                   AccessibleContext var5 = var4.getAccessibleContext();
  2377.                   if (var5 != null) {
  2378.                      AccessibleSelection var6 = var5.getAccessibleSelection();
  2379.                      if (var6 != null) {
  2380.                         var2.add(AccessibleState.SELECTABLE);
  2381.                         int var7 = var3.getAccessibleIndexInParent();
  2382.                         if (var7 >= 0 && var6.isAccessibleChildSelected(var7)) {
  2383.                            var2.add(AccessibleState.SELECTED);
  2384.                         }
  2385.                      }
  2386.                   }
  2387.                }
  2388.             }
  2389.          }
  2390.  
  2391.          if (this instanceof JComponent && ((JComponent)this).isOpaque()) {
  2392.             var2.add(AccessibleState.OPAQUE);
  2393.          }
  2394.  
  2395.          return var2;
  2396.       }
  2397.    }
  2398.  
  2399.    // $FF: synthetic method
  2400.    static Class class$(String var0) {
  2401.       try {
  2402.          return Class.forName(var0);
  2403.       } catch (ClassNotFoundException var2) {
  2404.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  2405.       }
  2406.    }
  2407.  
  2408.    static {
  2409.       dbg = DebugHelper.create(class$java$awt$Component == null ? (class$java$awt$Component = class$("java.awt.Component")) : class$java$awt$Component);
  2410.       Toolkit.loadLibraries();
  2411.       initIDs();
  2412.       String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("awt.image.incrementaldraw"));
  2413.       isInc = var0 == null || var0.equals("true");
  2414.       var0 = (String)AccessController.doPrivileged(new GetPropertyAction("awt.image.redrawrate"));
  2415.       incRate = var0 != null ? Integer.parseInt(var0) : 100;
  2416.       metrics = new Hashtable();
  2417.    }
  2418. }
  2419.