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 / javax / swing / JComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  30.3 KB  |  1,992 lines

  1. package javax.swing;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.AWTEvent;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12. import java.awt.Insets;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.Window;
  16. import java.awt.event.ActionListener;
  17. import java.awt.event.FocusEvent;
  18. import java.awt.event.InputEvent;
  19. import java.awt.event.KeyEvent;
  20. import java.awt.event.MouseEvent;
  21. import java.awt.image.ImageObserver;
  22. import java.awt.peer.LightweightPeer;
  23. import java.beans.PropertyChangeListener;
  24. import java.beans.PropertyVetoException;
  25. import java.beans.VetoableChangeListener;
  26. import java.beans.VetoableChangeSupport;
  27. import java.io.IOException;
  28. import java.io.ObjectInputStream;
  29. import java.io.ObjectOutputStream;
  30. import java.io.Serializable;
  31. import java.util.Dictionary;
  32. import java.util.Enumeration;
  33. import java.util.EventListener;
  34. import java.util.Hashtable;
  35. import java.util.Vector;
  36. import javax.accessibility.AccessibleContext;
  37. import javax.accessibility.AccessibleState;
  38. import javax.swing.border.AbstractBorder;
  39. import javax.swing.border.Border;
  40. import javax.swing.event.AncestorListener;
  41. import javax.swing.event.EventListenerList;
  42. import javax.swing.event.SwingPropertyChangeSupport;
  43. import javax.swing.plaf.ComponentUI;
  44. import javax.swing.table.JTableHeader;
  45.  
  46. public abstract class JComponent extends Container implements Serializable {
  47.    private static final String uiClassID = "ComponentUI";
  48.    private static final Hashtable readObjectCallbacks = new Hashtable(1);
  49.    private Dimension preferredSize;
  50.    private Dimension minimumSize;
  51.    private Dimension maximumSize;
  52.    private Float alignmentX;
  53.    private Float alignmentY;
  54.    private AncestorNotifier ancestorNotifier;
  55.    Rectangle _bounds = new Rectangle();
  56.    // $FF: renamed from: ui javax.swing.plaf.ComponentUI
  57.    protected transient ComponentUI field_0;
  58.    protected EventListenerList listenerList = new EventListenerList();
  59.    private Hashtable clientProperties;
  60.    private VetoableChangeSupport vetoableChangeSupport;
  61.    private Autoscroller autoscroller;
  62.    private Border border;
  63.    private int flags;
  64.    private InputVerifier inputVerifier = null;
  65.    private boolean verifyInputWhenFocusTarget = true;
  66.    private transient Rectangle tmpRect;
  67.    transient Component paintingChild;
  68.    public static final int WHEN_FOCUSED = 0;
  69.    public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1;
  70.    public static final int WHEN_IN_FOCUSED_WINDOW = 2;
  71.    public static final int UNDEFINED_CONDITION = -1;
  72.    private static final String KEYBOARD_BINDINGS_KEY = "_KeyboardBindings";
  73.    private static final String WHEN_IN_FOCUSED_WINDOW_BINDINGS = "_WhenInFocusedWindow";
  74.    public static final String TOOL_TIP_TEXT_KEY = "ToolTipText";
  75.    private static final String NEXT_FOCUS = "nextFocus";
  76.    private static final int REQUEST_FOCUS_DISABLED = 0;
  77.    private static final int IS_DOUBLE_BUFFERED = 1;
  78.    private static final int ANCESTOR_USING_BUFFER = 2;
  79.    private static final int IS_PAINTING_TILE = 3;
  80.    private static final int HAS_FOCUS = 4;
  81.    private static final int IS_OPAQUE = 5;
  82.    private static final int KEY_EVENTS_ENABLED = 6;
  83.    private static final int FOCUS_INPUTMAP_CREATED = 7;
  84.    private static final int ANCESTOR_INPUTMAP_CREATED = 8;
  85.    private static final int WIF_INPUTMAP_CREATED = 9;
  86.    private static final int ACTIONMAP_CREATED = 10;
  87.    private static final int CREATED_DOUBLE_BUFFER = 11;
  88.    private static final int IS_PRINTING = 12;
  89.    private static final int IS_PRINTING_ALL = 13;
  90.    private InputMap focusInputMap;
  91.    private InputMap ancestorInputMap;
  92.    private ComponentInputMap windowInputMap;
  93.    private ActionMap actionMap;
  94.    protected AccessibleContext accessibleContext = null;
  95.    private static final String htmlKey = "html";
  96.    private Object htmlView;
  97.    private SwingPropertyChangeSupport changeSupport;
  98.    private Rectangle paintImmediatelyClip = new Rectangle(0, 0, 0, 0);
  99.  
  100.    public JComponent() {
  101.       ((Component)this).enableEvents(12L);
  102.       this.enableSerialization();
  103.    }
  104.  
  105.    public void updateUI() {
  106.    }
  107.  
  108.    protected void setUI(ComponentUI var1) {
  109.       if (this.field_0 != null) {
  110.          this.field_0.uninstallUI(this);
  111.       }
  112.  
  113.       ComponentUI var2 = this.field_0;
  114.       this.field_0 = var1;
  115.       if (this.field_0 != null) {
  116.          this.field_0.installUI(this);
  117.       }
  118.  
  119.       this.firePropertyChange("UI", var2, var1);
  120.       this.revalidate();
  121.       ((Component)this).repaint();
  122.    }
  123.  
  124.    public String getUIClassID() {
  125.       return "ComponentUI";
  126.    }
  127.  
  128.    protected Graphics getComponentGraphics(Graphics var1) {
  129.       Object var2 = var1;
  130.       if (this.field_0 != null && DebugGraphics.debugComponentCount() != 0 && this.shouldDebugGraphics() != 0 && !(var1 instanceof DebugGraphics)) {
  131.          if (var1 instanceof SwingGraphics) {
  132.             if (!(((SwingGraphics)var1).subGraphics() instanceof DebugGraphics)) {
  133.                DebugGraphics var3 = new DebugGraphics(((SwingGraphics)var1).subGraphics(), this);
  134.                var2 = SwingGraphics.createSwingGraphics(var3);
  135.                ((Graphics)var3).dispose();
  136.             }
  137.          } else {
  138.             var2 = new DebugGraphics(var1, this);
  139.          }
  140.       }
  141.  
  142.       ((Graphics)var2).setColor(((Component)this).getForeground());
  143.       ((Graphics)var2).setFont(((Component)this).getFont());
  144.       return (Graphics)var2;
  145.    }
  146.  
  147.    protected void paintComponent(Graphics var1) {
  148.       if (this.field_0 != null) {
  149.          Graphics var2 = SwingGraphics.createSwingGraphics(var1);
  150.  
  151.          try {
  152.             this.field_0.update(var2, this);
  153.          } finally {
  154.             var2.dispose();
  155.          }
  156.       }
  157.  
  158.    }
  159.  
  160.    protected void paintChildren(Graphics var1) {
  161.       Graphics var3 = null;
  162.  
  163.       label443: {
  164.          try {
  165.             Object var4 = ((Component)this).getTreeLock();
  166.             synchronized(var4) {
  167.                int var5 = ((Container)this).getComponentCount() - 1;
  168.                if (var5 >= 0) {
  169.                   var3 = SwingGraphics.createSwingGraphics(var1);
  170.                   if (this.paintingChild != null && this.paintingChild instanceof JComponent && ((JComponent)this.paintingChild).isOpaque()) {
  171.                      while(var5 >= 0 && ((Container)this).getComponent(var5) != this.paintingChild) {
  172.                         --var5;
  173.                      }
  174.                   }
  175.  
  176.                   if (this.tmpRect == null) {
  177.                      this.tmpRect = new Rectangle();
  178.                   }
  179.  
  180.                   boolean var6 = !this.isOptimizedDrawingEnabled() && this.checkIfChildObscuredBySibling();
  181.                   Rectangle var7 = null;
  182.                   if (var6) {
  183.                      var7 = var3.getClipBounds();
  184.                      if (var7 == null) {
  185.                         var7 = new Rectangle(0, 0, this._bounds.width, this._bounds.height);
  186.                      }
  187.                   }
  188.  
  189.                   for(boolean var8 = this.getFlag(12); var5 >= 0; --var5) {
  190.                      Component var9 = ((Container)this).getComponent(var5);
  191.                      if (var9 != null && isLightweightComponent(var9) && var9.isVisible()) {
  192.                         boolean var2 = var9 instanceof JComponent;
  193.                         Rectangle var10;
  194.                         if (var2) {
  195.                            var10 = this.tmpRect;
  196.                            ((JComponent)var9).getBounds(var10);
  197.                         } else {
  198.                            var10 = var9.getBounds();
  199.                         }
  200.  
  201.                         boolean var11 = var1.hitClip(var10.x, var10.y, var10.width, var10.height);
  202.                         if (var11) {
  203.                            if (var6 && var5 > 0) {
  204.                               int var12 = var10.x;
  205.                               int var13 = var10.y;
  206.                               int var14 = var10.width;
  207.                               int var15 = var10.height;
  208.                               SwingUtilities.computeIntersection(var7.x, var7.y, var7.width, var7.height, var10);
  209.                               if (this.rectangleIsObscuredBySibling(var5, var10.x, var10.y, var10.width, var10.height)) {
  210.                                  continue;
  211.                               }
  212.  
  213.                               var10.x = var12;
  214.                               var10.y = var13;
  215.                               var10.width = var14;
  216.                               var10.height = var15;
  217.                            }
  218.  
  219.                            Graphics var30 = SwingGraphics.createSwingGraphics(var3, var10.x, var10.y, var10.width, var10.height);
  220.                            var30.setColor(var9.getForeground());
  221.                            var30.setFont(var9.getFont());
  222.                            boolean var31 = false;
  223.  
  224.                            try {
  225.                               if (var2) {
  226.                                  if (this.getFlag(2)) {
  227.                                     ((JComponent)var9).setFlag(2, true);
  228.                                     var31 = true;
  229.                                  }
  230.  
  231.                                  if (this.getFlag(3)) {
  232.                                     ((JComponent)var9).setFlag(3, true);
  233.                                     var31 = true;
  234.                                  }
  235.  
  236.                                  if (!var8) {
  237.                                     ((JComponent)var9).paint(var30);
  238.                                  } else if (!this.getFlag(13)) {
  239.                                     var9.print(var30);
  240.                                  } else {
  241.                                     var9.printAll(var30);
  242.                                  }
  243.                               } else if (!var8) {
  244.                                  var9.paint(var30);
  245.                               } else if (!this.getFlag(13)) {
  246.                                  var9.print(var30);
  247.                               } else {
  248.                                  var9.printAll(var30);
  249.                               }
  250.                            } finally {
  251.                               var30.dispose();
  252.                               if (var31) {
  253.                                  ((JComponent)var9).setFlag(2, false);
  254.                                  ((JComponent)var9).setFlag(3, false);
  255.                               }
  256.  
  257.                            }
  258.                         }
  259.                      }
  260.                   }
  261.                   break label443;
  262.                }
  263.             }
  264.          } finally {
  265.             if (var3 != null) {
  266.                var3.dispose();
  267.             }
  268.  
  269.          }
  270.  
  271.          return;
  272.       }
  273.  
  274.    }
  275.  
  276.    protected void paintBorder(Graphics var1) {
  277.       Border var2 = this.getBorder();
  278.       if (var2 != null) {
  279.          var2.paintBorder(this, var1, 0, 0, this.getWidth(), this.getHeight());
  280.       }
  281.  
  282.    }
  283.  
  284.    public void update(Graphics var1) {
  285.       this.paint(var1);
  286.    }
  287.  
  288.    public void paint(Graphics var1) {
  289.       boolean var2 = false;
  290.       if (this.getWidth() > 0 && this.getHeight() > 0) {
  291.          Graphics var3 = this.getComponentGraphics(var1);
  292.          Graphics var4 = SwingGraphics.createSwingGraphics(var3);
  293.  
  294.          try {
  295.             Object var5 = null;
  296.             RepaintManager var6 = RepaintManager.currentManager(this);
  297.             Rectangle var7 = var4.getClipBounds();
  298.             int var8;
  299.             int var9;
  300.             int var10;
  301.             int var11;
  302.             if (var7 == null) {
  303.                var9 = 0;
  304.                var8 = 0;
  305.                var10 = this._bounds.width;
  306.                var11 = this._bounds.height;
  307.             } else {
  308.                var8 = var7.x;
  309.                var9 = var7.y;
  310.                var10 = var7.width;
  311.                var11 = var7.height;
  312.             }
  313.  
  314.             if (var10 > this.getWidth()) {
  315.                var10 = this.getWidth();
  316.             }
  317.  
  318.             if (var11 > this.getHeight()) {
  319.                var11 = this.getHeight();
  320.             }
  321.  
  322.             if (((Component)this).getParent() != null && !(((Component)this).getParent() instanceof JComponent)) {
  323.                this.adjustPaintFlags();
  324.                var2 = true;
  325.             }
  326.  
  327.             boolean var14 = this.getFlag(12);
  328.             Image var31;
  329.             if (!var14 && var6.isDoubleBufferingEnabled() && !this.getFlag(2) && this.isDoubleBuffered() && (var31 = var6.getOffscreenBuffer(this, var10, var11)) != null && var31.getWidth((ImageObserver)null) > 0 && var31.getHeight((ImageObserver)null) > 0) {
  330.                Graphics var19 = var31.getGraphics();
  331.                Graphics var20 = SwingGraphics.createSwingGraphics(var19);
  332.                var19.dispose();
  333.  
  334.                try {
  335.                   var20.translate(-var8, -var9);
  336.                   int var12 = var31.getWidth((ImageObserver)null);
  337.                   int var13 = var31.getHeight((ImageObserver)null);
  338.                   if (var12 > var10) {
  339.                      var12 = var10;
  340.                   }
  341.  
  342.                   if (var13 > var11) {
  343.                      var13 = var11;
  344.                   }
  345.  
  346.                   this.setFlag(2, true);
  347.                   this.setFlag(3, true);
  348.                   int var15 = 0;
  349.  
  350.                   for(int var17 = var10; var15 < var17; var15 += var12) {
  351.                      int var16 = 0;
  352.  
  353.                      for(int var18 = var11; var16 < var18; var16 += var13) {
  354.                         if (var16 + var13 >= var18 && var15 + var12 >= var17) {
  355.                            this.setFlag(3, false);
  356.                         }
  357.  
  358.                         var20.translate(-var15, -var16);
  359.                         var20.setClip(var8 + var15, var9 + var16, var12, var13);
  360.                         if (!this.rectangleIsObscured(var8, var9, var12, var13)) {
  361.                            this.paintComponent(var20);
  362.                            this.paintBorder(var20);
  363.                         }
  364.  
  365.                         this.paintChildren(var20);
  366.                         var4.drawImage(var31, var8 + var15, var9 + var16, this);
  367.                         var20.translate(var15, var16);
  368.                      }
  369.                   }
  370.                } finally {
  371.                   this.setFlag(2, false);
  372.                   this.setFlag(3, false);
  373.                   var20.dispose();
  374.                }
  375.             } else {
  376.                if (var7 == null) {
  377.                   var4.setClip(var8, var9, var10, var11);
  378.                }
  379.  
  380.                if (!this.rectangleIsObscured(var8, var9, var10, var11)) {
  381.                   if (!var14) {
  382.                      this.paintComponent(var4);
  383.                      this.paintBorder(var4);
  384.                   } else {
  385.                      this.printComponent(var4);
  386.                      this.printBorder(var4);
  387.                   }
  388.                }
  389.  
  390.                if (!var14) {
  391.                   this.paintChildren(var4);
  392.                } else {
  393.                   this.printChildren(var4);
  394.                }
  395.             }
  396.          } finally {
  397.             var4.dispose();
  398.             if (var2) {
  399.                this.setFlag(2, false);
  400.                this.setFlag(3, false);
  401.                this.setFlag(12, false);
  402.                this.setFlag(13, false);
  403.             }
  404.  
  405.          }
  406.  
  407.       }
  408.    }
  409.  
  410.    private void adjustPaintFlags() {
  411.       Object var1 = null;
  412.  
  413.       for(Container var2 = ((Component)this).getParent(); var2 != null; var2 = ((Component)var2).getParent()) {
  414.          if (var2 instanceof JComponent) {
  415.             JComponent var3 = (JComponent)var2;
  416.             if (var3.getFlag(2)) {
  417.                this.setFlag(2, true);
  418.             }
  419.  
  420.             if (var3.getFlag(3)) {
  421.                this.setFlag(3, true);
  422.             }
  423.  
  424.             if (var3.getFlag(12)) {
  425.                this.setFlag(12, true);
  426.             }
  427.  
  428.             if (var3.getFlag(13)) {
  429.                this.setFlag(13, true);
  430.             }
  431.             break;
  432.          }
  433.       }
  434.  
  435.    }
  436.  
  437.    public void printAll(Graphics var1) {
  438.       this.setFlag(13, true);
  439.  
  440.       try {
  441.          this.print(var1);
  442.       } finally {
  443.          this.setFlag(13, false);
  444.       }
  445.  
  446.    }
  447.  
  448.    public void print(Graphics var1) {
  449.       this.setFlag(12, true);
  450.  
  451.       try {
  452.          this.paint(var1);
  453.       } finally {
  454.          this.setFlag(12, false);
  455.       }
  456.  
  457.    }
  458.  
  459.    protected void printComponent(Graphics var1) {
  460.       this.paintComponent(var1);
  461.    }
  462.  
  463.    protected void printChildren(Graphics var1) {
  464.       this.paintChildren(var1);
  465.    }
  466.  
  467.    protected void printBorder(Graphics var1) {
  468.       this.paintBorder(var1);
  469.    }
  470.  
  471.    public boolean isPaintingTile() {
  472.       return this.getFlag(3);
  473.    }
  474.  
  475.    public boolean isFocusCycleRoot() {
  476.       return false;
  477.    }
  478.  
  479.    public boolean isManagingFocus() {
  480.       return false;
  481.    }
  482.  
  483.    public void setNextFocusableComponent(Component var1) {
  484.       this.putClientProperty("nextFocus", var1);
  485.    }
  486.  
  487.    public Component getNextFocusableComponent() {
  488.       return (Component)this.getClientProperty("nextFocus");
  489.    }
  490.  
  491.    public void setRequestFocusEnabled(boolean var1) {
  492.       this.setFlag(0, !var1);
  493.    }
  494.  
  495.    public boolean isRequestFocusEnabled() {
  496.       return !this.getFlag(0);
  497.    }
  498.  
  499.    public void requestFocus() {
  500.       FocusManager var1 = FocusManager.getCurrentManager();
  501.       if (var1 instanceof DefaultFocusManager) {
  502.          ((DefaultFocusManager)var1).clearHistory();
  503.       }
  504.  
  505.       if (this.isRequestFocusEnabled()) {
  506.          this.grabFocus();
  507.       }
  508.  
  509.    }
  510.  
  511.    public void grabFocus() {
  512.       if (!this.hasFocus()) {
  513.          JRootPane var1 = this.getRootPane();
  514.          JComponent var2 = var1 == null ? null : var1.getCurrentFocusOwner();
  515.          InputVerifier var3 = var2 == null ? null : var2.getInputVerifier();
  516.          if (!this.verifyInputWhenFocusTarget) {
  517.             super.requestFocus();
  518.          } else if (var3 == null || var3.shouldYieldFocus(var2)) {
  519.             super.requestFocus();
  520.          }
  521.  
  522.       }
  523.    }
  524.  
  525.    public void setVerifyInputWhenFocusTarget(boolean var1) {
  526.       this.verifyInputWhenFocusTarget = var1;
  527.    }
  528.  
  529.    public boolean getVerifyInputWhenFocusTarget() {
  530.       return this.verifyInputWhenFocusTarget;
  531.    }
  532.  
  533.    public void setPreferredSize(Dimension var1) {
  534.       Dimension var2 = this.preferredSize;
  535.       this.preferredSize = var1;
  536.       this.firePropertyChange("preferredSize", var2, var1);
  537.    }
  538.  
  539.    public Dimension getPreferredSize() {
  540.       if (this.preferredSize != null) {
  541.          return this.preferredSize;
  542.       } else {
  543.          Dimension var1 = null;
  544.          if (this.field_0 != null) {
  545.             var1 = this.field_0.getPreferredSize(this);
  546.          }
  547.  
  548.          return var1 != null ? var1 : super.getPreferredSize();
  549.       }
  550.    }
  551.  
  552.    public void setMaximumSize(Dimension var1) {
  553.       Dimension var2 = this.maximumSize;
  554.       this.maximumSize = var1;
  555.       this.firePropertyChange("maximumSize", var2, var1);
  556.    }
  557.  
  558.    public Dimension getMaximumSize() {
  559.       if (this.maximumSize != null) {
  560.          return this.maximumSize;
  561.       } else {
  562.          Dimension var1 = null;
  563.          if (this.field_0 != null) {
  564.             var1 = this.field_0.getMaximumSize(this);
  565.          }
  566.  
  567.          return var1 != null ? var1 : super.getMaximumSize();
  568.       }
  569.    }
  570.  
  571.    public void setMinimumSize(Dimension var1) {
  572.       Dimension var2 = this.minimumSize;
  573.       this.minimumSize = var1;
  574.       this.firePropertyChange("minimumSize", var2, var1);
  575.    }
  576.  
  577.    public Dimension getMinimumSize() {
  578.       if (this.minimumSize != null) {
  579.          return this.minimumSize;
  580.       } else {
  581.          Dimension var1 = null;
  582.          if (this.field_0 != null) {
  583.             var1 = this.field_0.getMinimumSize(this);
  584.          }
  585.  
  586.          return var1 != null ? var1 : super.getMinimumSize();
  587.       }
  588.    }
  589.  
  590.    public boolean isMinimumSizeSet() {
  591.       return this.minimumSize != null;
  592.    }
  593.  
  594.    public boolean isPreferredSizeSet() {
  595.       return this.preferredSize != null;
  596.    }
  597.  
  598.    public boolean isMaximumSizeSet() {
  599.       return this.maximumSize != null;
  600.    }
  601.  
  602.    public boolean contains(int var1, int var2) {
  603.       return this.field_0 != null ? this.field_0.contains(this, var1, var2) : super.contains(var1, var2);
  604.    }
  605.  
  606.    public void setBorder(Border var1) {
  607.       Border var2 = this.border;
  608.       this.border = var1;
  609.       this.firePropertyChange("border", var2, var1);
  610.       if (var1 != var2) {
  611.          if (var1 == null || var2 == null || !var1.getBorderInsets(this).equals(var2.getBorderInsets(this))) {
  612.             this.revalidate();
  613.          }
  614.  
  615.          ((Component)this).repaint();
  616.       }
  617.  
  618.    }
  619.  
  620.    public Border getBorder() {
  621.       return this.border;
  622.    }
  623.  
  624.    public Insets getInsets() {
  625.       return this.border != null ? this.border.getBorderInsets(this) : super.getInsets();
  626.    }
  627.  
  628.    public Insets getInsets(Insets var1) {
  629.       if (this.border != null) {
  630.          return this.border instanceof AbstractBorder ? ((AbstractBorder)this.border).getBorderInsets(this, var1) : this.border.getBorderInsets(this);
  631.       } else {
  632.          var1.left = var1.top = var1.right = var1.bottom = 0;
  633.          return var1;
  634.       }
  635.    }
  636.  
  637.    public float getAlignmentY() {
  638.       return this.alignmentY != null ? this.alignmentY : super.getAlignmentY();
  639.    }
  640.  
  641.    public void setAlignmentY(float var1) {
  642.       this.alignmentY = new Float(var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1));
  643.    }
  644.  
  645.    public float getAlignmentX() {
  646.       return this.alignmentX != null ? this.alignmentX : super.getAlignmentX();
  647.    }
  648.  
  649.    public void setAlignmentX(float var1) {
  650.       this.alignmentX = new Float(var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1));
  651.    }
  652.  
  653.    public void setInputVerifier(InputVerifier var1) {
  654.       this.inputVerifier = var1;
  655.    }
  656.  
  657.    public InputVerifier getInputVerifier() {
  658.       return this.inputVerifier;
  659.    }
  660.  
  661.    public Graphics getGraphics() {
  662.       if (this.shouldDebugGraphics() != 0) {
  663.          DebugGraphics var1 = new DebugGraphics(super.getGraphics(), this);
  664.          return var1;
  665.       } else {
  666.          return super.getGraphics();
  667.       }
  668.    }
  669.  
  670.    public void setDebugGraphicsOptions(int var1) {
  671.       DebugGraphics.setDebugOptions(this, var1);
  672.    }
  673.  
  674.    public int getDebugGraphicsOptions() {
  675.       return DebugGraphics.getDebugOptions(this);
  676.    }
  677.  
  678.    int shouldDebugGraphics() {
  679.       return DebugGraphics.shouldComponentDebug(this);
  680.    }
  681.  
  682.    public void registerKeyboardAction(ActionListener var1, String var2, KeyStroke var3, int var4) {
  683.       InputMap var5 = this.getInputMap(var4, true);
  684.       if (var5 != null) {
  685.          ActionMap var6 = this.getActionMap(true);
  686.          ActionStandin var7 = new ActionStandin(this, var1, var2);
  687.          var5.put(var3, var7);
  688.          if (var6 != null) {
  689.             var6.put(var7, var7);
  690.          }
  691.       }
  692.  
  693.    }
  694.  
  695.    private void registerWithKeyboardManager(boolean var1) {
  696.       InputMap var2 = this.getInputMap(2, false);
  697.       Hashtable var4 = (Hashtable)this.getClientProperty("_WhenInFocusedWindow");
  698.       KeyStroke[] var3;
  699.       if (var2 != null) {
  700.          var3 = var2.allKeys();
  701.          if (var3 != null) {
  702.             for(int var5 = var3.length - 1; var5 >= 0; --var5) {
  703.                if (!var1 || var4 == null || var4.get(var3[var5]) == null) {
  704.                   this.registerWithKeyboardManager(var3[var5]);
  705.                }
  706.  
  707.                if (var4 != null) {
  708.                   var4.remove(var3[var5]);
  709.                }
  710.             }
  711.          }
  712.       } else {
  713.          var3 = null;
  714.       }
  715.  
  716.       if (var4 != null && var4.size() > 0) {
  717.          Enumeration var7 = var4.keys();
  718.  
  719.          while(var7.hasMoreElements()) {
  720.             KeyStroke var6 = (KeyStroke)var7.nextElement();
  721.             this.unregisterWithKeyboardManager(var6);
  722.          }
  723.  
  724.          var4.clear();
  725.       }
  726.  
  727.       if (var3 != null && var3.length > 0) {
  728.          if (var4 == null) {
  729.             var4 = new Hashtable(var3.length);
  730.             this.putClientProperty("_WhenInFocusedWindow", var4);
  731.          }
  732.  
  733.          for(int var8 = var3.length - 1; var8 >= 0; --var8) {
  734.             var4.put(var3[var8], var3[var8]);
  735.          }
  736.       } else {
  737.          this.putClientProperty("_WhenInFocusedWindow", (Object)null);
  738.       }
  739.  
  740.    }
  741.  
  742.    private void unregisterWithKeyboardManager() {
  743.       Hashtable var1 = (Hashtable)this.getClientProperty("_WhenInFocusedWindow");
  744.       if (var1 != null && var1.size() > 0) {
  745.          Enumeration var2 = var1.keys();
  746.  
  747.          while(var2.hasMoreElements()) {
  748.             KeyStroke var3 = (KeyStroke)var2.nextElement();
  749.             this.unregisterWithKeyboardManager(var3);
  750.          }
  751.       }
  752.  
  753.       this.putClientProperty("_WhenInFocusedWindow", (Object)null);
  754.    }
  755.  
  756.    void componentInputMapChanged(ComponentInputMap var1) {
  757.       Object var2;
  758.       for(var2 = this.getInputMap(2, false); var2 != var1 && var2 != null; var2 = (ComponentInputMap)((InputMap)var2).getParent()) {
  759.       }
  760.  
  761.       if (var2 != null) {
  762.          this.registerWithKeyboardManager(false);
  763.       }
  764.  
  765.    }
  766.  
  767.    private void registerWithKeyboardManager(KeyStroke var1) {
  768.       KeyboardManager.getCurrentManager().registerKeyStroke(var1, this);
  769.    }
  770.  
  771.    private void unregisterWithKeyboardManager(KeyStroke var1) {
  772.       KeyboardManager.getCurrentManager().unregisterKeyStroke(var1, this);
  773.    }
  774.  
  775.    public void registerKeyboardAction(ActionListener var1, KeyStroke var2, int var3) {
  776.       this.registerKeyboardAction(var1, (String)null, var2, var3);
  777.    }
  778.  
  779.    public void unregisterKeyboardAction(KeyStroke var1) {
  780.       ActionMap var2 = this.getActionMap(false);
  781.  
  782.       for(int var3 = 0; var3 < 3; ++var3) {
  783.          InputMap var4 = this.getInputMap(var3, false);
  784.          if (var4 != null) {
  785.             Object var5 = var4.get(var1);
  786.             if (var2 != null && var5 != null) {
  787.                var2.remove(var5);
  788.             }
  789.  
  790.             var4.remove(var1);
  791.          }
  792.       }
  793.  
  794.    }
  795.  
  796.    public KeyStroke[] getRegisteredKeyStrokes() {
  797.       int[] var1 = new int[3];
  798.       KeyStroke[][] var2 = new KeyStroke[3][];
  799.  
  800.       for(int var3 = 0; var3 < 3; ++var3) {
  801.          InputMap var4 = this.getInputMap(var3, false);
  802.          var2[var3] = var4 != null ? var4.allKeys() : null;
  803.          var1[var3] = var2[var3] != null ? var2[var3].length : 0;
  804.       }
  805.  
  806.       KeyStroke[] var7 = new KeyStroke[var1[0] + var1[1] + var1[2]];
  807.       int var5 = 0;
  808.  
  809.       for(int var6 = 0; var5 < 3; ++var5) {
  810.          if (var1[var5] > 0) {
  811.             System.arraycopy(var2[var5], 0, var7, var6, var1[var5]);
  812.             var6 += var1[var5];
  813.          }
  814.       }
  815.  
  816.       return var7;
  817.    }
  818.  
  819.    public int getConditionForKeyStroke(KeyStroke var1) {
  820.       for(int var2 = 0; var2 < 3; ++var2) {
  821.          InputMap var3 = this.getInputMap(var2, false);
  822.          if (var3 != null && var3.get(var1) != null) {
  823.             return var2;
  824.          }
  825.       }
  826.  
  827.       return -1;
  828.    }
  829.  
  830.    public ActionListener getActionForKeyStroke(KeyStroke var1) {
  831.       ActionMap var2 = this.getActionMap(false);
  832.       if (var2 == null) {
  833.          return null;
  834.       } else {
  835.          for(int var3 = 0; var3 < 3; ++var3) {
  836.             InputMap var4 = this.getInputMap(var3, false);
  837.             if (var4 != null) {
  838.                Object var5 = var4.get(var1);
  839.                if (var5 != null) {
  840.                   Action var6 = var2.get(var5);
  841.                   if (var6 instanceof ActionStandin) {
  842.                      return javax.swing.JComponent.ActionStandin.access$000((ActionStandin)var6);
  843.                   }
  844.  
  845.                   return var6;
  846.                }
  847.             }
  848.          }
  849.  
  850.          return null;
  851.       }
  852.    }
  853.  
  854.    public void resetKeyboardActions() {
  855.       for(int var1 = 0; var1 < 3; ++var1) {
  856.          InputMap var2 = this.getInputMap(var1, false);
  857.          if (var2 != null) {
  858.             var2.clear();
  859.          }
  860.       }
  861.  
  862.       ActionMap var3 = this.getActionMap(false);
  863.       if (var3 != null) {
  864.          var3.clear();
  865.       }
  866.  
  867.    }
  868.  
  869.    public final void setInputMap(int var1, InputMap var2) {
  870.       switch (var1) {
  871.          case 0:
  872.             this.focusInputMap = var2;
  873.             this.setFlag(7, true);
  874.             break;
  875.          case 1:
  876.             this.ancestorInputMap = var2;
  877.             this.setFlag(8, true);
  878.             break;
  879.          case 2:
  880.             if (var2 != null && !(var2 instanceof ComponentInputMap)) {
  881.                throw new IllegalArgumentException("WHEN_IN_FOCUSED_WINDOW InputMaps must be of type ComponentInputMap");
  882.             }
  883.  
  884.             this.windowInputMap = (ComponentInputMap)var2;
  885.             this.setFlag(9, true);
  886.             this.registerWithKeyboardManager(false);
  887.             break;
  888.          default:
  889.             throw new IllegalArgumentException("condition must be one of JComponent.WHEN_IN_FOCUSED_WINDOW, JComponent.WHEN_FOCUSED or JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT");
  890.       }
  891.  
  892.    }
  893.  
  894.    public final InputMap getInputMap(int var1) {
  895.       return this.getInputMap(var1, true);
  896.    }
  897.  
  898.    public final InputMap getInputMap() {
  899.       return this.getInputMap(0, true);
  900.    }
  901.  
  902.    public final void setActionMap(ActionMap var1) {
  903.       this.actionMap = var1;
  904.       this.setFlag(10, true);
  905.    }
  906.  
  907.    public final ActionMap getActionMap() {
  908.       return this.getActionMap(true);
  909.    }
  910.  
  911.    final InputMap getInputMap(int var1, boolean var2) {
  912.       switch (var1) {
  913.          case 0:
  914.             if (this.getFlag(7)) {
  915.                return this.focusInputMap;
  916.             }
  917.  
  918.             if (var2) {
  919.                InputMap var5 = new InputMap();
  920.                this.setInputMap(var1, var5);
  921.                return var5;
  922.             }
  923.             break;
  924.          case 1:
  925.             if (this.getFlag(8)) {
  926.                return this.ancestorInputMap;
  927.             }
  928.  
  929.             if (var2) {
  930.                InputMap var4 = new InputMap();
  931.                this.setInputMap(var1, var4);
  932.                return var4;
  933.             }
  934.             break;
  935.          case 2:
  936.             if (this.getFlag(9)) {
  937.                return this.windowInputMap;
  938.             }
  939.  
  940.             if (var2) {
  941.                ComponentInputMap var3 = new ComponentInputMap(this);
  942.                this.setInputMap(var1, var3);
  943.                return var3;
  944.             }
  945.             break;
  946.          default:
  947.             throw new IllegalArgumentException("condition must be one of JComponent.WHEN_IN_FOCUSED_WINDOW, JComponent.WHEN_FOCUSED or JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT");
  948.       }
  949.  
  950.       return null;
  951.    }
  952.  
  953.    final ActionMap getActionMap(boolean var1) {
  954.       if (this.getFlag(10)) {
  955.          return this.actionMap;
  956.       } else if (var1) {
  957.          ActionMap var2 = new ActionMap();
  958.          this.setActionMap(var2);
  959.          return var2;
  960.       } else {
  961.          return null;
  962.       }
  963.    }
  964.  
  965.    public boolean requestDefaultFocus() {
  966.       Component[] var1 = ((Container)this).getComponents();
  967.  
  968.       for(int var2 = 0; var2 < var1.length; ++var2) {
  969.          if (var1[var2].isFocusTraversable()) {
  970.             if (var1[var2] instanceof JComponent) {
  971.                ((JComponent)var1[var2]).grabFocus();
  972.             } else {
  973.                var1[var2].requestFocus();
  974.             }
  975.  
  976.             return true;
  977.          }
  978.  
  979.          if (var1[var2] instanceof JComponent && !((JComponent)var1[var2]).isManagingFocus() && ((JComponent)var1[var2]).requestDefaultFocus()) {
  980.             return true;
  981.          }
  982.       }
  983.  
  984.       return false;
  985.    }
  986.  
  987.    private void clearFocusOwners() {
  988.       JRootPane var1 = this.getRootPane();
  989.       if (var1 != null) {
  990.          if (var1.getCurrentFocusOwner() == this) {
  991.             var1.setCurrentFocusOwner((JComponent)null);
  992.          }
  993.  
  994.          if (var1.getPreviousFocusOwner() == this) {
  995.             var1.setPreviousFocusOwner((JComponent)null);
  996.          }
  997.       }
  998.  
  999.    }
  1000.  
  1001.    public void setVisible(boolean var1) {
  1002.       if (var1 != ((Component)this).isVisible()) {
  1003.          super.setVisible(var1);
  1004.          Container var2 = ((Component)this).getParent();
  1005.          if (var2 != null) {
  1006.             Rectangle var3 = ((Component)this).getBounds();
  1007.             ((Component)var2).repaint(var3.x, var3.y, var3.width, var3.height);
  1008.          }
  1009.  
  1010.          this.revalidate();
  1011.          if (!var1) {
  1012.             this.clearFocusOwners();
  1013.          }
  1014.       }
  1015.  
  1016.    }
  1017.  
  1018.    public void hide() {
  1019.       super.hide();
  1020.       this.clearFocusOwners();
  1021.    }
  1022.  
  1023.    public void setEnabled(boolean var1) {
  1024.       boolean var2 = ((Component)this).isEnabled();
  1025.       super.setEnabled(var1);
  1026.       if (!var1 && this.hasFocus()) {
  1027.          FocusManager.getCurrentManager().focusPreviousComponent(this);
  1028.       }
  1029.  
  1030.       this.firePropertyChange("enabled", var2, var1);
  1031.       if (var1 != var2) {
  1032.          ((Component)this).repaint();
  1033.       }
  1034.  
  1035.    }
  1036.  
  1037.    public void setForeground(Color var1) {
  1038.       Color var2 = ((Component)this).getForeground();
  1039.       super.setForeground(var1);
  1040.       if (var2 != null ? !var2.equals(var1) : var1 != null && !var1.equals(var2)) {
  1041.          if (!SwingUtilities.is1dot2) {
  1042.             this.firePropertyChange("foreground", var2, var1);
  1043.          }
  1044.  
  1045.          ((Component)this).repaint();
  1046.       }
  1047.  
  1048.    }
  1049.  
  1050.    public void setBackground(Color var1) {
  1051.       Color var2 = ((Component)this).getBackground();
  1052.       super.setBackground(var1);
  1053.       if (var2 != null ? !var2.equals(var1) : var1 != null && !var1.equals(var2)) {
  1054.          if (!SwingUtilities.is1dot2) {
  1055.             this.firePropertyChange("background", var2, var1);
  1056.          }
  1057.  
  1058.          ((Component)this).repaint();
  1059.       }
  1060.  
  1061.    }
  1062.  
  1063.    public void setFont(Font var1) {
  1064.       Font var2 = ((Component)this).getFont();
  1065.       super.setFont(var1);
  1066.       if (!SwingUtilities.is1dot2) {
  1067.          this.firePropertyChange("font", var2, var1);
  1068.       }
  1069.  
  1070.       if (var1 != var2) {
  1071.          this.revalidate();
  1072.          ((Component)this).repaint();
  1073.       }
  1074.  
  1075.    }
  1076.  
  1077.    public boolean isFocusTraversable() {
  1078.       InputMap var1;
  1079.       for(var1 = this.getInputMap(0, false); var1 != null && var1.size() == 0; var1 = var1.getParent()) {
  1080.       }
  1081.  
  1082.       return var1 != null;
  1083.    }
  1084.  
  1085.    protected void processFocusEvent(FocusEvent var1) {
  1086.       switch (((AWTEvent)var1).getID()) {
  1087.          case 1004:
  1088.             this.setFlag(4, true);
  1089.             if (this.getRootPane() != null) {
  1090.                this.getRootPane().setCurrentFocusOwner(this);
  1091.             }
  1092.             break;
  1093.          case 1005:
  1094.             this.setFlag(4, false);
  1095.             if (this.getRootPane() != null) {
  1096.                this.getRootPane().setPreviousFocusOwner(this);
  1097.                this.getRootPane().setCurrentFocusOwner((JComponent)null);
  1098.             }
  1099.       }
  1100.  
  1101.       super.processFocusEvent(var1);
  1102.    }
  1103.  
  1104.    protected void processComponentKeyEvent(KeyEvent var1) {
  1105.    }
  1106.  
  1107.    protected void processKeyEvent(KeyEvent var1) {
  1108.       boolean var3 = false;
  1109.       if (FocusManager.isFocusManagerEnabled()) {
  1110.          FocusManager var4 = FocusManager.getCurrentManager();
  1111.          var4.processKeyEvent(this, var1);
  1112.          if (((InputEvent)var1).isConsumed()) {
  1113.             return;
  1114.          }
  1115.       }
  1116.  
  1117.       super.processKeyEvent(var1);
  1118.       if (!((InputEvent)var1).isConsumed()) {
  1119.          this.processComponentKeyEvent(var1);
  1120.       }
  1121.  
  1122.       if (((AWTEvent)var1).getID() == 401) {
  1123.          var3 = true;
  1124.          if (!javax.swing.JComponent.KeyboardState.keyIsPressed(var1.getKeyCode())) {
  1125.             javax.swing.JComponent.KeyboardState.registerKeyPressed(var1.getKeyCode());
  1126.          }
  1127.       } else if (((AWTEvent)var1).getID() == 402) {
  1128.          if (javax.swing.JComponent.KeyboardState.keyIsPressed(var1.getKeyCode())) {
  1129.             var3 = true;
  1130.             javax.swing.JComponent.KeyboardState.registerKeyReleased(var1.getKeyCode());
  1131.          }
  1132.       } else if (((AWTEvent)var1).getID() == 400) {
  1133.          var3 = true;
  1134.       }
  1135.  
  1136.       if (!((InputEvent)var1).isConsumed()) {
  1137.          if (var3 && ((AWTEvent)var1).getID() == 401) {
  1138.             boolean var6 = this.processKeyBindings(var1, true);
  1139.             if (var6) {
  1140.                ((InputEvent)var1).consume();
  1141.             }
  1142.          } else if (var3 && ((AWTEvent)var1).getID() == 402) {
  1143.             boolean var5 = this.processKeyBindings(var1, false);
  1144.             if (var5) {
  1145.                ((InputEvent)var1).consume();
  1146.             }
  1147.          } else if (var3 && ((AWTEvent)var1).getID() == 400) {
  1148.             boolean var2 = this.processKeyBindings(var1, false);
  1149.             if (var2) {
  1150.                ((InputEvent)var1).consume();
  1151.             }
  1152.          }
  1153.  
  1154.       }
  1155.    }
  1156.  
  1157.    protected boolean processKeyBinding(KeyStroke var1, KeyEvent var2, int var3, boolean var4) {
  1158.       InputMap var5 = this.getInputMap(var3, false);
  1159.       ActionMap var6 = this.getActionMap(false);
  1160.       if (var5 != null && var6 != null && ((Component)this).isEnabled()) {
  1161.          Object var7 = var5.get(var1);
  1162.          Action var8 = var7 == null ? null : var6.get(var7);
  1163.          if (var8 != null) {
  1164.             return SwingUtilities.notifyAction(var8, var1, var2, this, ((InputEvent)var2).getModifiers());
  1165.          }
  1166.       }
  1167.  
  1168.       return false;
  1169.    }
  1170.  
  1171.    boolean processKeyBindings(KeyEvent var1, boolean var2) {
  1172.       KeyStroke var3;
  1173.       if (((AWTEvent)var1).getID() == 400) {
  1174.          var3 = KeyStroke.getKeyStroke(var1.getKeyChar());
  1175.       } else {
  1176.          var3 = KeyStroke.getKeyStroke(var1.getKeyCode(), ((InputEvent)var1).getModifiers(), !var2);
  1177.       }
  1178.  
  1179.       if (this.processKeyBinding(var3, var1, 0, var2)) {
  1180.          return true;
  1181.       } else {
  1182.          Object var4;
  1183.          for(var4 = this; var4 != null && !(var4 instanceof Window) && !(var4 instanceof Applet); var4 = ((Component)var4).getParent()) {
  1184.             if (var4 instanceof JComponent && ((JComponent)var4).processKeyBinding(var3, var1, 1, var2)) {
  1185.                return true;
  1186.             }
  1187.  
  1188.             if (var4 instanceof JInternalFrame && processKeyBindingsForAllComponents(var1, (Container)var4, var2)) {
  1189.                return true;
  1190.             }
  1191.          }
  1192.  
  1193.          return var4 != null ? processKeyBindingsForAllComponents(var1, (Container)var4, var2) : false;
  1194.       }
  1195.    }
  1196.  
  1197.    static boolean processKeyBindingsForAllComponents(KeyEvent var0, Container var1, boolean var2) {
  1198.       return KeyboardManager.getCurrentManager().fireKeyboardAction(var0, var2, var1);
  1199.    }
  1200.  
  1201.    public void setToolTipText(String var1) {
  1202.       this.putClientProperty("ToolTipText", var1);
  1203.       ToolTipManager var2 = ToolTipManager.sharedInstance();
  1204.       if (var1 != null) {
  1205.          var2.registerComponent(this);
  1206.       } else {
  1207.          var2.unregisterComponent(this);
  1208.       }
  1209.  
  1210.    }
  1211.  
  1212.    public String getToolTipText() {
  1213.       return (String)this.getClientProperty("ToolTipText");
  1214.    }
  1215.  
  1216.    public String getToolTipText(MouseEvent var1) {
  1217.       return this.getToolTipText();
  1218.    }
  1219.  
  1220.    public Point getToolTipLocation(MouseEvent var1) {
  1221.       return null;
  1222.    }
  1223.  
  1224.    public JToolTip createToolTip() {
  1225.       JToolTip var1 = new JToolTip();
  1226.       var1.setComponent(this);
  1227.       return var1;
  1228.    }
  1229.  
  1230.    public void scrollRectToVisible(Rectangle var1) {
  1231.       int var3 = this.getX();
  1232.       int var4 = this.getY();
  1233.  
  1234.       Container var2;
  1235.       for(var2 = ((Component)this).getParent(); var2 != null && !(var2 instanceof JComponent) && !(var2 instanceof CellRendererPane); var2 = ((Component)var2).getParent()) {
  1236.          Rectangle var5 = ((Component)var2).getBounds();
  1237.          var3 += var5.x;
  1238.          var4 += var5.y;
  1239.       }
  1240.  
  1241.       if (var2 != null && !(var2 instanceof CellRendererPane)) {
  1242.          var1.x += var3;
  1243.          var1.y += var4;
  1244.          ((JComponent)var2).scrollRectToVisible(var1);
  1245.          var1.x -= var3;
  1246.          var1.y -= var4;
  1247.       }
  1248.  
  1249.    }
  1250.  
  1251.    public void setAutoscrolls(boolean var1) {
  1252.       if (var1) {
  1253.          if (this.autoscroller == null) {
  1254.             this.autoscroller = new Autoscroller(this);
  1255.          }
  1256.       } else if (this.autoscroller != null) {
  1257.          this.autoscroller.dispose();
  1258.          this.autoscroller = null;
  1259.       }
  1260.  
  1261.    }
  1262.  
  1263.    public boolean getAutoscrolls() {
  1264.       return this.autoscroller != null;
  1265.    }
  1266.  
  1267.    protected void processMouseMotionEvent(MouseEvent var1) {
  1268.       boolean var2 = true;
  1269.       if (this.autoscroller != null && ((AWTEvent)var1).getID() == 506) {
  1270.          var2 = !this.autoscroller.timer.isRunning();
  1271.          this.autoscroller.mouseDragged(var1);
  1272.       }
  1273.  
  1274.       if (var2) {
  1275.          super.processMouseMotionEvent(var1);
  1276.       }
  1277.  
  1278.    }
  1279.  
  1280.    void superProcessMouseMotionEvent(MouseEvent var1) {
  1281.       super.processMouseMotionEvent(var1);
  1282.    }
  1283.  
  1284.    void setCreatedDoubleBuffer(boolean var1) {
  1285.       this.setFlag(11, var1);
  1286.    }
  1287.  
  1288.    boolean getCreatedDoubleBuffer() {
  1289.       return this.getFlag(11);
  1290.    }
  1291.  
  1292.    public void enable() {
  1293.       if (!((Component)this).isEnabled()) {
  1294.          super.enable();
  1295.          if (this.accessibleContext != null) {
  1296.             this.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.ENABLED);
  1297.          }
  1298.       }
  1299.  
  1300.    }
  1301.  
  1302.    public void disable() {
  1303.       if (((Component)this).isEnabled()) {
  1304.          super.disable();
  1305.          if (this.accessibleContext != null) {
  1306.             this.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.ENABLED, (Object)null);
  1307.          }
  1308.       }
  1309.  
  1310.    }
  1311.  
  1312.    public AccessibleContext getAccessibleContext() {
  1313.       return this.accessibleContext;
  1314.    }
  1315.  
  1316.    private Dictionary getClientProperties() {
  1317.       if (this.clientProperties == null) {
  1318.          this.clientProperties = new Hashtable(2);
  1319.       }
  1320.  
  1321.       return this.clientProperties;
  1322.    }
  1323.  
  1324.    public final Object getClientProperty(Object var1) {
  1325.       if (this.clientProperties == null) {
  1326.          return null;
  1327.       } else {
  1328.          return var1 == "html" ? this.htmlView : this.getClientProperties().get(var1);
  1329.       }
  1330.    }
  1331.  
  1332.    public final void putClientProperty(Object var1, Object var2) {
  1333.       Object var3 = this.getClientProperties().get(var1);
  1334.       if (var2 != null) {
  1335.          if (var1 == "html") {
  1336.             this.htmlView = var2;
  1337.          } else {
  1338.             this.getClientProperties().put(var1, var2);
  1339.             this.firePropertyChange(var1.toString(), var3, var2);
  1340.          }
  1341.       } else if (var3 != null) {
  1342.          this.getClientProperties().remove(var1);
  1343.          this.firePropertyChange(var1.toString(), var3, var2);
  1344.       } else if (var1 == "html") {
  1345.          this.htmlView = null;
  1346.       }
  1347.  
  1348.    }
  1349.  
  1350.    public static boolean isLightweightComponent(Component var0) {
  1351.       return var0.getPeer() instanceof LightweightPeer;
  1352.    }
  1353.  
  1354.    public void reshape(int var1, int var2, int var3, int var4) {
  1355.       if (this._bounds.x != var1 || this._bounds.y != var2 || this._bounds.width != var3 || this._bounds.height != var4) {
  1356.          if (((Component)this).isShowing()) {
  1357.             if (this._bounds.x + this._bounds.width > var1 && this._bounds.y + this._bounds.height > var2 && this._bounds.x < var1 + var3 && this._bounds.y < var2 + var4) {
  1358.                Rectangle[] var5 = SwingUtilities.computeDifference(((Component)this).getBounds(), new Rectangle(var1, var2, var3, var4));
  1359.                Container var8 = ((Component)this).getParent();
  1360.                int var6 = 0;
  1361.  
  1362.                for(int var7 = var5.length; var6 < var7; ++var6) {
  1363.                   ((Component)var8).repaint(var5[var6].x, var5[var6].y, var5[var6].width, var5[var6].height);
  1364.                }
  1365.             } else {
  1366.                ((Component)this).getParent().repaint(this._bounds.x, this._bounds.y, this._bounds.width, this._bounds.height);
  1367.             }
  1368.          }
  1369.  
  1370.          this._bounds.setBounds(var1, var2, var3, var4);
  1371.          super.reshape(var1, var2, var3, var4);
  1372.       }
  1373.    }
  1374.  
  1375.    public Rectangle getBounds(Rectangle var1) {
  1376.       if (var1 == null) {
  1377.          return new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  1378.       } else {
  1379.          var1.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  1380.          return var1;
  1381.       }
  1382.    }
  1383.  
  1384.    public Dimension getSize(Dimension var1) {
  1385.       if (var1 == null) {
  1386.          return new Dimension(this.getWidth(), this.getHeight());
  1387.       } else {
  1388.          var1.setSize(this.getWidth(), this.getHeight());
  1389.          return var1;
  1390.       }
  1391.    }
  1392.  
  1393.    public Point getLocation(Point var1) {
  1394.       if (var1 == null) {
  1395.          return new Point(this.getX(), this.getY());
  1396.       } else {
  1397.          var1.setLocation(this.getX(), this.getY());
  1398.          return var1;
  1399.       }
  1400.    }
  1401.  
  1402.    public int getX() {
  1403.       return this._bounds.x;
  1404.    }
  1405.  
  1406.    public int getY() {
  1407.       return this._bounds.y;
  1408.    }
  1409.  
  1410.    public int getWidth() {
  1411.       return this._bounds.width;
  1412.    }
  1413.  
  1414.    public int getHeight() {
  1415.       return this._bounds.height;
  1416.    }
  1417.  
  1418.    public boolean hasFocus() {
  1419.       return this.getFlag(4);
  1420.    }
  1421.  
  1422.    public boolean isOpaque() {
  1423.       return this.getFlag(5);
  1424.    }
  1425.  
  1426.    public void setOpaque(boolean var1) {
  1427.       boolean var2 = this.getFlag(5);
  1428.       this.setFlag(5, var1);
  1429.       this.firePropertyChange("opaque", var2, var1);
  1430.    }
  1431.  
  1432.    boolean rectangleIsObscured(int var1, int var2, int var3, int var4) {
  1433.       int var5 = ((Container)this).getComponentCount();
  1434.  
  1435.       for(int var6 = 0; var6 < var5; ++var6) {
  1436.          Component var7 = ((Container)this).getComponent(var6);
  1437.          Rectangle var8;
  1438.          if (var7 instanceof JComponent) {
  1439.             var8 = ((JComponent)var7)._bounds;
  1440.          } else {
  1441.             var8 = var7.getBounds();
  1442.          }
  1443.  
  1444.          if (var1 >= var8.x && var1 + var3 <= var8.x + var8.width && var2 >= var8.y && var2 + var4 <= var8.y + var8.height && var7.isVisible()) {
  1445.             if (var7 instanceof JComponent) {
  1446.                return ((JComponent)var7).isOpaque();
  1447.             }
  1448.  
  1449.             return false;
  1450.          }
  1451.       }
  1452.  
  1453.       return false;
  1454.    }
  1455.  
  1456.    static final void computeVisibleRect(Component var0, Rectangle var1) {
  1457.       Container var2 = var0.getParent();
  1458.       Rectangle var3 = var0.getBounds();
  1459.       if (var2 != null && !(var2 instanceof Window) && !(var2 instanceof Applet)) {
  1460.          computeVisibleRect(var2, var1);
  1461.          var1.x -= var3.x;
  1462.          var1.y -= var3.y;
  1463.          SwingUtilities.computeIntersection(0, 0, var3.width, var3.height, var1);
  1464.       } else {
  1465.          var1.setBounds(0, 0, var3.width, var3.height);
  1466.       }
  1467.  
  1468.    }
  1469.  
  1470.    public void computeVisibleRect(Rectangle var1) {
  1471.       computeVisibleRect(this, var1);
  1472.    }
  1473.  
  1474.    public Rectangle getVisibleRect() {
  1475.       Rectangle var1 = new Rectangle();
  1476.       this.computeVisibleRect(var1);
  1477.       return var1;
  1478.    }
  1479.  
  1480.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  1481.       if (this.changeSupport != null) {
  1482.          this.changeSupport.firePropertyChange(var1, var2, var3);
  1483.       }
  1484.  
  1485.    }
  1486.  
  1487.    public void firePropertyChange(String var1, byte var2, byte var3) {
  1488.       if (this.changeSupport != null && var2 != var3) {
  1489.          this.changeSupport.firePropertyChange(var1, new Byte(var2), new Byte(var3));
  1490.       }
  1491.  
  1492.    }
  1493.  
  1494.    public void firePropertyChange(String var1, char var2, char var3) {
  1495.       if (this.changeSupport != null && var2 != var3) {
  1496.          this.changeSupport.firePropertyChange(var1, new Character(var2), new Character(var3));
  1497.       }
  1498.  
  1499.    }
  1500.  
  1501.    public void firePropertyChange(String var1, short var2, short var3) {
  1502.       if (this.changeSupport != null && var2 != var3) {
  1503.          this.changeSupport.firePropertyChange(var1, new Short(var2), new Short(var3));
  1504.       }
  1505.  
  1506.    }
  1507.  
  1508.    public void firePropertyChange(String var1, int var2, int var3) {
  1509.       if (this.changeSupport != null && var2 != var3) {
  1510.          this.changeSupport.firePropertyChange(var1, new Integer(var2), new Integer(var3));
  1511.       }
  1512.  
  1513.    }
  1514.  
  1515.    public void firePropertyChange(String var1, long var2, long var4) {
  1516.       if (this.changeSupport != null && var2 != var4) {
  1517.          this.changeSupport.firePropertyChange(var1, new Long(var2), new Long(var4));
  1518.       }
  1519.  
  1520.    }
  1521.  
  1522.    public void firePropertyChange(String var1, float var2, float var3) {
  1523.       if (this.changeSupport != null && var2 != var3) {
  1524.          this.changeSupport.firePropertyChange(var1, new Float(var2), new Float(var3));
  1525.       }
  1526.  
  1527.    }
  1528.  
  1529.    public void firePropertyChange(String var1, double var2, double var4) {
  1530.       if (this.changeSupport != null && var2 != var4) {
  1531.          this.changeSupport.firePropertyChange(var1, new Double(var2), new Double(var4));
  1532.       }
  1533.  
  1534.    }
  1535.  
  1536.    public void firePropertyChange(String var1, boolean var2, boolean var3) {
  1537.       if (this.changeSupport != null && var2 != var3) {
  1538.          this.changeSupport.firePropertyChange(var1, new Boolean(var2), new Boolean(var3));
  1539.       }
  1540.  
  1541.    }
  1542.  
  1543.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  1544.       if (this.changeSupport == null) {
  1545.          this.changeSupport = new SwingPropertyChangeSupport(this);
  1546.       }
  1547.  
  1548.       this.changeSupport.addPropertyChangeListener(var1);
  1549.    }
  1550.  
  1551.    public synchronized void addPropertyChangeListener(String var1, PropertyChangeListener var2) {
  1552.       if (var2 != null) {
  1553.          if (this.changeSupport == null) {
  1554.             this.changeSupport = new SwingPropertyChangeSupport(this);
  1555.          }
  1556.  
  1557.          this.changeSupport.addPropertyChangeListener(var1, var2);
  1558.       }
  1559.    }
  1560.  
  1561.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  1562.       if (this.changeSupport != null) {
  1563.          this.changeSupport.removePropertyChangeListener(var1);
  1564.       }
  1565.  
  1566.    }
  1567.  
  1568.    public synchronized void removePropertyChangeListener(String var1, PropertyChangeListener var2) {
  1569.       if (var2 != null) {
  1570.          if (this.changeSupport != null) {
  1571.             this.changeSupport.removePropertyChangeListener(var1, var2);
  1572.          }
  1573.       }
  1574.    }
  1575.  
  1576.    protected void fireVetoableChange(String var1, Object var2, Object var3) throws PropertyVetoException {
  1577.       if (this.vetoableChangeSupport != null) {
  1578.          this.vetoableChangeSupport.fireVetoableChange(var1, var2, var3);
  1579.       }
  1580.    }
  1581.  
  1582.    public synchronized void addVetoableChangeListener(VetoableChangeListener var1) {
  1583.       if (this.vetoableChangeSupport == null) {
  1584.          this.vetoableChangeSupport = new VetoableChangeSupport(this);
  1585.       }
  1586.  
  1587.       this.vetoableChangeSupport.addVetoableChangeListener(var1);
  1588.    }
  1589.  
  1590.    public synchronized void removeVetoableChangeListener(VetoableChangeListener var1) {
  1591.       if (this.vetoableChangeSupport != null) {
  1592.          this.vetoableChangeSupport.removeVetoableChangeListener(var1);
  1593.       }
  1594.    }
  1595.  
  1596.    public Container getTopLevelAncestor() {
  1597.       for(Object var1 = this; var1 != null; var1 = ((Component)var1).getParent()) {
  1598.          if (var1 instanceof Window || var1 instanceof Applet) {
  1599.             return (Container)var1;
  1600.          }
  1601.       }
  1602.  
  1603.       return null;
  1604.    }
  1605.  
  1606.    public void addAncestorListener(AncestorListener var1) {
  1607.       if (this.ancestorNotifier == null) {
  1608.          this.ancestorNotifier = new AncestorNotifier(this);
  1609.       }
  1610.  
  1611.       this.ancestorNotifier.addAncestorListener(var1);
  1612.    }
  1613.  
  1614.    public void removeAncestorListener(AncestorListener var1) {
  1615.       if (this.ancestorNotifier != null) {
  1616.          this.ancestorNotifier.removeAncestorListener(var1);
  1617.          if (this.ancestorNotifier.listenerList.getListenerList().length == 0) {
  1618.             this.ancestorNotifier.removeAllListeners();
  1619.             this.ancestorNotifier = null;
  1620.          }
  1621.  
  1622.       }
  1623.    }
  1624.  
  1625.    public EventListener[] getListeners(Class var1) {
  1626.       EventListener[] var2 = this.listenerList.getListeners(var1);
  1627.       return var2.length == 0 ? super.getListeners(var1) : var2;
  1628.    }
  1629.  
  1630.    public void addNotify() {
  1631.       super.addNotify();
  1632.       this.firePropertyChange("ancestor", (Object)null, ((Component)this).getParent());
  1633.       this.registerWithKeyboardManager(false);
  1634.    }
  1635.  
  1636.    public void removeNotify() {
  1637.       super.removeNotify();
  1638.       this.clearFocusOwners();
  1639.       this.firePropertyChange("ancestor", ((Component)this).getParent(), (Object)null);
  1640.       this.unregisterWithKeyboardManager();
  1641.       if (this.getCreatedDoubleBuffer()) {
  1642.          RepaintManager.currentManager(this).resetDoubleBuffer();
  1643.          this.setCreatedDoubleBuffer(false);
  1644.       }
  1645.  
  1646.    }
  1647.  
  1648.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  1649.       RepaintManager.currentManager(this).addDirtyRegion(this, var3, var4, var5, var6);
  1650.    }
  1651.  
  1652.    public void repaint(Rectangle var1) {
  1653.       this.repaint(0L, var1.x, var1.y, var1.width, var1.height);
  1654.    }
  1655.  
  1656.    public void revalidate() {
  1657.       if (((Component)this).getParent() == null) {
  1658.          ((Container)this).invalidate();
  1659.       } else if (SwingUtilities.isEventDispatchThread()) {
  1660.          ((Container)this).invalidate();
  1661.          RepaintManager.currentManager(this).addInvalidComponent(this);
  1662.       } else {
  1663.          1 var1 = new 1(this);
  1664.          SwingUtilities.invokeLater(var1);
  1665.       }
  1666.  
  1667.    }
  1668.  
  1669.    public boolean isValidateRoot() {
  1670.       return false;
  1671.    }
  1672.  
  1673.    public boolean isOptimizedDrawingEnabled() {
  1674.       return true;
  1675.    }
  1676.  
  1677.    public void paintImmediately(int var1, int var2, int var3, int var4) {
  1678.       Object var5 = this;
  1679.       if (((Component)this).isShowing()) {
  1680.          while(!((JComponent)var5).isOpaque()) {
  1681.             Container var6 = ((Component)var5).getParent();
  1682.             if (var6 == null) {
  1683.                break;
  1684.             }
  1685.  
  1686.             Rectangle var7;
  1687.             if (var5 instanceof JComponent) {
  1688.                var7 = ((JComponent)var5)._bounds;
  1689.             } else {
  1690.                var7 = ((Component)var5).getBounds();
  1691.             }
  1692.  
  1693.             var1 += var7.x;
  1694.             var2 += var7.y;
  1695.             var5 = var6;
  1696.             if (!(var6 instanceof JComponent)) {
  1697.                break;
  1698.             }
  1699.          }
  1700.  
  1701.          if (var5 instanceof JComponent) {
  1702.             ((JComponent)var5)._paintImmediately(var1, var2, var3, var4);
  1703.          } else {
  1704.             ((Component)var5).repaint(var1, var2, var3, var4);
  1705.          }
  1706.  
  1707.       }
  1708.    }
  1709.  
  1710.    public void paintImmediately(Rectangle var1) {
  1711.       this.paintImmediately(var1.x, var1.y, var1.width, var1.height);
  1712.    }
  1713.  
  1714.    boolean alwaysOnTop() {
  1715.       return false;
  1716.    }
  1717.  
  1718.    void setPaintingChild(Component var1) {
  1719.       this.paintingChild = var1;
  1720.    }
  1721.  
  1722.    void _paintImmediately(int var1, int var2, int var3, int var4) {
  1723.       int var12 = 0;
  1724.       int var13 = 0;
  1725.       boolean var14 = false;
  1726.       JComponent var15 = null;
  1727.       JComponent var16 = this;
  1728.       RepaintManager var17 = RepaintManager.currentManager(this);
  1729.       Vector var18 = new Vector(7);
  1730.       int var19 = -1;
  1731.       int var20 = 0;
  1732.       int var11 = 0;
  1733.       int var10 = 0;
  1734.       byte var9 = 0;
  1735.       byte var8 = 0;
  1736.       this.paintImmediatelyClip.x = var1;
  1737.       this.paintImmediatelyClip.y = var2;
  1738.       this.paintImmediatelyClip.width = var3;
  1739.       this.paintImmediatelyClip.height = var4;
  1740.       boolean var21 = this.alwaysOnTop() && this.isOpaque();
  1741.  
  1742.       Object var6;
  1743.       for(var6 = this; var6 != null && !(var6 instanceof Window) && !(var6 instanceof Applet); var6 = ((Component)var6).getParent()) {
  1744.          var18.addElement(var6);
  1745.          if (!var21 && var6 instanceof JComponent && !((JComponent)var6).isOptimizedDrawingEnabled()) {
  1746.             var16 = (JComponent)var6;
  1747.             var19 = var20;
  1748.             var13 = 0;
  1749.             var12 = 0;
  1750.             var14 = false;
  1751.          }
  1752.  
  1753.          ++var20;
  1754.          if (var17.isDoubleBufferingEnabled() && var6 instanceof JComponent && ((JComponent)var6).isDoubleBuffered()) {
  1755.             var14 = true;
  1756.             var15 = (JComponent)var6;
  1757.          }
  1758.  
  1759.          if (!var21) {
  1760.             Rectangle var7;
  1761.             if (var6 instanceof JComponent) {
  1762.                var7 = ((JComponent)var6)._bounds;
  1763.             } else {
  1764.                var7 = ((Component)var6).getBounds();
  1765.             }
  1766.  
  1767.             var10 = var7.width;
  1768.             var11 = var7.height;
  1769.             SwingUtilities.computeIntersection(var8, var9, var10, var11, this.paintImmediatelyClip);
  1770.             Rectangle var10000 = this.paintImmediatelyClip;
  1771.             var10000.x += var7.x;
  1772.             var10000 = this.paintImmediatelyClip;
  1773.             var10000.y += var7.y;
  1774.             var12 += var7.x;
  1775.             var13 += var7.y;
  1776.          }
  1777.       }
  1778.  
  1779.       if (var6 != null && ((Component)var6).getPeer() != null) {
  1780.          if (this.paintImmediatelyClip.width > 0 && this.paintImmediatelyClip.height > 0) {
  1781.             Rectangle var44 = this.paintImmediatelyClip;
  1782.             var44.x -= var12;
  1783.             var44 = this.paintImmediatelyClip;
  1784.             var44.y -= var13;
  1785.             if (var16 != this) {
  1786.                for(int var23 = var19; var23 > 0; --var23) {
  1787.                   Component var22 = (Component)var18.elementAt(var23);
  1788.                   if (var22 instanceof JComponent) {
  1789.                      ((JComponent)var22).setPaintingChild((Component)var18.elementAt(var23 - 1));
  1790.                   }
  1791.                }
  1792.             }
  1793.  
  1794.             try {
  1795.                Graphics var5;
  1796.                try {
  1797.                   Graphics var41 = var16.getGraphics();
  1798.                   var5 = SwingGraphics.createSwingGraphics(var41);
  1799.                   var41.dispose();
  1800.                } catch (NullPointerException var37) {
  1801.                   var5 = null;
  1802.                   ((Throwable)var37).printStackTrace();
  1803.                }
  1804.  
  1805.                if (var5 != null) {
  1806.                   Image var42;
  1807.                   if (var14 && (var42 = var17.getOffscreenBuffer(var15, this.paintImmediatelyClip.width, this.paintImmediatelyClip.height)) != null && var42.getWidth((ImageObserver)null) > 0 && var42.getHeight((ImageObserver)null) > 0) {
  1808.                      this.paintWithBuffer(var16, var5, this.paintImmediatelyClip, var42);
  1809.                      var5.dispose();
  1810.                      return;
  1811.                   }
  1812.  
  1813.                   var5.setClip(this.paintImmediatelyClip.x, this.paintImmediatelyClip.y, this.paintImmediatelyClip.width, this.paintImmediatelyClip.height);
  1814.  
  1815.                   try {
  1816.                      var16.paint(var5);
  1817.                      return;
  1818.                   } finally {
  1819.                      var5.dispose();
  1820.                   }
  1821.                }
  1822.  
  1823.                System.err.println("In paintImmediately null graphics");
  1824.             } finally {
  1825.                if (var16 != this) {
  1826.                   for(int var29 = var19; var29 > 0; --var29) {
  1827.                      Component var28 = (Component)var18.elementAt(var29);
  1828.                      if (var28 instanceof JComponent) {
  1829.                         ((JComponent)var28).setPaintingChild((Component)null);
  1830.                      }
  1831.                   }
  1832.                }
  1833.  
  1834.                var18.removeAllElements();
  1835.             }
  1836.  
  1837.          }
  1838.       }
  1839.    }
  1840.  
  1841.    private void paintWithBuffer(JComponent var1, Graphics var2, Rectangle var3, Image var4) {
  1842.       Graphics var5 = var4.getGraphics();
  1843.       Graphics var6 = SwingGraphics.createSwingGraphics(var5);
  1844.       var5.dispose();
  1845.       int var7 = var4.getWidth((ImageObserver)null);
  1846.       int var8 = var4.getHeight((ImageObserver)null);
  1847.       if (var7 > var3.width) {
  1848.          var7 = var3.width;
  1849.       }
  1850.  
  1851.       if (var8 > var3.height) {
  1852.          var8 = var3.height;
  1853.       }
  1854.  
  1855.       try {
  1856.          var1.setFlag(2, true);
  1857.          var1.setFlag(3, true);
  1858.          int var9 = var3.x;
  1859.  
  1860.          for(int var11 = var3.x + var3.width; var9 < var11; var9 += var7) {
  1861.             int var10 = var3.y;
  1862.  
  1863.             for(int var12 = var3.y + var3.height; var10 < var12; var10 += var8) {
  1864.                if (var10 + var8 >= var12 && var9 + var7 >= var11) {
  1865.                   var1.setFlag(3, false);
  1866.                }
  1867.  
  1868.                var6.translate(-var9, -var10);
  1869.                var6.setClip(var9, var10, var7, var8);
  1870.                var1.paint(var6);
  1871.                var2.setClip(var9, var10, var7, var8);
  1872.                var2.drawImage(var4, var9, var10, var1);
  1873.                var6.translate(var9, var10);
  1874.             }
  1875.          }
  1876.       } finally {
  1877.          var1.setFlag(2, false);
  1878.          var1.setFlag(3, false);
  1879.          var6.dispose();
  1880.       }
  1881.  
  1882.    }
  1883.  
  1884.    boolean rectangleIsObscuredBySibling(int var1, int var2, int var3, int var4, int var5) {
  1885.       for(int var6 = var1 - 1; var6 >= 0; --var6) {
  1886.          Component var7 = ((Container)this).getComponent(var6);
  1887.          if (var7.isVisible()) {
  1888.             Rectangle var8;
  1889.             if (var7 instanceof JComponent) {
  1890.                if (!((JComponent)var7).isOpaque()) {
  1891.                   continue;
  1892.                }
  1893.  
  1894.                var8 = ((JComponent)var7).getBounds(this.tmpRect);
  1895.             } else {
  1896.                var8 = var7.getBounds();
  1897.             }
  1898.  
  1899.             if (var2 >= var8.x && var2 + var4 <= var8.x + var8.width && var3 >= var8.y && var3 + var5 <= var8.y + var8.height) {
  1900.                return true;
  1901.             }
  1902.          }
  1903.       }
  1904.  
  1905.       return false;
  1906.    }
  1907.  
  1908.    boolean checkIfChildObscuredBySibling() {
  1909.       return true;
  1910.    }
  1911.  
  1912.    private void setFlag(int var1, boolean var2) {
  1913.       if (var2) {
  1914.          this.flags |= 1 << var1;
  1915.       } else {
  1916.          this.flags &= ~(1 << var1);
  1917.       }
  1918.  
  1919.    }
  1920.  
  1921.    private boolean getFlag(int var1) {
  1922.       int var2 = 1 << var1;
  1923.       return (this.flags & var2) == var2;
  1924.    }
  1925.  
  1926.    public void setDoubleBuffered(boolean var1) {
  1927.       this.setFlag(1, var1);
  1928.    }
  1929.  
  1930.    public boolean isDoubleBuffered() {
  1931.       return this.getFlag(1);
  1932.    }
  1933.  
  1934.    public JRootPane getRootPane() {
  1935.       return SwingUtilities.getRootPane(this);
  1936.    }
  1937.  
  1938.    void compWriteObjectNotify() {
  1939.       if (this.field_0 != null) {
  1940.          this.field_0.uninstallUI(this);
  1941.       }
  1942.  
  1943.       if (this.getToolTipText() != null || this instanceof JTableHeader) {
  1944.          ToolTipManager.sharedInstance().unregisterComponent(this);
  1945.       }
  1946.  
  1947.    }
  1948.  
  1949.    void enableSerialization() {
  1950.       ((Component)this).addFocusListener(new EnableSerializationFocusListener(this, (1)null));
  1951.    }
  1952.  
  1953.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  1954.       var1.defaultReadObject();
  1955.       ReadObjectCallback var2 = (ReadObjectCallback)readObjectCallbacks.get(var1);
  1956.       if (var2 == null) {
  1957.          try {
  1958.             readObjectCallbacks.put(var1, var2 = new ReadObjectCallback(this, var1));
  1959.          } catch (Exception var4) {
  1960.             throw new IOException(((Throwable)var4).toString());
  1961.          }
  1962.       }
  1963.  
  1964.       javax.swing.JComponent.ReadObjectCallback.access$400(var2, this);
  1965.       if (this.getToolTipText() != null) {
  1966.          ToolTipManager.sharedInstance().registerComponent(this);
  1967.       }
  1968.  
  1969.    }
  1970.  
  1971.    private void writeObject(ObjectOutputStream var1) throws IOException {
  1972.       var1.defaultWriteObject();
  1973.       if (this.field_0 != null && this.getUIClassID().equals("ComponentUI")) {
  1974.          this.field_0.installUI(this);
  1975.       }
  1976.  
  1977.    }
  1978.  
  1979.    protected String paramString() {
  1980.       String var1 = this.preferredSize != null ? this.preferredSize.toString() : "";
  1981.       String var2 = this.minimumSize != null ? this.minimumSize.toString() : "";
  1982.       String var3 = this.maximumSize != null ? this.maximumSize.toString() : "";
  1983.       String var4 = this.border != null ? this.border.toString() : "";
  1984.       return super.paramString() + ",alignmentX=" + this.alignmentX + ",alignmentY=" + this.alignmentY + ",border=" + var4 + ",flags=" + this.flags + ",maximumSize=" + var3 + ",minimumSize=" + var2 + ",preferredSize=" + var1;
  1985.    }
  1986.  
  1987.    // $FF: synthetic method
  1988.    static Hashtable access$300() {
  1989.       return readObjectCallbacks;
  1990.    }
  1991. }
  1992.