home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / BasicOrderedTreeContainer.java < prev    next >
Text File  |  1998-05-08  |  2KB  |  57 lines

  1. /*
  2.  * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
  3.  * 
  4.  * This SOURCE CODE FILE, which has been provided by Borland as part
  5.  * of a Borland product for use ONLY by licensed users of the product,
  6.  * includes CONFIDENTIAL and PROPRIETARY information of Borland.  
  7.  *
  8.  * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
  9.  * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
  10.  * THE PRODUCT.
  11.  *
  12.  * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
  13.  * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
  14.  * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
  15.  * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
  16.  * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
  17.  * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
  18.  * CODE FILE.
  19.  */
  20. package borland.samples.intl.beans;
  21.  
  22. import borland.jbcl.model.*;
  23. import borland.jbcl.util.*;
  24.  
  25. /**
  26.  * Extends BasicTreeContainer with a method for adding child nodes
  27.  * to the tree in collated order.
  28.  */
  29. public class BasicOrderedTreeContainer extends BasicTreeContainer {
  30.  
  31.   public BasicOrderedTreeContainer() {
  32.   }
  33.  
  34.   public BasicOrderedTreeContainer(Object root) {
  35.     super(root);
  36.   }
  37.  
  38.   public GraphLocation addOrderedChild(GraphLocation gl, Object data, BinaryComparator binaryComparator) {
  39.     int compareResult;
  40.  
  41.     LinkedTreeNode compareTreeNode = ((LinkedTreeNode) gl).getFirstChild();
  42.     while (compareTreeNode != null) {
  43.       compareResult = binaryComparator.compare(data, get(compareTreeNode));
  44.       if (compareResult < 0) {
  45.         return super.addChild(gl, compareTreeNode, data);
  46.       }
  47.       if (compareResult == 0) {
  48.         return compareTreeNode;
  49.       }
  50.       compareTreeNode = compareTreeNode.getNextSibling();
  51.     }
  52.     return super.addChild(gl, data);
  53.   }
  54.  
  55. }
  56.  
  57.