Revision 202 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.spi/src/main/java/org/gvsig/tools/swing/spi/DelegatedJFieldComponent.java
DelegatedJFieldComponent.java | ||
---|---|---|
37 | 37 |
import java.util.List; |
38 | 38 |
|
39 | 39 |
import javax.swing.DefaultListModel; |
40 |
import javax.swing.ListModel; |
|
41 |
import javax.swing.event.ListDataListener; |
|
40 | 42 |
|
41 | 43 |
import org.gvsig.tools.dynobject.DynClass; |
42 | 44 |
import org.gvsig.tools.dynobject.DynField; |
... | ... | |
54 | 56 |
public abstract class DelegatedJFieldComponent extends AbstractJDynField |
55 | 57 |
implements JDynFieldComponent { |
56 | 58 |
|
57 |
public class NValueField implements NFieldValue { |
|
58 |
|
|
59 |
private final DefaultListModel model; |
|
59 |
public class NValueField extends ArrayList implements NFieldValue, ListModel { |
|
60 | 60 |
private final DynField field; |
61 | 61 |
private int selectedIndex; |
62 |
|
|
62 |
private DefaultListModel model; |
|
63 |
|
|
63 | 64 |
/** |
64 | 65 |
* @param parent |
65 | 66 |
*/ |
66 | 67 |
public NValueField(ValueField parent, DynField field) { |
67 | 68 |
this.field = field; |
68 |
this.model = new DefaultListModel(); |
|
69 | 69 |
this.selectedIndex = -1; |
70 |
model = new DefaultListModel(); |
|
71 |
|
|
72 |
|
|
70 | 73 |
// elems = new ArrayList<Object>(); |
71 | 74 |
|
72 | 75 |
// Object value = parent.getValue(); |
... | ... | |
78 | 81 |
// this.elems = (List) value; |
79 | 82 |
} |
80 | 83 |
|
81 |
public void addItem(int index, Object element) { |
|
82 |
model.add(index, element); |
|
83 |
} |
|
84 |
// public void addItem(int index, Object element) { |
|
85 |
// this.model.add(index, element); |
|
86 |
// this.add(index,element); |
|
87 |
// } |
|
84 | 88 |
|
85 | 89 |
/* |
86 | 90 |
* (non-Javadoc) |
... | ... | |
93 | 97 |
return field.getDefaultValue(); |
94 | 98 |
} |
95 | 99 |
|
96 |
public DefaultListModel getModel() { |
|
97 |
return model; |
|
98 |
} |
|
99 |
|
|
100 | 100 |
/* |
101 | 101 |
* (non-Javadoc) |
102 | 102 |
* |
... | ... | |
104 | 104 |
* org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#getValue() |
105 | 105 |
*/ |
106 | 106 |
public Object getValue() { |
107 |
if (model.isEmpty())
|
|
107 |
if (this.isEmpty())
|
|
108 | 108 |
return null; |
109 |
if ((selectedIndex < 0) || (selectedIndex >= model.getSize()))
|
|
109 |
if ((selectedIndex < 0) || (selectedIndex >= this.size()))
|
|
110 | 110 |
return null; |
111 |
return model.get(selectedIndex);
|
|
111 |
return this.get(selectedIndex);
|
|
112 | 112 |
} |
113 | 113 |
|
114 |
public void removeItem(int index) { |
|
115 |
model.remove(index); |
|
116 |
} |
|
117 |
|
|
118 | 114 |
public void setSelectedIndex(int index) { |
119 | 115 |
selectedIndex = index; |
120 | 116 |
} |
... | ... | |
126 | 122 |
* org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#setValue( |
127 | 123 |
* java.lang.Object) |
128 | 124 |
*/ |
129 |
public void add(Object value) {
|
|
130 |
setValue(value);
|
|
125 |
public void addElement(int index, Object element) {
|
|
126 |
addElement(index, element, element);
|
|
131 | 127 |
} |
132 | 128 |
|
133 |
public void setValue(Object value) {
|
|
134 |
model.add(model.getSize(), value);
|
|
129 |
public void addElement(Object value){
|
|
130 |
addElement(this.size(), value);
|
|
135 | 131 |
} |
136 |
|
|
132 |
|
|
133 |
|
|
134 |
public void addElement(Object value, Object printValue){ |
|
135 |
addElement(this.size(), value, printValue); |
|
136 |
} |
|
137 |
|
|
137 | 138 |
/** |
138 |
* @param index
|
|
139 |
* @param size
|
|
139 | 140 |
* @param value |
141 |
* @param printValue |
|
140 | 142 |
*/ |
141 |
public void add(Integer index, Object value) { |
|
142 |
model.add(index, value); |
|
143 |
private void addElement(int index, Object element, Object printValue) { |
|
144 |
if (printValue==null) return; |
|
145 |
this.add(index, element); |
|
146 |
if (printValue==null) |
|
147 |
this.model.add(index, element); |
|
148 |
else |
|
149 |
this.model.add(index, printValue); |
|
150 |
|
|
143 | 151 |
} |
144 | 152 |
|
153 |
public void setValue(int index, Object element, Object printValue) { |
|
154 |
if (printValue==null) return; |
|
155 |
this.set(index, element); |
|
156 |
if (printValue==null) |
|
157 |
this.model.set(index, element); |
|
158 |
else |
|
159 |
this.model.set(index, printValue); |
|
160 |
} |
|
161 |
|
|
162 |
/* (non-Javadoc) |
|
163 |
* @see org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#setValue(java.lang.Object) |
|
164 |
*/ |
|
165 |
public void setValue(Object value) { |
|
166 |
if (value==null) return; |
|
167 |
if (value instanceof List){ |
|
168 |
for (Object elem: (List) value) |
|
169 |
addElement(elem); |
|
170 |
}else{ |
|
171 |
addElement(value); |
|
172 |
} |
|
173 |
} |
|
174 |
|
|
175 |
/* (non-Javadoc) |
|
176 |
* @see javax.swing.ListModel#addListDataListener(javax.swing.event.ListDataListener) |
|
177 |
*/ |
|
178 |
public void addListDataListener(ListDataListener l) { |
|
179 |
this.model.addListDataListener(l); |
|
180 |
} |
|
181 |
|
|
182 |
/* (non-Javadoc) |
|
183 |
* @see javax.swing.ListModel#getElementAt(int) |
|
184 |
*/ |
|
185 |
public Object getElementAt(int index) { |
|
186 |
return this.model.getElementAt(index); |
|
187 |
} |
|
188 |
|
|
189 |
/* (non-Javadoc) |
|
190 |
* @see javax.swing.ListModel#getSize() |
|
191 |
*/ |
|
192 |
public int getSize() { |
|
193 |
return this.model.getSize(); |
|
194 |
} |
|
195 |
|
|
196 |
/* (non-Javadoc) |
|
197 |
* @see javax.swing.ListModel#removeListDataListener(javax.swing.event.ListDataListener) |
|
198 |
*/ |
|
199 |
public void removeListDataListener(ListDataListener l) { |
|
200 |
this.model.removeListDataListener(l); |
|
201 |
} |
|
202 |
|
|
145 | 203 |
/** |
146 | 204 |
* @return |
147 | 205 |
*/ |
148 |
public Object toArray() {
|
|
149 |
return model.toArray();
|
|
206 |
public Object firstElement() {
|
|
207 |
return this.model.firstElement();
|
|
150 | 208 |
} |
209 |
|
|
210 |
public void removeElement(int index){ |
|
211 |
this.remove(index); |
|
212 |
this.model.remove(index); |
|
213 |
} |
|
151 | 214 |
|
152 |
|
|
153 | 215 |
} |
154 | 216 |
|
155 | 217 |
protected JDynFieldComponent component; |
... | ... | |
280 | 342 |
this.component = component; |
281 | 343 |
parent = component; |
282 | 344 |
} |
345 |
|
|
283 | 346 |
|
284 | 347 |
/* |
285 | 348 |
* (non-Javadoc) |
Also available in: Unified diff