X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/4771aaf3aa0d80958afb506fed3f273ce9aaa7cd..50e767597be5e589523a9d065ea2d4921ba7b89f:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java index 8c5fba40a..f05cbe1c4 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java @@ -19,16 +19,18 @@ import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; +import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.common.DefinedTermBase; +import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.preference.Resources; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.store.StoreUtil; import eu.etaxonomy.taxeditor.store.TermManager; +import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; -import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement; import eu.etaxonomy.taxeditor.ui.element.ISelectable; import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; @@ -65,6 +67,56 @@ public class TermComboElement private List customPreferredTerms; + /** + *

+ * Constructor for AbstractTermComboElement. + *

+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param selection + * a T object. + * @param visibleItems + * a int. + * @param + * a T object. + */ + public TermComboElement(CdmFormFactory formFactory, + ICdmFormElement parentElement, TermType termType, String labelString, T selection, + int style) { + super(formFactory, parentElement); + + this.termClass = (Class) DefinedTerm.class; + + if (labelString != null) { + label = formFactory.createLabel(getLayoutComposite(), labelString); + addControl(label); + } + + // create combo + combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY); + addControl(combo); + combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY()); + combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS); + + populateTerms(filterDefinedTermByTermType(getPreferredTerms(), termType)); + + combo.addSelectionListener(this); + combo.addDisposeListener(this); + PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this); + + if (selection != null) { + setSelection(selection); + } + } /** *

@@ -139,6 +191,8 @@ public class TermComboElement public void setSelection(T selection) { this.selection = selection; + this.selection = selection; + Listener[] listeners = combo.getListeners(SWT.Selection); for (Listener listener : listeners) { @@ -189,14 +243,14 @@ public class TermComboElement if (label == null) { if (term.getTitleCache() != null) { label = term.getTitleCache(); - StoreUtil.error(getClass(), - "Term does not have a representation: " + term - + ", " + term.getUuid(), null); + StoreUtil.warn(getClass(), + "Term does not have a default language representation: " + label + + ", " + term.getUuid()); } else { label = "Unknown"; - StoreUtil.error(getClass(), + StoreUtil.warn(getClass(), "Representation Label and TitleCache empty for term: " - + term + ", " + term.getUuid(), null); + + term + ", " + term.getUuid()); } } @@ -221,9 +275,7 @@ public class TermComboElement /* * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean) + * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean) */ /** {@inheritDoc} */ public void setEnabled(boolean enabled) { @@ -253,7 +305,11 @@ public class TermComboElement * @return a {@link java.lang.String} object. */ protected String getLabel(T term) { - return term.getLabel(CdmStore.getDefaultLanguage()); + if (term == null){ + return ""; + }else{ + return term.getLabel(CdmStore.getDefaultLanguage()); + } } /** @@ -390,4 +446,14 @@ public class TermComboElement customPreferredTerms = terms; populateTerms(customPreferredTerms); } + + private List filterDefinedTermByTermType(List terms, TermType termType) { + List definedTerms = new ArrayList(); + for(T term : terms){ + if(term.getTermType().equals(termType)) { + definedTerms.add(term); + } + } + return definedTerms; + } }