b74bbf333fc4102b894b61de773c01c9b69e568d
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / combo / EmptyComboElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.ui.combo;
12
13 import java.util.ArrayList;
14 import java.util.List;
15
16 import org.eclipse.jface.util.PropertyChangeEvent;
17
18 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
19 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
20 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
21 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
22
23 /**
24 * <p>EmptyComboElement class.</p>
25 *
26 * @author n.hoffmann
27 * @created Sep 29, 2010
28 * @version 1.0
29 */
30 public class EmptyComboElement<T extends DefinedTermBase> extends TermComboElement<T> {
31
32 private List<T> genericTerms = new ArrayList<T>();
33
34 /**
35 * <p>Constructor for EmptyComboElement.</p>
36 *
37 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
38 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
39 * @param labelString a {@link java.lang.String} object.
40 * @param style a int.
41 * @param <T> a T object.
42 */
43 public EmptyComboElement(CdmFormFactory formFactory,
44 ICdmFormElement parentElement, Class<T> termClass, String labelString,
45 int style) {
46 super(formFactory, parentElement, termClass, labelString, null, style);
47 }
48
49
50 /* (non-Javadoc)
51 * @see eu.etaxonomy.taxeditor.forms.term.AbstractTermComboElement#preferredTerms()
52 */
53 /** {@inheritDoc} */
54 @Override
55 protected List<T> getPreferredTerms() {
56 return genericTerms != null ? genericTerms : new ArrayList<T>();
57 }
58
59
60 /**
61 * <p>setTerms</p>
62 *
63 * @param terms a {@link java.util.List} object.
64 */
65 public void setTerms(List<T> terms) {
66 if(terms == null){
67 throw new IllegalArgumentException("List of terms may not be null");
68 }
69
70 this.genericTerms = terms;
71 propertyChange(new PropertyChangeEvent(this, PreferencesUtil.PREFERRED_TERMS_CHANGE, this.genericTerms, terms));
72 }
73 }