home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / AttributePanel.java < prev    next >
Text File  |  1998-05-08  |  6KB  |  183 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.  
  21. package borland.samples.jbcl.checkboxcontrol;
  22.  
  23. import java.awt.*;
  24. import java.awt.event.*;
  25. import borland.jbcl.layout.*;
  26. import borland.jbcl.control.*;
  27. import borland.jbcl.model.*;
  28. import borland.jbcl.view.*;
  29. import borland.jbcl.util.*;
  30.  
  31. /**
  32.  * A BevelPanel based attribute panel class. This produces a generic attribute
  33.  * page for displaying attributes/properties and their associated values
  34.  *
  35.  * @version     1.0, 06/10/97
  36.  * @author     Borland Development Team
  37.  */
  38.  
  39. public class AttributePanel extends BevelPanel {
  40.   GridLayout gridLayout1 = new GridLayout();
  41.   GridControl gridControl1 = new GridControl();
  42.   BasicMatrixContainer bmc = new BasicMatrixContainer(0, 2);
  43.   ColumnView[] tempColumns = new ColumnView[2];
  44.  
  45.   /**
  46.    * Constructor the attribute panel and it's UI elements
  47.    */
  48.   public AttributePanel() {
  49.     try {
  50.       jbInit();
  51.     }
  52.     catch (Exception e) {
  53.       e.printStackTrace();
  54.     }
  55.   }
  56.  
  57.   /**
  58.    * UI elements of the attribute panel
  59.    */
  60.   public void jbInit() throws Exception{
  61.     this.setBevelInner(BevelPanel.FLAT);
  62.     tempColumns[0] = new ColumnView();
  63.     tempColumns[0].setAlignment(Alignment.LEFT | Alignment.MIDDLE);
  64.     tempColumns[0].setCaption("Attribute");
  65.     tempColumns[0].setWidth(100);
  66.     tempColumns[1] = new ColumnView();
  67.     tempColumns[1].setAlignment(Alignment.LEFT | Alignment.MIDDLE);
  68.     tempColumns[1].setCaption("Value");
  69.     tempColumns[1].setWidth(305);
  70.     gridControl1.setColumnViews(tempColumns);
  71.     gridControl1.setDragSubfocus(false);
  72.     gridControl1.setEditInPlace(false);
  73.     gridControl1.setGridVisible(false);
  74. //    gridControl1.setHScrollVisible(false);
  75.     gridControl1.setResizableRows(false);
  76.     gridControl1.setRowHeaderVisible(false);
  77.     gridControl1.setSelectRow(true);
  78.     gridControl1.setShowFocus(false);
  79. //    gridControl1.setVScrollVisible(false);
  80.     gridControl1.setModel(bmc);
  81.     gridControl1.setViewManager(new BasicViewManager(new TextItemPainter(), new TextItemEditor()));
  82.     this.setLayout(gridLayout1);
  83.     this.add(gridControl1, null);
  84.   }
  85.  
  86.   /**
  87.    * Add an item name and string value
  88.    * @param name The name of the item to insert
  89.    * @param value The initial string value to set the item to
  90.    */
  91.   public void addItem(String name, String value) {
  92.     // Insert a new row into the container
  93.     bmc.addRow();
  94.  
  95.     // Add the item at the end
  96.     bmc.set(bmc.getRowCount()-2, 0, name);
  97.     bmc.set(bmc.getRowCount()-2, 1, value);
  98.   }
  99.  
  100.   /**
  101.    * Add an item name and boolean value
  102.    * @param name The name of the item to insert
  103.    * @param state The initial boolean value to set the item to
  104.    */
  105.   public void addItem(String name, boolean state) {
  106.     this.addItem(name, (state ? "True" : "False"));
  107.   }
  108.  
  109.   /**
  110.    * Loop through the container. This will remove all occurances
  111.    * of the item just in case there are duplicates.  Use
  112.    * removeItem(int) to remove only a specific item.
  113.    * @param name The string representation of the item to remove
  114.    */
  115.   public void removeItem(String name) {
  116.     for (int i=0;i<bmc.getRowCount();i++) {
  117.       if (bmc.get(i, 0).equals(name) == true)
  118.         bmc.removeRow(i);
  119.     }
  120.   }
  121.  
  122.   /**
  123.    * This will remove only the item specified in the index paramater
  124.    * @param index The index of the item to remove (base 1)
  125.    */
  126.   public void removeItem(int index) {
  127.     bmc.removeRow(index);
  128.   }
  129.  
  130.   /**
  131.    * This will set only the item specified in the index paramater
  132.    * @param index The index of the item to set (base 1)
  133.    * @param state The boolean value to set the specified item to
  134.    */
  135.   public void setValue(int index, boolean state) {
  136.     String value;
  137.     this.setValue(index, (state ? "True" : "False"));
  138.   }
  139.  
  140.   /**
  141.    * This will set only the item specified in the index paramater
  142.    * @param index The index of the item to set (base 1)
  143.    * @param value The string value to set the specified item to
  144.    */
  145.   public void setValue(int index, String value) {
  146.     bmc.set(index, 1, value);
  147.   }
  148.  
  149.   /**
  150.    * Loop through the container. This will set all occurances
  151.    * of the item just in case there are duplicates.  Use
  152.    * setItem(int) to set only a specific item.  If the specified
  153.    * item does not exist, it is added to the display.
  154.    * @param name The string representation of the item to modify
  155.    * @param state The boolean value to set the specified item to
  156.    */
  157.   public void setValue(String name, boolean state) {
  158.     this.setValue(name, (state ? "True" : "False"));
  159.   }
  160.  
  161.   /**
  162.    * Loop through the container. This will set all occurances
  163.    * of the item just in case there are duplicates.  Use
  164.    * setItem(int) to set only a specific item.  If the specified
  165.    * item does not exist, it is added to the display.
  166.    * @param name The string representation of the item to modify
  167.    * @param value The string value to set the specified item to
  168.    */
  169.   public void setValue(String name, String value) {
  170.     boolean foundItem = false;
  171.     if (bmc.getRowCount() > 1) {
  172.       for (int i=0;i<bmc.getRowCount()-1;i++) {
  173.         if (bmc.get(i, 0).equals(name) == true) {
  174.           foundItem = true;
  175.           bmc.set(i, 1, value);
  176.         }
  177.       }
  178.     }
  179.     if (foundItem == false)
  180.       this.addItem(name, value);
  181.   }
  182. }
  183.