KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > app > SelectField


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package nextapp.echo2.app;
31
32 import nextapp.echo2.app.list.AbstractListComponent;
33 import nextapp.echo2.app.list.DefaultListModel;
34 import nextapp.echo2.app.list.ListModel;
35
36 /**
37  * A drop-down select field.
38  */

39 public class SelectField extends AbstractListComponent {
40
41     /**
42      * Creates a new, empty <code>SelectField</code>.
43      */

44     public SelectField() {
45         this((ListModel) null);
46     }
47     
48     /**
49      * Creates a new <code>SelectField</code> with the provided model.
50      *
51      * @param model the model for the <code>SelectField</code>
52      */

53     public SelectField(ListModel model) {
54         super(model, null);
55     }
56     
57     /**
58      * Creates a new <code>SelectField</code> that will initially contain the
59      * provided array of items.
60      *
61      * @param items the items the <code>SelectField</code> will initially
62      * contain
63      */

64     public SelectField(Object JavaDoc[] items) {
65         this(new DefaultListModel(items));
66     }
67     
68     /**
69      * Returns the index of the currently selected item.
70      *
71      * @return the index of the currently selected item
72      */

73     public int getSelectedIndex() {
74         return getSelectionModel().getMinSelectedIndex();
75     }
76     
77     /**
78      * Returns the currently selected item.
79      *
80      * @return the currently selected item
81      */

82     public Object JavaDoc getSelectedItem() {
83         int selectedIndex = getSelectionModel().getMinSelectedIndex();
84         return selectedIndex == -1 ? null : getModel().get(selectedIndex);
85     }
86     
87     /**
88      * Sets the selected index.
89      *
90      * @param index the new selected index
91      */

92     public void setSelectedIndex(int index) {
93         if (index == -1) {
94             getSelectionModel().clearSelection();
95         } else {
96             getSelectionModel().setSelectedIndex(index, true);
97         }
98     }
99     
100     /**
101      * Sets the selected item.
102      *
103      * @param item the new selected item, or null, to select nothing
104      */

105     public void setSelectedItem(Object JavaDoc item) {
106         if (item != null) {
107             ListModel model = getModel();
108             int size = model.size();
109             for (int i = 0; i < size; i++) {
110                 if (item.equals(model.get(i))) {
111                     setSelectedIndex(i);
112                     return;
113                 }
114             }
115         }
116         setSelectedIndex(-1);
117     }
118 }
119
Popular Tags