cdmlib version change
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / term / 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.term;
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 AbstractTermComboElement<T> {
31
32 private static final int VISIBLE_ITEMS = 20;
33
34 private List<T> genericTerms = new ArrayList<T>();
35
36 /**
37 * <p>Constructor for EmptyComboElement.</p>
38 *
39 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
40 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
41 * @param labelString a {@link java.lang.String} object.
42 * @param style a int.
43 * @param <T> a T object.
44 */
45 public EmptyComboElement(CdmFormFactory formFactory,
46 ICdmFormElement parentElement, String labelString,
47 int style) {
48 super(formFactory, parentElement, labelString, null, VISIBLE_ITEMS, style);
49 }
50
51
52 /* (non-Javadoc)
53 * @see eu.etaxonomy.taxeditor.forms.term.AbstractTermComboElement#preferredTerms()
54 */
55 /** {@inheritDoc} */
56 @Override
57 protected List<T> preferredTerms() {
58 return genericTerms != null ? genericTerms : new ArrayList<T>();
59 }
60
61
62 /**
63 * <p>setTerms</p>
64 *
65 * @param terms a {@link java.util.List} object.
66 */
67 public void setTerms(List<T> terms) {
68 if(terms == null){
69 throw new IllegalArgumentException("List of terms may not be null");
70 }
71
72 this.genericTerms = terms;
73 propertyChange(new PropertyChangeEvent(this, PreferencesUtil.PREFERRED_TERMS_CHANGE, this.genericTerms, terms));
74 }
75 }