KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tonbeller > wcf > ui > Select


1 /*
2  * ====================================================================
3  * This software is subject to the terms of the Common Public License
4  * Agreement, available at the following URL:
5  * http://www.opensource.org/licenses/cpl.html .
6  * Copyright (C) 2003-2004 TONBELLER AG.
7  * All Rights Reserved.
8  * You must accept the terms of that agreement to use this software.
9  * ====================================================================
10  *
11  *
12  */

13 package com.tonbeller.wcf.ui;
14
15 import java.util.ArrayList JavaDoc;
16 import java.util.Iterator JavaDoc;
17 import java.util.List JavaDoc;
18
19 import org.w3c.dom.Element JavaDoc;
20 import org.w3c.dom.Node JavaDoc;
21 import org.w3c.dom.NodeList JavaDoc;
22
23 import com.tonbeller.wcf.utils.XoplonNS;
24
25 /**
26  * A Select (ListBox, RadioButtons, etc) may have a type and modelReference. If
27  * both are present, the modelReference will be updated to contain the value of
28  * the selected items.
29  *
30  * @author av
31  */

32 public class Select extends TypedCtrl {
33
34
35   public static void removeAllItems(Element JavaDoc element) {
36     List JavaDoc lis = getItems(element);
37     Iterator JavaDoc en = lis.iterator();
38     while (en.hasNext()) {
39       Element JavaDoc item = (Element JavaDoc) en.next();
40       element.removeChild(item);
41     }
42   }
43
44
45   /** sets selection.
46    * @param li the item to select. Must be a child of element
47    */

48   public static void setSelection(Element JavaDoc element, Element JavaDoc item) {
49     Iterator JavaDoc it = getItems(element).iterator();
50     while (it.hasNext())
51       Item.setSelected((Element JavaDoc)it.next(), false);
52     Item.setSelected(item, true);
53   }
54
55   /** sets selection.
56    * @param items a list of Elements which must be children of element
57    */

58   public static void setSelectedItems(Element JavaDoc element, List JavaDoc items) {
59     Iterator JavaDoc it = getItems(element).iterator();
60     while (it.hasNext())
61       Item.setSelected((Element JavaDoc)it.next(), false);
62     
63     it = items.iterator();
64     while (it.hasNext())
65       Item.setSelected((Element JavaDoc)it.next(), true);
66   }
67
68
69   /** removes item from the selection
70    * @param item the item to remove from selection
71    */

72   public static void removeSelection(Element JavaDoc element, Element JavaDoc item) {
73     Item.setSelected(item, false);
74   }
75
76   /** add list item */
77   public static void addItem(Element JavaDoc element, Element JavaDoc li) {
78     element.appendChild(li);
79   }
80
81   /** remove list item */
82   public static void removeItem(Element JavaDoc element, Element JavaDoc li) {
83     element.removeChild(li);
84   }
85
86   /** return the items */
87   public static List JavaDoc getItems(Element JavaDoc element) {
88     List JavaDoc lis = new ArrayList JavaDoc();
89
90     // iterate children
91
NodeList JavaDoc children = element.getChildNodes();
92     for (int i = 0; i < children.getLength(); ++i) {
93       Node JavaDoc child = children.item(i);
94       if (child.getNodeType() == Node.ELEMENT_NODE) {
95         lis.add(child);
96       }
97     } // iterate children
98

99     return lis;
100   }
101
102   /**
103    * returns the selected items separated by ';'. Counting starts at 1.
104    * This is suitable for the WAP &lt;select&gt; elements iname/ivalue
105    * attribute.
106    */

107   public static void getIValue(Element JavaDoc element) {
108     XoplonNS.getAttribute(element, "ivalue");
109   }
110
111   /**
112    * sets the ivalue attribute for WAP browsers.
113    * @see #getIValue
114    */

115   public static void setIValue(Element JavaDoc element) {
116     List JavaDoc list = getItems(element);
117     Iterator JavaDoc en = list.iterator();
118     int index = 1;
119     StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
120     boolean first = true;
121     while (en.hasNext()) {
122       Element JavaDoc item = (Element JavaDoc) en.next();
123       if (ListItem.isSelected(item)) {
124         if (first)
125           first = false;
126         else
127           sb.append(';');
128         sb.append(index);
129       }
130       ++index;
131     }
132     XoplonNS.setAttribute(element, "ivalue", sb.toString());
133   }
134
135
136
137 }
138
Popular Tags