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