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;
* @version 1.0
* @param <VOC>
*/
-public class VocabularyComboElement<VOC extends TermVocabulary<DefinedTermBase>>
+public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>>
extends AbstractCdmFormElement implements SelectionListener,
DisposeListener, IEnableableFormElement, ISelectable {
private Comparator<VOC> vocComparator;
- private final Class<VOC> vocClass;
+ private final TermType termType;
public VocabularyComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, Class<VOC> 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<VOC>) TermVocabulary.class;
- }
+ this.termType = termType;
if (labelString != null) {
label = formFactory.createLabel(getLayoutComposite(), labelString);
combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
- if(this.vocClass!=null){
- populateTerms(getVocabularies());
- }
+ populateTerms(getVocabularies());
combo.addSelectionListener(this);
combo.addDisposeListener(this);
* @return a {@link java.util.List} object.
*/
protected List<VOC> getVocabularies(){
- return CdmStore.getService(IVocabularyService.class).list(vocClass, null, null, null, null);
+ List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType);
+ return (List<VOC>) list;
}
/**
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;
return element;
}
+ public <TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>> VocabularyComboElement<TERM, VOC> createVocabularyComboElement(
+ TermType termType, String label, VOC selection, ICdmFormElement parentElement, int style) {
+ VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termType, label, selection, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
/**
* <p>
* createBrowserElement