Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/hsqldb/util/ZaurusChoice.java


1   /* Copyright (c) 2001-2002, The HSQL Development Group
2    * All rights reserved.
3    *
4    * Redistribution and use in source and binary forms, with or without
5    * modification, are permitted provided that the following conditions are met:
6    *
7    * Redistributions of source code must retain the above copyright notice, this
8    * list of conditions and the following disclaimer.
9    *
10   * Redistributions in binary form must reproduce the above copyright notice,
11   * this list of conditions and the following disclaimer in the documentation
12   * and/or other materials provided with the distribution.
13   *
14   * Neither the name of the HSQL Development Group nor the names of its
15   * contributors may be used to endorse or promote products derived from this
16   * software without specific prior written permission.
17   *
18   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21   * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, 
22   * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
23   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
24   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29   */
30  
31  
32  package org.hsqldb.util;
33  
34  import java.awt.*;
35  import java.util.Vector;
36  
37  /**
38   * Class declaration
39   *
40   *
41   * @author ulrivo@users
42   * @version 1.0.0
43   */
44  
45  // a Choice for the GUI which implements ZaurusComponent
46  //
47  // in addition to a Choice, a ZaurusChoice saves a vector for values of the items
48  // for instance: in the choice list, there are the labels A,B,C
49  // the corresponding values are 100,200,300
50  // during the defintion process, the values are provided by a second argument to add
51  // getContent() answers the value !!
52  public class ZaurusChoice extends Choice implements ZaurusComponent {
53  
54      final static private int MaxLenInZChoice = 15;
55      Vector                   values;
56      int                      countChanges;
57  
58      public ZaurusChoice() {
59  
60          super();
61  
62          values       = new Vector(20);
63          countChanges = 0;
64      }
65  
66      // restrict strings for the choice to MaxLenInZChoice characters
67      public void add(String item, String value) {
68  
69          int maxChar = MaxLenInZChoice;
70  
71          if (item.length() < MaxLenInZChoice) {
72              maxChar = item.length();
73          }
74  
75          super.add(item.substring(0, maxChar));
76          values.addElement(value);
77      }
78  
79      public void clearChanges() {
80          countChanges = 0;
81      }
82  
83      public void clearContent() {
84          super.select(0);
85      }
86  
87      public String getContent() {
88          return (String) values.elementAt(super.getSelectedIndex());
89      }
90  
91      public boolean hasChanged() {
92          return countChanges > 0;
93      }
94  
95      public void requestFocus() {
96          super.requestFocus();
97      }
98  
99      public void setChanged() {
100         countChanges++;
101     }
102 
103     // set the choice to the element in choice of the corresponding value
104     public void setContent(String s) {
105         super.select(this.findValue(s));
106     }
107 
108     public void setEditable(boolean b) {
109 
110         super.setEnabled(b);
111 
112         if (b) {
113             super.setBackground(Color.white);
114         } else {
115             super.setBackground(Color.lightGray);
116         }    // end of if (b)else
117     }
118 
119     // find for a given value the index in values
120     private int findValue(String s) {
121 
122         for (int i = 0; i < values.size(); i++) {
123             if (s.equals(values.elementAt(i))) {
124                 return i;
125             }    // end of if (s.equals(values.elementAt(i)))
126         }        // end of for (int i=0; i<values.size(); i++)
127 
128         return -1;
129     }
130 }