import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
return getFilteredTerms(TermStore.getTerms(termType, null));
}
+ /**
+ *
+ * @param clazz
+ * @return
+ */
+ public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary){
+ return getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary, null)));
+ }
+
/**
*
* @param clazz
String typeName = getTermClass(initialTerms);
Collection<UUID> hiddenTermUuids = hiddenTermsMap.get(typeName);
-
+
if(hiddenTermUuids == null){
return initialTerms;
if(! hiddenTermUuids.contains(((TaxonRelationshipTypeInverseContainer) term).getType().getUuid())){
T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
filteredTerms.add(type);
-
+
}
}
if(! hiddenTermUuids.contains(term.getUuid())){
}
private <T extends DefinedTermBase> String getTermClass(Collection<T> initialTerms){
-
+
String result = null;
if(!initialTerms.isEmpty()){
-
+
//TODO: there should be a more generic solution!!
T entity = initialTerms.iterator().next();
if (entity instanceof TaxonRelationshipTypeInverseContainer){
import eu.etaxonomy.cdm.model.common.DefinedTerm;
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.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
private List<T> customPreferredTerms;
- /**
- * <p>
- * Constructor for AbstractTermComboElement.
- * </p>
- *
- * @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 <T>
- * a T object.
- */
public TermComboElement(CdmFormFactory formFactory,
ICdmFormElement parentElement, TermType termType, String labelString, T selection,
int style) {
- super(formFactory, parentElement);
-
- this.termClass = (Class<T>) 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);
-
- //TODO try to remove generic T and avoid classes to be used
- populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
-
- combo.addSelectionListener(this);
- combo.addDisposeListener(this);
- PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
-
- if (selection != null) {
- setSelection(selection);
- }
+ this(formFactory, parentElement, null, termType, null, labelString, selection, style);
}
- /**
- * <p>
- * Constructor for AbstractTermComboElement.
- * </p>
- *
- * @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 <T>
- * a T object.
- */
public TermComboElement(CdmFormFactory formFactory,
- ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
- int style) {
- super(formFactory, parentElement);
+ ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ int style) {
+ this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, style);
+ }
- this.termClass = termClass;
+ public TermComboElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection,
+ int style) {
+ this(formFactory, parentElement, termClass, null, null, labelString, selection, style);
+ }
- if (labelString != null) {
- label = formFactory.createLabel(getLayoutComposite(), labelString);
- addControl(label);
- }
+ private TermComboElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, String labelString, T selection,
+ int style) {
+ super(formFactory, parentElement);
+
+ if(termClass!=null){
+ this.termClass = termClass;
+ }
+ else{
+ this.termClass = (Class<T>) DefinedTerm.class;
+ }
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+ if (labelString != null) {
+ label = formFactory.createLabel(getLayoutComposite(), labelString);
+ addControl(label);
+ }
- populateTerms(getPreferredTerms());
+ // create combo
+ combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY | style);
+ addControl(combo);
+ combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+ combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
- combo.addSelectionListener(this);
- combo.addDisposeListener(this);
- PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+ if(termType!=null){
+ //TODO try to remove generic T and avoid classes to be used
+ populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
+ }
+ else if(termVocabulary!=null){
+ populateTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
+ }
+ else if(this.termClass!=null){
+ populateTerms(getPreferredTerms());
+ }
- if (selection != null) {
- setSelection(selection);
- }
+ combo.addSelectionListener(this);
+ combo.addDisposeListener(this);
+ PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+ if (selection != null) {
+ setSelection(selection);
+ }
}
/**
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.model.common.VersionableEntity;
return element;
}
+ /**
+ * <p>
+ * createTermComboElement
+ * </p>
+ *
+ * @param termComboType
+ * a
+ * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType}
+ * object.
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param selection
+ * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase}
+ * object.
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement}
+ * object.
+ */
+
+ public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+ TermVocabulary<?> termVocabulary,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ int style) {
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
/**
* <p>
* createEnumComboElement
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.joda.time.DateTime;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
-import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.common.VocabularyEnum;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationSection;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
*/
public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<MediaSpecimen> {
+ private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+
private TermComboElement<DefinedTerm> comboKindOfUnit;
private LanguageStringWithLabelElement textTitleLanguageString;
private EntitySelectionElement<AgentBase> selectionArtist;
formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
}
else{
- comboKindOfUnit = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind of Media", entity.getKindOfUnit(), style);
+ comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
selectionArtist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);