home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / awt / Container.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  14.1 KB  |  886 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.ContainerEvent;
  4. import java.awt.event.ContainerListener;
  5. import java.awt.event.KeyEvent;
  6. import java.awt.peer.ContainerPeer;
  7. import java.awt.peer.LightweightPeer;
  8. import java.io.IOException;
  9. import java.io.ObjectInputStream;
  10. import java.io.ObjectOutputStream;
  11. import java.io.PrintStream;
  12. import java.io.PrintWriter;
  13.  
  14. public abstract class Container extends Component {
  15.    int ncomponents;
  16.    Component[] component = new Component[4];
  17.    LayoutManager layoutMgr;
  18.    private LightweightDispatcher dispatcher;
  19.    private Dimension maxSize;
  20.    transient ContainerListener containerListener;
  21.    private static final long serialVersionUID = 4613797578919906343L;
  22.    private int containerSerializedDataVersion = 1;
  23.  
  24.    protected Container() {
  25.    }
  26.  
  27.    public int getComponentCount() {
  28.       return this.countComponents();
  29.    }
  30.  
  31.    /** @deprecated */
  32.    public int countComponents() {
  33.       return this.ncomponents;
  34.    }
  35.  
  36.    public Component getComponent(int var1) {
  37.       Object var3 = ((Component)this).getTreeLock();
  38.       synchronized(var3){}
  39.  
  40.       Component var2;
  41.       try {
  42.          if (var1 < 0 || var1 >= this.ncomponents) {
  43.             throw new ArrayIndexOutOfBoundsException("No such child: " + var1);
  44.          }
  45.  
  46.          var2 = this.component[var1];
  47.       } catch (Throwable var6) {
  48.          throw var6;
  49.       }
  50.  
  51.       return var2;
  52.    }
  53.  
  54.    public Component[] getComponents() {
  55.       Object var2 = ((Component)this).getTreeLock();
  56.       synchronized(var2){}
  57.  
  58.       Component[] var1;
  59.       try {
  60.          Component[] var4 = new Component[this.ncomponents];
  61.          System.arraycopy(this.component, 0, var4, 0, this.ncomponents);
  62.          var1 = var4;
  63.       } catch (Throwable var6) {
  64.          throw var6;
  65.       }
  66.  
  67.       return var1;
  68.    }
  69.  
  70.    public Insets getInsets() {
  71.       return this.insets();
  72.    }
  73.  
  74.    /** @deprecated */
  75.    public Insets insets() {
  76.       if (super.peer != null && super.peer instanceof ContainerPeer) {
  77.          ContainerPeer var1 = (ContainerPeer)super.peer;
  78.          return var1.insets();
  79.       } else {
  80.          return new Insets(0, 0, 0, 0);
  81.       }
  82.    }
  83.  
  84.    public Component add(Component var1) {
  85.       this.addImpl(var1, (Object)null, -1);
  86.       return var1;
  87.    }
  88.  
  89.    public Component add(String var1, Component var2) {
  90.       this.addImpl(var2, var1, -1);
  91.       return var2;
  92.    }
  93.  
  94.    public Component add(Component var1, int var2) {
  95.       this.addImpl(var1, (Object)null, var2);
  96.       return var1;
  97.    }
  98.  
  99.    public void add(Component var1, Object var2) {
  100.       this.addImpl(var1, var2, -1);
  101.    }
  102.  
  103.    public void add(Component var1, Object var2, int var3) {
  104.       this.addImpl(var1, var2, var3);
  105.    }
  106.  
  107.    protected void addImpl(Component var1, Object var2, int var3) {
  108.       Object var4 = ((Component)this).getTreeLock();
  109.       synchronized(var4){}
  110.  
  111.       try {
  112.          if (var3 > this.ncomponents || var3 < 0 && var3 != -1) {
  113.             throw new IllegalArgumentException("illegal component position");
  114.          }
  115.  
  116.          if (var1 instanceof Container) {
  117.             for(Container var6 = this; var6 != null; var6 = var6.parent) {
  118.                if (var6 == var1) {
  119.                   throw new IllegalArgumentException("adding container's parent to itself");
  120.                }
  121.             }
  122.          }
  123.  
  124.          if (var1 instanceof Window) {
  125.             throw new IllegalArgumentException("adding a window to a container");
  126.          }
  127.  
  128.          if (var1.parent != null) {
  129.             var1.parent.remove(var1);
  130.          }
  131.  
  132.          if (this.ncomponents == this.component.length) {
  133.             Component[] var9 = new Component[this.ncomponents * 2];
  134.             System.arraycopy(this.component, 0, var9, 0, this.ncomponents);
  135.             this.component = var9;
  136.          }
  137.  
  138.          if (var3 != -1 && var3 != this.ncomponents) {
  139.             System.arraycopy(this.component, var3, this.component, var3 + 1, this.ncomponents - var3);
  140.             this.component[var3] = var1;
  141.             ++this.ncomponents;
  142.          } else {
  143.             this.component[this.ncomponents++] = var1;
  144.          }
  145.  
  146.          var1.parent = this;
  147.          if (super.valid) {
  148.             this.invalidate();
  149.          }
  150.  
  151.          if (super.peer != null) {
  152.             var1.addNotify();
  153.          }
  154.  
  155.          if (this.layoutMgr != null) {
  156.             if (this.layoutMgr instanceof LayoutManager2) {
  157.                ((LayoutManager2)this.layoutMgr).addLayoutComponent(var1, var2);
  158.             } else if (var2 instanceof String) {
  159.                this.layoutMgr.addLayoutComponent((String)var2, var1);
  160.             }
  161.          }
  162.  
  163.          if (this.containerListener != null || (super.eventMask & 2L) != 0L) {
  164.             ContainerEvent var10 = new ContainerEvent(this, 300, var1);
  165.             this.processEvent(var10);
  166.          }
  167.       } catch (Throwable var8) {
  168.          throw var8;
  169.       }
  170.  
  171.    }
  172.  
  173.    public void remove(int var1) {
  174.       Object var2 = ((Component)this).getTreeLock();
  175.       synchronized(var2){}
  176.  
  177.       try {
  178.          Component var4 = this.component[var1];
  179.          if (super.peer != null) {
  180.             var4.removeNotify();
  181.          }
  182.  
  183.          if (this.layoutMgr != null) {
  184.             this.layoutMgr.removeLayoutComponent(var4);
  185.          }
  186.  
  187.          var4.parent = null;
  188.          System.arraycopy(this.component, var1 + 1, this.component, var1, this.ncomponents - var1 - 1);
  189.          this.component[--this.ncomponents] = null;
  190.          if (super.valid) {
  191.             this.invalidate();
  192.          }
  193.  
  194.          if (this.containerListener != null || (super.eventMask & 2L) != 0L) {
  195.             ContainerEvent var5 = new ContainerEvent(this, 301, var4);
  196.             this.processEvent(var5);
  197.          }
  198.       } catch (Throwable var7) {
  199.          throw var7;
  200.       }
  201.  
  202.    }
  203.  
  204.    public void remove(Component var1) {
  205.       Object var2 = ((Component)this).getTreeLock();
  206.       synchronized(var2){}
  207.  
  208.       try {
  209.          if (var1.parent == this) {
  210.             Component[] var4 = this.component;
  211.             int var5 = this.ncomponents;
  212.  
  213.             while(true) {
  214.                --var5;
  215.                if (var5 < 0) {
  216.                   break;
  217.                }
  218.  
  219.                if (var4[var5] == var1) {
  220.                   this.remove(var5);
  221.                }
  222.             }
  223.          }
  224.       } catch (Throwable var7) {
  225.          throw var7;
  226.       }
  227.  
  228.    }
  229.  
  230.    public void removeAll() {
  231.       Object var1 = ((Component)this).getTreeLock();
  232.       synchronized(var1){}
  233.  
  234.       try {
  235.          while(this.ncomponents > 0) {
  236.             Component var3 = this.component[--this.ncomponents];
  237.             this.component[this.ncomponents] = null;
  238.             if (super.peer != null) {
  239.                var3.removeNotify();
  240.             }
  241.  
  242.             if (this.layoutMgr != null) {
  243.                this.layoutMgr.removeLayoutComponent(var3);
  244.             }
  245.  
  246.             var3.parent = null;
  247.             if (this.containerListener != null || (super.eventMask & 2L) != 0L) {
  248.                ContainerEvent var4 = new ContainerEvent(this, 301, var3);
  249.                this.processEvent(var4);
  250.             }
  251.          }
  252.  
  253.          if (super.valid) {
  254.             this.invalidate();
  255.          }
  256.       } catch (Throwable var6) {
  257.          throw var6;
  258.       }
  259.  
  260.    }
  261.  
  262.    public LayoutManager getLayout() {
  263.       return this.layoutMgr;
  264.    }
  265.  
  266.    public void setLayout(LayoutManager var1) {
  267.       this.layoutMgr = var1;
  268.       if (super.valid) {
  269.          this.invalidate();
  270.       }
  271.  
  272.    }
  273.  
  274.    public void doLayout() {
  275.       this.layout();
  276.    }
  277.  
  278.    /** @deprecated */
  279.    public void layout() {
  280.       LayoutManager var1 = this.layoutMgr;
  281.       if (var1 != null) {
  282.          var1.layoutContainer(this);
  283.       }
  284.  
  285.    }
  286.  
  287.    public void invalidate() {
  288.       if (this.layoutMgr instanceof LayoutManager2) {
  289.          LayoutManager2 var1 = (LayoutManager2)this.layoutMgr;
  290.          var1.invalidateLayout(this);
  291.       }
  292.  
  293.       super.invalidate();
  294.    }
  295.  
  296.    public void validate() {
  297.       if (!super.valid) {
  298.          Object var1 = ((Component)this).getTreeLock();
  299.          synchronized(var1){}
  300.  
  301.          try {
  302.             if (!super.valid && super.peer != null) {
  303.                ((Component)this).getCursor();
  304.                ContainerPeer var3 = null;
  305.                if (super.peer instanceof ContainerPeer) {
  306.                   var3 = (ContainerPeer)super.peer;
  307.                }
  308.  
  309.                if (var3 != null) {
  310.                   var3.beginValidate();
  311.                }
  312.  
  313.                this.validateTree();
  314.                super.valid = true;
  315.                if (var3 != null) {
  316.                   var3.endValidate();
  317.                }
  318.             }
  319.          } catch (Throwable var5) {
  320.             throw var5;
  321.          }
  322.  
  323.       }
  324.    }
  325.  
  326.    protected void validateTree() {
  327.       if (!super.valid) {
  328.          this.doLayout();
  329.          Component[] var1 = this.component;
  330.  
  331.          for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  332.             Component var3 = var1[var2];
  333.             if (var3 instanceof Container && !(var3 instanceof Window) && !var3.valid) {
  334.                ((Container)var3).validateTree();
  335.             } else {
  336.                var3.validate();
  337.             }
  338.          }
  339.       }
  340.  
  341.       super.valid = true;
  342.    }
  343.  
  344.    public Dimension getPreferredSize() {
  345.       return this.preferredSize();
  346.    }
  347.  
  348.    /** @deprecated */
  349.    public Dimension preferredSize() {
  350.       Dimension var1 = super.prefSize;
  351.       if (var1 != null && ((Component)this).isValid()) {
  352.          return var1;
  353.       } else {
  354.          Object var3 = ((Component)this).getTreeLock();
  355.          synchronized(var3){}
  356.  
  357.          Dimension var2;
  358.          try {
  359.             super.prefSize = this.layoutMgr != null ? this.layoutMgr.preferredLayoutSize(this) : super.preferredSize();
  360.             var2 = super.prefSize;
  361.          } catch (Throwable var6) {
  362.             throw var6;
  363.          }
  364.  
  365.          return var2;
  366.       }
  367.    }
  368.  
  369.    public Dimension getMinimumSize() {
  370.       return this.minimumSize();
  371.    }
  372.  
  373.    /** @deprecated */
  374.    public Dimension minimumSize() {
  375.       Dimension var1 = super.minSize;
  376.       if (var1 != null && ((Component)this).isValid()) {
  377.          return var1;
  378.       } else {
  379.          Object var3 = ((Component)this).getTreeLock();
  380.          synchronized(var3){}
  381.  
  382.          Dimension var2;
  383.          try {
  384.             super.minSize = this.layoutMgr != null ? this.layoutMgr.minimumLayoutSize(this) : super.minimumSize();
  385.             var2 = super.minSize;
  386.          } catch (Throwable var6) {
  387.             throw var6;
  388.          }
  389.  
  390.          return var2;
  391.       }
  392.    }
  393.  
  394.    public Dimension getMaximumSize() {
  395.       Dimension var1 = this.maxSize;
  396.       if (var1 != null && ((Component)this).isValid()) {
  397.          return var1;
  398.       } else {
  399.          if (this.layoutMgr instanceof LayoutManager2) {
  400.             Object var2 = ((Component)this).getTreeLock();
  401.             synchronized(var2){}
  402.  
  403.             try {
  404.                LayoutManager2 var4 = (LayoutManager2)this.layoutMgr;
  405.                this.maxSize = var4.maximumLayoutSize(this);
  406.             } catch (Throwable var6) {
  407.                throw var6;
  408.             }
  409.          } else {
  410.             this.maxSize = super.getMaximumSize();
  411.          }
  412.  
  413.          return this.maxSize;
  414.       }
  415.    }
  416.  
  417.    public float getAlignmentX() {
  418.       float var1;
  419.       if (this.layoutMgr instanceof LayoutManager2) {
  420.          Object var2 = ((Component)this).getTreeLock();
  421.          synchronized(var2){}
  422.  
  423.          try {
  424.             LayoutManager2 var4 = (LayoutManager2)this.layoutMgr;
  425.             var1 = var4.getLayoutAlignmentX(this);
  426.          } catch (Throwable var6) {
  427.             throw var6;
  428.          }
  429.       } else {
  430.          var1 = super.getAlignmentX();
  431.       }
  432.  
  433.       return var1;
  434.    }
  435.  
  436.    public float getAlignmentY() {
  437.       float var1;
  438.       if (this.layoutMgr instanceof LayoutManager2) {
  439.          Object var2 = ((Component)this).getTreeLock();
  440.          synchronized(var2){}
  441.  
  442.          try {
  443.             LayoutManager2 var4 = (LayoutManager2)this.layoutMgr;
  444.             var1 = var4.getLayoutAlignmentY(this);
  445.          } catch (Throwable var6) {
  446.             throw var6;
  447.          }
  448.       } else {
  449.          var1 = super.getAlignmentY();
  450.       }
  451.  
  452.       return var1;
  453.    }
  454.  
  455.    public void paint(Graphics var1) {
  456.       if (((Component)this).isShowing()) {
  457.          int var2 = this.ncomponents;
  458.          Component[] var3 = this.component;
  459.          Rectangle var4 = var1.getClipRect();
  460.  
  461.          for(int var5 = var2 - 1; var5 >= 0; --var5) {
  462.             Component var6 = var3[var5];
  463.             if (var6 != null && var6.peer instanceof LightweightPeer && var6.visible) {
  464.                Rectangle var7 = var6.getBounds();
  465.                if (var4 == null || var7.intersects(var4)) {
  466.                   Graphics var8 = var1.create(var7.x, var7.y, var7.width, var7.height);
  467.                   var8.setFont(var6.getFont());
  468.  
  469.                   try {
  470.                      var6.paint(var8);
  471.                   } finally {
  472.                      var8.dispose();
  473.                   }
  474.                }
  475.             }
  476.          }
  477.       }
  478.  
  479.    }
  480.  
  481.    public void update(Graphics var1) {
  482.       if (((Component)this).isShowing()) {
  483.          if (!(super.peer instanceof LightweightPeer)) {
  484.             var1.setColor(((Component)this).getBackground());
  485.             var1.fillRect(0, 0, super.width, super.height);
  486.             var1.setColor(((Component)this).getForeground());
  487.          }
  488.  
  489.          super.update(var1);
  490.       }
  491.  
  492.    }
  493.  
  494.    public void print(Graphics var1) {
  495.       super.print(var1);
  496.       int var2 = this.ncomponents;
  497.       Component[] var3 = this.component;
  498.       Rectangle var4 = var1.getClipRect();
  499.  
  500.       for(int var5 = var2 - 1; var5 >= 0; --var5) {
  501.          Component var6 = var3[var5];
  502.          if (var6 != null && var6.peer instanceof LightweightPeer) {
  503.             Rectangle var7 = var6.getBounds();
  504.             if (var4 == null || var7.intersects(var4)) {
  505.                Graphics var8 = var1.create(var7.x, var7.y, var7.width, var7.height);
  506.                var8.setFont(var6.getFont());
  507.  
  508.                try {
  509.                   var6.print(var8);
  510.                } finally {
  511.                   var8.dispose();
  512.                }
  513.             }
  514.          }
  515.       }
  516.  
  517.    }
  518.  
  519.    public void paintComponents(Graphics var1) {
  520.       int var2 = this.ncomponents;
  521.       Component[] var3 = this.component;
  522.  
  523.       for(int var4 = var2 - 1; var4 >= 0; --var4) {
  524.          Component var5 = var3[var4];
  525.          if (var5 != null) {
  526.             Graphics var6 = var5.getGraphics();
  527.             Rectangle var7 = var1.getClipRect();
  528.             if (var7 != null) {
  529.                Rectangle var8 = var5.getBounds();
  530.                if (!var8.intersects(var7)) {
  531.                   continue;
  532.                }
  533.  
  534.                Rectangle var9 = var8.intersection(var7);
  535.                var9.translate(-var8.x, -var8.y);
  536.                var6.clipRect(var9.x, var9.y, var9.width, var9.height);
  537.             }
  538.  
  539.             try {
  540.                var5.paintAll(var6);
  541.             } finally {
  542.                var6.dispose();
  543.             }
  544.          }
  545.       }
  546.  
  547.    }
  548.  
  549.    public void printComponents(Graphics var1) {
  550.       int var2 = this.ncomponents;
  551.       Component[] var3 = this.component;
  552.  
  553.       for(int var4 = 0; var4 < var2; ++var4) {
  554.          Component var5 = var3[var4];
  555.          if (var5 != null) {
  556.             Graphics var6 = var1.create(var5.x, var5.y, var5.width, var5.height);
  557.             var6.setFont(var5.getFont());
  558.  
  559.             try {
  560.                var5.printAll(var6);
  561.             } finally {
  562.                var6.dispose();
  563.             }
  564.          }
  565.       }
  566.  
  567.    }
  568.  
  569.    public synchronized void addContainerListener(ContainerListener var1) {
  570.       this.containerListener = AWTEventMulticaster.add(this.containerListener, var1);
  571.       super.newEventsOnly = true;
  572.    }
  573.  
  574.    public void removeContainerListener(ContainerListener var1) {
  575.       this.containerListener = AWTEventMulticaster.remove(this.containerListener, var1);
  576.    }
  577.  
  578.    boolean eventEnabled(AWTEvent var1) {
  579.       int var2 = var1.getID();
  580.       if (var2 != 300 && var2 != 301) {
  581.          return super.eventEnabled(var1);
  582.       } else {
  583.          return (super.eventMask & 2L) != 0L || this.containerListener != null;
  584.       }
  585.    }
  586.  
  587.    protected void processEvent(AWTEvent var1) {
  588.       if (var1 instanceof ContainerEvent) {
  589.          this.processContainerEvent((ContainerEvent)var1);
  590.       } else {
  591.          super.processEvent(var1);
  592.       }
  593.    }
  594.  
  595.    protected void processContainerEvent(ContainerEvent var1) {
  596.       if (this.containerListener != null) {
  597.          switch (((AWTEvent)var1).getID()) {
  598.             case 300:
  599.                this.containerListener.componentAdded(var1);
  600.                return;
  601.             case 301:
  602.                this.containerListener.componentRemoved(var1);
  603.                return;
  604.          }
  605.       }
  606.  
  607.    }
  608.  
  609.    void dispatchEventImpl(AWTEvent var1) {
  610.       if (this.dispatcher != null && this.dispatcher.dispatchEvent(var1)) {
  611.          var1.consume();
  612.          if (super.peer != null) {
  613.             super.peer.handleEvent(var1);
  614.          }
  615.  
  616.       } else {
  617.          super.dispatchEventImpl(var1);
  618.       }
  619.    }
  620.  
  621.    Component getMouseEventTarget(int var1, int var2) {
  622.       int var3 = this.ncomponents;
  623.       Component[] var4 = this.component;
  624.  
  625.       for(int var5 = 0; var5 < var3; ++var5) {
  626.          Component var6 = var4[var5];
  627.          if (var6 != null && var6.contains(var1 - var6.x, var2 - var6.y) && var6.peer instanceof LightweightPeer && var6.visible) {
  628.             if (var6 instanceof Container) {
  629.                Container var7 = (Container)var6;
  630.                Component var8 = var7.getMouseEventTarget(var1 - var7.x, var2 - var7.y);
  631.                if (var8 != null) {
  632.                   return var8;
  633.                }
  634.             } else if (var6.mouseListener != null || (var6.eventMask & 16L) != 0L || var6.mouseMotionListener != null || (var6.eventMask & 32L) != 0L) {
  635.                return var6;
  636.             }
  637.          }
  638.       }
  639.  
  640.       if ((super.mouseListener != null || (super.eventMask & 16L) != 0L || super.mouseMotionListener != null || (super.eventMask & 32L) != 0L) && super.peer instanceof LightweightPeer) {
  641.          return this;
  642.       } else {
  643.          return null;
  644.       }
  645.    }
  646.  
  647.    void proxyEnableEvents(long var1) {
  648.       if (super.peer instanceof LightweightPeer) {
  649.          super.parent.proxyEnableEvents(var1);
  650.       } else {
  651.          if (this.dispatcher != null) {
  652.             this.dispatcher.enableEvents(var1);
  653.          }
  654.  
  655.       }
  656.    }
  657.  
  658.    Window getWindow() {
  659.       Container var1;
  660.       for(var1 = this; !(var1 instanceof Window); var1 = ((Component)var1).getParent()) {
  661.       }
  662.  
  663.       return (Window)var1;
  664.    }
  665.  
  666.    void proxyRequestFocus(Component var1) {
  667.       if (super.peer instanceof LightweightPeer) {
  668.          super.parent.proxyRequestFocus(var1);
  669.       } else {
  670.          if (this.dispatcher.setFocusRequest(var1)) {
  671.             Container var2;
  672.             for(var2 = this; !(var2 instanceof Window); var2 = ((Component)var2).getParent()) {
  673.             }
  674.  
  675.             if (((Window)var2).isActive()) {
  676.                super.peer.requestFocus();
  677.             }
  678.  
  679.             Toolkit.getEventQueue().changeKeyEventFocus(this);
  680.          }
  681.  
  682.       }
  683.    }
  684.  
  685.    /** @deprecated */
  686.    public void deliverEvent(Event var1) {
  687.       Component var2 = this.getComponentAt(var1.x, var1.y);
  688.       if (var2 != null && var2 != this) {
  689.          var1.translate(-var2.x, -var2.y);
  690.          var2.deliverEvent(var1);
  691.       } else {
  692.          ((Component)this).postEvent(var1);
  693.       }
  694.    }
  695.  
  696.    public Component getComponentAt(int var1, int var2) {
  697.       return this.locate(var1, var2);
  698.    }
  699.  
  700.    /** @deprecated */
  701.    public Component locate(int var1, int var2) {
  702.       if (!((Component)this).contains(var1, var2)) {
  703.          return null;
  704.       } else {
  705.          int var3 = this.ncomponents;
  706.          Component[] var4 = this.component;
  707.  
  708.          for(int var5 = 0; var5 < var3; ++var5) {
  709.             Component var6 = var4[var5];
  710.             if (var6 != null && var6.contains(var1 - var6.x, var2 - var6.y)) {
  711.                return var6;
  712.             }
  713.          }
  714.  
  715.          return this;
  716.       }
  717.    }
  718.  
  719.    public Component getComponentAt(Point var1) {
  720.       return this.getComponentAt(var1.x, var1.y);
  721.    }
  722.  
  723.    public void addNotify() {
  724.       super.addNotify();
  725.       if (!(super.peer instanceof LightweightPeer)) {
  726.          this.dispatcher = new LightweightDispatcher(this);
  727.       }
  728.  
  729.       Object var1 = ((Component)this).getTreeLock();
  730.       synchronized(var1){}
  731.  
  732.       try {
  733.          int var3 = this.ncomponents;
  734.          Component[] var4 = this.component;
  735.  
  736.          for(int var5 = 0; var5 < var3; ++var5) {
  737.             var4[var5].addNotify();
  738.          }
  739.       } catch (Throwable var7) {
  740.          throw var7;
  741.       }
  742.  
  743.    }
  744.  
  745.    public void removeNotify() {
  746.       Object var1 = ((Component)this).getTreeLock();
  747.       synchronized(var1){}
  748.  
  749.       try {
  750.          int var3 = this.ncomponents;
  751.          Component[] var4 = this.component;
  752.  
  753.          for(int var5 = 0; var5 < var3; ++var5) {
  754.             var4[var5].removeNotify();
  755.          }
  756.  
  757.          super.removeNotify();
  758.       } catch (Throwable var7) {
  759.          throw var7;
  760.       }
  761.  
  762.    }
  763.  
  764.    public boolean isAncestorOf(Component var1) {
  765.       Container var2;
  766.       if (var1 != null && (var2 = var1.getParent()) != null) {
  767.          while(var2 != null) {
  768.             if (var2 == this) {
  769.                return true;
  770.             }
  771.  
  772.             var2 = ((Component)var2).getParent();
  773.          }
  774.  
  775.          return false;
  776.       } else {
  777.          return false;
  778.       }
  779.    }
  780.  
  781.    protected String paramString() {
  782.       String var1 = super.paramString();
  783.       LayoutManager var2 = this.layoutMgr;
  784.       if (var2 != null) {
  785.          var1 = var1 + ",layout=" + var2.getClass().getName();
  786.       }
  787.  
  788.       return var1;
  789.    }
  790.  
  791.    public void list(PrintStream var1, int var2) {
  792.       super.list(var1, var2);
  793.       int var3 = this.ncomponents;
  794.       Component[] var4 = this.component;
  795.  
  796.       for(int var5 = 0; var5 < var3; ++var5) {
  797.          Component var6 = var4[var5];
  798.          if (var6 != null) {
  799.             var6.list(var1, var2 + 1);
  800.          }
  801.       }
  802.  
  803.    }
  804.  
  805.    public void list(PrintWriter var1, int var2) {
  806.       super.list(var1, var2);
  807.       int var3 = this.ncomponents;
  808.       Component[] var4 = this.component;
  809.  
  810.       for(int var5 = 0; var5 < var3; ++var5) {
  811.          Component var6 = var4[var5];
  812.          if (var6 != null) {
  813.             var6.list(var1, var2 + 1);
  814.          }
  815.       }
  816.  
  817.    }
  818.  
  819.    void setFocusOwner(Component var1) {
  820.       Container var2 = super.parent;
  821.       if (var2 != null) {
  822.          var2.setFocusOwner(var1);
  823.       }
  824.  
  825.    }
  826.  
  827.    void preProcessKeyEvent(KeyEvent var1) {
  828.       Container var2 = super.parent;
  829.       if (var2 != null) {
  830.          var2.preProcessKeyEvent(var1);
  831.       }
  832.  
  833.    }
  834.  
  835.    void postProcessKeyEvent(KeyEvent var1) {
  836.       Container var2 = super.parent;
  837.       if (var2 != null) {
  838.          var2.postProcessKeyEvent(var1);
  839.       }
  840.  
  841.    }
  842.  
  843.    void transferFocus(Component var1) {
  844.       this.nextFocus(var1);
  845.    }
  846.  
  847.    boolean postsOldMouseEvents() {
  848.       return true;
  849.    }
  850.  
  851.    /** @deprecated */
  852.    void nextFocus(Component var1) {
  853.       Container var2 = super.parent;
  854.       if (var2 != null) {
  855.          var2.transferFocus(var1);
  856.       }
  857.  
  858.    }
  859.  
  860.    private void writeObject(ObjectOutputStream var1) throws IOException {
  861.       var1.defaultWriteObject();
  862.       AWTEventMulticaster.save(var1, "containerL", this.containerListener);
  863.       var1.writeObject((Object)null);
  864.    }
  865.  
  866.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  867.       var1.defaultReadObject();
  868.       Component[] var2 = this.component;
  869.  
  870.       for(int var3 = 0; var3 < this.ncomponents; ++var3) {
  871.          var2[var3].parent = this;
  872.       }
  873.  
  874.       Object var4;
  875.       while((var4 = var1.readObject()) != null) {
  876.          String var5 = ((String)var4).intern();
  877.          if (var5 == "containerL") {
  878.             this.addContainerListener((ContainerListener)var1.readObject());
  879.          } else {
  880.             var1.readObject();
  881.          }
  882.       }
  883.  
  884.    }
  885. }
  886.