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