home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / childlist.java < prev    next >
Text File  |  1995-08-11  |  2KB  |  78 lines

  1. /*
  2.  * @(#)ChildList.java    1.6 95/01/31 Jon Payne
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. /*-
  21.  *    Named Window/DisplayItem Container hierarchy.
  22.  */
  23.  
  24. package awt;
  25.  
  26. import awt.*;
  27. import java.util.*;
  28.  
  29. /**
  30.  * A class used to map names to Layoutable objects in a container
  31.  * hierarchy. 
  32.  *
  33.  * @version 1.6 31 Jan 1995
  34.  * @author Jon Payne
  35.  */
  36. public class ChildList extends Hashtable {
  37.     Vector    list = new Vector(0);
  38.  
  39.     /**
  40.      * Adds a Layoutable with the given name to this ChildList object.
  41.      */
  42.     public void addChild(Layoutable child, String name) {
  43.     if (name != null) {
  44.         if (containsKey(name) || list.indexOf(child) != -1)
  45.         throw new Exception("Duplicate children in window: " + name);
  46.         put(name, child);
  47.     }
  48.     list.addElement(child);
  49.     }
  50.  
  51.     /**
  52.      * Return the Layoutable object with the given name.
  53.      * @returns the Layoutable if found or null otherwise.
  54.      */
  55.     public Layoutable getChild(String name) {
  56.     if (containsKey(name))
  57.         return (Layoutable) get(name);
  58.     else
  59.         return null;
  60.     }
  61.  
  62.     /**
  63.      * Return the Layoutable child given an index.
  64.      */
  65.     public Layoutable getChild(int index) {
  66.     //if (index < 0 || index >= list.size())
  67.     //    return null;
  68.     return (Layoutable) list.elementAt(index);
  69.     }
  70.  
  71.     /**
  72.      * Return the number of children.
  73.      */
  74.     public int length() {
  75.     return list.size();
  76.     }
  77. }
  78.