From 1b3cfe7c0c52c8e9368de4514243dc9773e9b040 Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Mon, 27 Apr 2015 14:36:24 +0000 Subject: [PATCH 1/1] - filtered vocabularies by term type (#4448) --- .../ui/combo/VocabularyComboElement.java | 21 +++++++------------ .../taxeditor/ui/element/CdmFormFactory.java | 9 ++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java index 6ee853a8c..9520de1b4 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java @@ -21,6 +21,7 @@ import org.eclipse.swt.widgets.Listener; import eu.etaxonomy.cdm.api.service.IVocabularyService; import eu.etaxonomy.cdm.model.common.DefinedTermBase; +import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.cdm.model.common.TermVocabulary; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; @@ -46,7 +47,7 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; * @version 1.0 * @param */ -public class VocabularyComboElement> +public class VocabularyComboElement, VOC extends TermVocabulary> extends AbstractCdmFormElement implements SelectionListener, DisposeListener, IEnableableFormElement, ISelectable { @@ -64,19 +65,14 @@ public class VocabularyComboElement> private Comparator vocComparator; - private final Class vocClass; + private final TermType termType; public VocabularyComboElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, Class termClass, String labelString, VOC selection, + ICdmFormElement parentElement, TermType termType, String labelString, VOC selection, int style) { super(formFactory, parentElement); - if(termClass!=null){ - this.vocClass = termClass; - } - else{ - this.vocClass = (Class) TermVocabulary.class; - } + this.termType = termType; if (labelString != null) { label = formFactory.createLabel(getLayoutComposite(), labelString); @@ -89,9 +85,7 @@ public class VocabularyComboElement> combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY()); combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS); - if(this.vocClass!=null){ - populateTerms(getVocabularies()); - } + populateTerms(getVocabularies()); combo.addSelectionListener(this); combo.addDisposeListener(this); @@ -232,7 +226,8 @@ public class VocabularyComboElement> * @return a {@link java.util.List} object. */ protected List getVocabularies(){ - return CdmStore.getService(IVocabularyService.class).list(vocClass, null, null, null, null); + List> list = CdmStore.getService(IVocabularyService.class).findByTermType(termType); + return (List) list; } /** diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java index 59fdab650..0ec1e7d2b 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java @@ -102,6 +102,7 @@ import eu.etaxonomy.cdm.strategy.parser.ParserProblem; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement; import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement; import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType; import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement; import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled; @@ -891,6 +892,14 @@ public class CdmFormFactory extends FormToolkit { return element; } + public , VOC extends TermVocabulary> VocabularyComboElement createVocabularyComboElement( + TermType termType, String label, VOC selection, ICdmFormElement parentElement, int style) { + VocabularyComboElement element = new VocabularyComboElement(this, parentElement, termType, label, selection, style); + adapt(element); + parentElement.addElement(element); + return element; + } + /** *

* createBrowserElement -- 2.34.1