Revision b66bc2e5
Added by Andreas Müller over 3 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/combo/EnumTermComboController.java | ||
---|---|---|
39 | 39 |
/** |
40 | 40 |
* @author pplitzner |
41 | 41 |
* @date 29.01.2014 |
42 |
* |
|
43 | 42 |
*/ |
44 |
public class EnumTermComboController<T extends IEnumTerm<T>> extends AbstractCdmFormElement implements SelectionListener, |
|
45 |
IEnableableFormElement, ISelectable, CdmCompositeController { |
|
43 |
public class EnumTermComboController<T extends IEnumTerm<T>> |
|
44 |
extends AbstractCdmFormElement |
|
45 |
implements SelectionListener, IEnableableFormElement, ISelectable, CdmCompositeController { |
|
46 | 46 |
|
47 |
private static CdmEnumDataHolder[] cdmEnumDataHolders = { |
|
47 |
private static CdmEnumDataHolder<?>[] cdmEnumDataHolders = {
|
|
48 | 48 |
new CdmEnumDataHolder<NomenclaturalCode>(){ |
49 | 49 |
|
50 | 50 |
@Override |
... | ... | |
133 | 133 |
private final Class<T> enumType; |
134 | 134 |
|
135 | 135 |
/** |
136 |
* <p> |
|
137 | 136 |
* Constructor for AbstractEnumComboElement. |
138 |
* </p> |
|
139 |
* |
|
140 |
* @param formFactory |
|
141 |
* a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} |
|
142 |
* object. |
|
143 |
* @param parentElement |
|
144 |
* a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} |
|
145 |
* object. |
|
146 |
* @param labelString |
|
147 |
* a {@link java.lang.String} object. |
|
148 |
* @param <T> |
|
149 |
* a T object. |
|
150 | 137 |
*/ |
151 | 138 |
public EnumTermComboController(Combo combo, CdmFormFactory formFactory, |
152 | 139 |
ICdmFormElement parentElement, Class<T> enumType, int style) { |
... | ... | |
160 | 147 |
populateTypes(); |
161 | 148 |
|
162 | 149 |
combo.addSelectionListener(this); |
163 |
|
|
164 |
} |
|
165 |
|
|
166 |
private String getDefaultLabelString() { |
|
167 |
if(enumType.equals(ReferenceType.class)){ |
|
168 |
return "Reference Type"; |
|
169 |
} else if (enumType.equals(NomenclaturalCode.class)){ |
|
170 |
return "Nomenclatural Code"; |
|
171 |
} else if(enumType.equals(OriginalSourceType.class)) { |
|
172 |
return "Orig. Source Type"; |
|
173 |
} else if(enumType.equals(SpecimenOrObservationType.class)) { |
|
174 |
return "Spec./Obs. Type"; |
|
175 |
} |
|
176 |
return "No Label"; |
|
177 | 150 |
} |
178 | 151 |
|
179 | 152 |
/** |
180 |
* <p> |
|
181 | 153 |
* populateTypes |
182 |
* </p> |
|
183 | 154 |
*/ |
184 | 155 |
private void populateTypes(){ |
185 | 156 |
Collection<T> elementsForClass = getElementsForClass(enumType); |
... | ... | |
200 | 171 |
} |
201 | 172 |
} |
202 | 173 |
|
203 |
/** |
|
204 |
* <p> |
|
205 |
* Setter for the field <code>selection</code>. |
|
206 |
* </p> |
|
207 |
* |
|
208 |
* @param selection |
|
209 |
* the selection to set |
|
210 |
*/ |
|
211 | 174 |
public void setSelection(T selection) { |
212 | 175 |
this.selection = selection; |
213 | 176 |
combo.select(elementTypeList.indexOf(selection)); |
214 | 177 |
} |
215 | 178 |
|
216 |
/** |
|
217 |
* <p> |
|
218 |
* addSelectionListener |
|
219 |
* </p> |
|
220 |
* |
|
221 |
* @param listener |
|
222 |
* a {@link org.eclipse.swt.events.SelectionListener} object. |
|
223 |
*/ |
|
224 | 179 |
public void addSelectionListener(SelectionListener listener) { |
225 | 180 |
combo.addSelectionListener(listener); |
226 | 181 |
} |
227 | 182 |
|
228 |
/** |
|
229 |
* <p> |
|
230 |
* removeSelectionListener |
|
231 |
* </p> |
|
232 |
* |
|
233 |
* @param listener |
|
234 |
* a {@link org.eclipse.swt.events.SelectionListener} object. |
|
235 |
*/ |
|
236 | 183 |
public void removeSelectionListener(SelectionListener listener) { |
237 | 184 |
combo.removeSelectionListener(listener); |
238 | 185 |
} |
239 | 186 |
|
240 |
/** {@inheritDoc} */ |
|
241 | 187 |
@Override |
242 | 188 |
public void setSelected(boolean selected) { |
243 | 189 |
setBackground(selected ? SELECTED : getPersistentBackground()); |
244 | 190 |
} |
245 | 191 |
|
246 |
/** |
|
247 |
* <p> |
|
248 |
* Getter for the field <code>selection</code>. |
|
249 |
* </p> |
|
250 |
* |
|
251 |
* @return the selection |
|
252 |
*/ |
|
253 | 192 |
public T getSelection() { |
254 | 193 |
return selection; |
255 | 194 |
} |
256 | 195 |
|
257 |
/** {@inheritDoc} */ |
|
258 | 196 |
@Override |
259 | 197 |
public void setEnabled(boolean enabled) { |
260 | 198 |
combo.setEnabled(enabled); |
261 | 199 |
} |
262 | 200 |
|
263 |
/* (non-Javadoc) |
|
264 |
* @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled() |
|
265 |
*/ |
|
266 | 201 |
@Override |
267 | 202 |
public boolean isEnabled() { |
268 | 203 |
return combo.isEnabled(); |
269 | 204 |
} |
270 | 205 |
|
271 |
/* |
|
272 |
* (non-Javadoc) |
|
273 |
* |
|
274 |
* @see |
|
275 |
* org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt |
|
276 |
* .events.SelectionEvent) |
|
277 |
*/ |
|
278 |
/** {@inheritDoc} */ |
|
279 | 206 |
@Override |
280 | 207 |
public void widgetSelected(SelectionEvent e) { |
281 | 208 |
selection = elementTypeList.get(combo.getSelectionIndex()); |
282 | 209 |
} |
283 | 210 |
|
284 |
/** {@inheritDoc} */ |
|
285 | 211 |
@Override |
286 | 212 |
public void setIrrelevant(boolean irrelevant) { |
287 | 213 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT |
... | ... | |
291 | 217 |
combo.setBackground(color); |
292 | 218 |
} |
293 | 219 |
|
294 |
/** {@inheritDoc} */ |
|
295 | 220 |
@Override |
296 | 221 |
public void setBackground(Color color) { |
297 | 222 |
// label.setBackground(color); |
298 | 223 |
} |
299 | 224 |
|
300 |
/** {@inheritDoc} */ |
|
301 | 225 |
@Override |
302 | 226 |
public void widgetDefaultSelected(SelectionEvent e) { |
303 | 227 |
} |
... | ... | |
315 | 239 |
} |
316 | 240 |
|
317 | 241 |
private CdmEnumDataHolder<T> getCdmEnumDataHolderForClass(Class<T> clazz){ |
318 |
for (CdmEnumDataHolder dataHolder : cdmEnumDataHolders) { |
|
242 |
for (CdmEnumDataHolder<?> dataHolder : cdmEnumDataHolders) {
|
|
319 | 243 |
if (dataHolder.getClazz().equals(clazz)){ |
320 |
return dataHolder; |
|
244 |
return (CdmEnumDataHolder<T>)dataHolder;
|
|
321 | 245 |
} |
322 | 246 |
} |
323 | 247 |
return null; |
... | ... | |
328 | 252 |
String getName(); |
329 | 253 |
Collection<T> getElements(); |
330 | 254 |
} |
331 |
} |
|
255 |
} |
Also available in: Unified diff
cleanup