ref #10196 adapt TaxEditor to hybrid structure states
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 9 Dec 2022 12:08:00 +0000 (13:08 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 9 Dec 2022 12:08:00 +0000 (13:08 +0100)
13 files changed:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CategoricalDataHistogram.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElementForDto.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureStateWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesDtoCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyDtoCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyDtoCollectionSection.java

index d2da9b755fa0dcd8c8e2ed33889670a4ce15369e..0d461566f5cbcdc9e8cb0da0f6bb4c2d6bf58cf1 100644 (file)
@@ -14,7 +14,7 @@ import java.util.List;
 import org.apache.commons.math3.stat.Frequency;
 
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 
 /**
  * @author pplitzner
@@ -24,7 +24,7 @@ public class CategoricalDataHistogram {
 
     private Feature feature;
     private Frequency frequency;
-    private List<State> states;
+    private List<DefinedTermBase<?>> states;
 
     public CategoricalDataHistogram(Feature feature) {
         this.feature = feature;
@@ -35,15 +35,15 @@ public class CategoricalDataHistogram {
                 .forEach(state->states.add(state)));
     }
 
-    public void addState(State state){
+    public void addState(DefinedTermBase<?> state){
         frequency.addValue(state.getLabel());
     }
 
-    public long getCount(State state){
+    public long getCount(DefinedTermBase<?> state){
         return frequency.getCount(state.getLabel());
     }
 
-    public List<State> getStates() {
+    public List<DefinedTermBase<?>> getStates() {
         return states;
     }
 
index 1f803559865a9a39aecd8556c21bd84c302f0601..9691a5800336a6cd8e2f512cef0efce1a666e1ba 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.ui.combo;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.EnumSet;
 import java.util.List;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -45,14 +46,20 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
 
        private Comparator<VOC> vocComparator;
 
-    private final TermType termType;
+    private final EnumSet<TermType> termTypes;
 
     public VocabularyComboElement(CdmFormFactory formFactory,
-               ICdmFormElement parentElement, TermType termType, String labelString,
+            ICdmFormElement parentElement, TermType termType, String labelString,
+            VOC selection, int style){
+        this(formFactory, parentElement, EnumSet.of(termType), labelString, selection, style);
+    }
+
+    public VocabularyComboElement(CdmFormFactory formFactory,
+               ICdmFormElement parentElement, EnumSet<TermType> termTypes, String labelString,
                VOC selection, int style) {
         super(formFactory, parentElement);
 
-        this.termType = termType;
+        this.termTypes = termTypes;
 
         populateTerms(getVocabularies());
 
@@ -68,11 +75,11 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
        }
 
        public VocabularyComboElement(CdmFormFactory formFactory,
-            ICdmFormElement parentElement, TermType termType, String labelString,
+            ICdmFormElement parentElement, EnumSet<TermType> termTypes, String label,
             TermVocabularyDto selection, int style) {
         super(formFactory, parentElement);
 
-        this.termType = termType;
+        this.termTypes = termTypes;
 
         populateTerms(getVocabularies());
 
@@ -226,7 +233,7 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
        }
 
        protected List<VOC> getVocabularies(){
-           List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType, null);
+           List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termTypes, null);
                return (List<VOC>) list;
        }
 
index 2a06ae58c0d5c7eb4c81d513d07e9d1201727b65..f7a50ff040a42aba657e4e3ad32d258f355cdbe7 100755 (executable)
@@ -10,6 +10,7 @@ package eu.etaxonomy.taxeditor.ui.element;
 
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -87,7 +88,6 @@ import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
@@ -1169,8 +1169,8 @@ public class CdmFormFactory extends FormToolkit {
        }
 
        public <TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>> VocabularyComboElement<TERM, VOC> createVocabularyDtoComboElement(
-            TermType termType, String label, TermVocabularyDto selection, ICdmFormElement parentElement, int style) {
-        VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termType, label, selection, style);
+            EnumSet<TermType> termTypes, String label, TermVocabularyDto selection, ICdmFormElement parentElement, int style) {
+        VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termTypes, label, selection, style);
         adapt(element);
         parentElement.addElement(element);
         return element;
@@ -2848,7 +2848,7 @@ public class CdmFormFactory extends FormToolkit {
             TermVocabulary<?> termVocabulary = (TermVocabulary<?>)entity;
             switch (termVocabulary.getTermType()) {
             case State:
-                element = new StateVocabularyCollectionElement(this, parentElement, (TermVocabulary<State>) entity, removeListener, backgroundColor, style);
+                element = new StateVocabularyCollectionElement(this, parentElement, termVocabulary, removeListener, backgroundColor, style);
                 break;
             case Modifier:
                 element = new RecommendedModifierVocabulariesElement(this, parentElement, (TermVocabulary<DefinedTerm>) entity, removeListener, backgroundColor, style);
index a302f8112d9062a6dd7e5d2ae78abc789b25c0d8..8f308e753eda29e3a5bc784673bfc4088fb03a2d 100644 (file)
@@ -15,9 +15,9 @@ import java.util.Set;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -37,7 +37,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  */
 public class StateDataElement extends AbstractEntityCollectionElement<StateData> {
 
-       private TermComboElement<State> combo_state;
+       private TermComboElement<DefinedTermBase<?>> combo_state;
        private ModifierSection section_modifiers;
        private TextWithLabelElement text_modifyingText;
 
@@ -69,10 +69,10 @@ public class StateDataElement extends AbstractEntityCollectionElement<StateData>
        @Override
        public void createControls(ICdmFormElement element, int style) {
                if (getEntity() != null){
-                       List<State> stateTerms = new ArrayList<>();
-                       Set<TermVocabulary<State>> stateVocabularies = getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
-                       for (TermVocabulary<State> termVocabulary : stateVocabularies) {
-                           stateTerms.addAll(termVocabulary.getTerms());
+                       List<DefinedTermBase<?>> stateTerms = new ArrayList<>();
+                       Set<TermVocabulary<?>> stateVocabularies = getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
+                       for (TermVocabulary<?> termVocabulary : stateVocabularies) {
+                           stateTerms.addAll((Set)termVocabulary.getTerms());
                }
                        combo_state = formFactory.createDefinedTermComboElement(stateTerms, element, "State", null, style);
                }else{
index 1cbe82a6204389bf2335e22467b69db80c01aa90..b679e90e86ae82de9b666c22a5885098a248725c 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureState;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public abstract class AbstractApplicableElement extends AbstractEntityCollectionElement<FeatureState> {
 
-    private TermComboElement<State> comboState;
+    private TermComboElement<DefinedTermBase<?>> comboState;
     private EntitySelectionElement<Feature> selectFeature;
 
     public AbstractApplicableElement(CdmFormFactory formFactory, AbstractFormSection<?> section, FeatureState entity,
index a9bca65b216b7b66b0dcaba2524354b11ddbfa3a..2d7d153639f12fa9bb0f3d8b8130294d37905cf2 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
 import eu.etaxonomy.taxeditor.store.CdmStore;
index e4aa5cab515fd68ff87b7eff62fe56e39179df55..0a4e0242b1b2dfbf58be1f12f077c3f0aa676994 100644 (file)
@@ -31,7 +31,6 @@ import org.eclipse.swt.widgets.Text;
 import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureState;
-import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
@@ -58,7 +57,7 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
     private Button btnSelectState;
 
     private TermNodeDto termNode;
-    private State selectedState = null;
+    private DefinedTermBase<?> selectedState = null;
     private List<TermVocabularyDto> stateVocabulariesDtos = new ArrayList<>();
     private Text text;
 
@@ -96,7 +95,7 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
                 if (dialog.open() == IStatus.OK) {
                     Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
                     if(additionalTerms.size()==1){
-                        selectedState = (State) additionalTerms.iterator().next();
+                        selectedState = additionalTerms.iterator().next();
                         text.setText(selectedState.getLabel());
                         FeatureStateWizardPage.this.getWizard().getContainer().updateButtons();
                     }
@@ -144,8 +143,8 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
         text.setText("");
         selectedState = null;
         if(feature!=null){
-            Set<TermVocabulary<State>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
-            for (TermVocabulary<State> termVocabulary : stateVocabularies) {
+            Set<TermVocabulary<? extends DefinedTermBase>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
+            for (TermVocabulary<? extends DefinedTermBase> termVocabulary : stateVocabularies) {
                 stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType(), termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(), termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));
             }
         }
@@ -165,5 +164,4 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
         }
         getWizard().getContainer().updateButtons();
     }
-
-}
+}
\ No newline at end of file
index d4ebce5c053bfa0812f599f49f2972c80d9bbe3f..e9661677af54e8717d47ed31b27995eccee23832 100644 (file)
@@ -20,6 +20,7 @@ import org.apache.logging.log4j.Logger;
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
 \r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.LanguageString;\r
 import eu.etaxonomy.cdm.model.common.Marker;\r
@@ -137,7 +138,7 @@ public class UseRecordDetailElement extends
                                        String testString = statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText();\r
                                        if(testString.equals(comboCategory)) {\r
                                                if(statedata.getState() !=null) {\r
-                                                       return statedata.getState();\r
+                                                       return CdmBase.deproxy(statedata.getState(), State.class);\r
                                                }\r
                                        }\r
                                }\r
@@ -556,7 +557,6 @@ public class UseRecordDetailElement extends
                                                        }\r
                                                }\r
                                        }\r
-\r
                                }\r
                        }\r
                }\r
index d3c10d329c530db3389965123d6fe7b36b4d2a48..9d245af88d2aff2dc927b2b380b577a3b891f83f 100755 (executable)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
@@ -58,7 +58,7 @@ public class RecommendedModifierVocabulariesDtoCollectionSection extends Abstrac
 
     @Override
     public TermVocabularyDto createNewElement() {
-        TermVocabulary<State> voc = TermVocabulary.NewInstance(TermType.Modifier);
+        TermVocabulary<DefinedTerm> voc = TermVocabulary.NewInstance(TermType.Modifier);
         return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
     }
 
index 6bcaf7e4b2887c7ea1e63b0abdd8289f7ba373a8..b50d873a38388086ac65d72da05d86c791f85eb4 100644 (file)
@@ -12,7 +12,7 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
@@ -25,12 +25,12 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  * @author pplitzner
  * @date Apr 27, 2015
  */
-public class StateVocabularyCollectionElement extends AbstractEntityCollectionElement<TermVocabulary<State>> {
+public class StateVocabularyCollectionElement<T extends DefinedTermBase<T>>
+        extends AbstractEntityCollectionElement<TermVocabulary<T>> {
 
+    private VocabularyComboElement<T, TermVocabulary<T>> comboStateVocabulary;
 
-    private VocabularyComboElement<State, TermVocabulary<State>> comboStateVocabulary;
-
-    public StateVocabularyCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<State> entity,
+    public StateVocabularyCollectionElement(CdmFormFactory formFactory, AbstractFormSection<T> section, TermVocabulary<T> entity,
             SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
     }
@@ -44,7 +44,7 @@ public class StateVocabularyCollectionElement extends AbstractEntityCollectionEl
     }
 
     @Override
-    public void setEntity(TermVocabulary<State> entity) {
+    public void setEntity(TermVocabulary<T> entity) {
         this.entity = entity;
         if(entity.getId()!=0 && comboStateVocabulary != null){
             comboStateVocabulary.setSelection(entity);
@@ -59,7 +59,7 @@ public class StateVocabularyCollectionElement extends AbstractEntityCollectionEl
                 StateVocabularyCollectionSection parentElement = (StateVocabularyCollectionSection) getParentElement();
                 Feature feature = parentElement.getEntity();
                 feature.removeSupportedCategoricalEnumeration(entity);
-                TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
+                TermVocabulary<T> vocabulary = comboStateVocabulary.getSelection();
                 feature.addSupportedCategoricalEnumeration(vocabulary);
                 entity = vocabulary;
                 //update the parent section to re-set the listeners to the persisted measurement unit
index 6a1504c43810fbf59619f0872fa9d7ee822218e6..947213a3f19f540fd8656af6e5028e04fc596d16 100644 (file)
@@ -13,6 +13,7 @@ import java.util.Comparator;
 
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -24,7 +25,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
  * @author pplitzner
  * @date Apr 27, 2015
  */
-public class StateVocabularyCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<State>> {
+public class StateVocabularyCollectionSection
+        extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<? extends DefinedTermBase>> {
 
     public StateVocabularyCollectionSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
@@ -32,27 +34,28 @@ public class StateVocabularyCollectionSection extends AbstractUnboundEntityColle
     }
 
     @Override
-    protected Collection<TermVocabulary<State>> getEntityCollection(Feature entity) {
+    protected Collection<TermVocabulary<? extends DefinedTermBase>> getEntityCollection(Feature entity) {
         return entity.getSupportedCategoricalEnumerations();
     }
 
     @Override
-    public Comparator<TermVocabulary<State>> getComparator() {
+    public Comparator<TermVocabulary<? extends DefinedTermBase>> getComparator() {
         return new DefaultCdmBaseComparator<>();
     }
 
     @Override
     public TermVocabulary<State> createNewElement() {
+        //FIXME 10196
         return TermVocabulary.NewInstance(TermType.State);
     }
 
     @Override
-    public void addElement(TermVocabulary<State> element) {
+    public void addElement(TermVocabulary<? extends DefinedTermBase> element) {
         //never gets called
     }
 
     @Override
-    public void removeElement(TermVocabulary<State> element) {
+    public void removeElement(TermVocabulary<? extends DefinedTermBase> element) {
         getEntity().removeSupportedCategoricalEnumeration(element);
     }
 
index 63f9585b0554dd39e8af77915a27a7279cd22acd..0299f0da8fc79a85d67f03600e1178923c4135eb 100755 (executable)
@@ -8,10 +8,12 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 
+import java.util.EnumSet;
+
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
@@ -26,10 +28,10 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  * @author pplitzner
  * @date Apr 27, 2015
  */
-public class StateVocabularyDtoCollectionElement extends AbstractEntityCollectionElement<TermVocabularyDto> {
-
+public class StateVocabularyDtoCollectionElement<T extends DefinedTermBase<T>>
+        extends AbstractEntityCollectionElement<TermVocabularyDto> {
 
-    private VocabularyComboElement<State, TermVocabulary<State>> comboStateVocabulary;
+    private VocabularyComboElement<T, TermVocabulary<T>> comboStateVocabulary;
 
     public StateVocabularyDtoCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabularyDto entity,
             SelectionListener removeListener, Color backgroundColor, int style) {
@@ -38,7 +40,8 @@ public class StateVocabularyDtoCollectionElement extends AbstractEntityCollectio
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        comboStateVocabulary = formFactory.createVocabularyDtoComboElement(TermType.State, "State vocabulary", null, element, style);
+        //for now we allow State and Structure here
+        comboStateVocabulary = formFactory.createVocabularyDtoComboElement(EnumSet.of(TermType.State, TermType.Structure), "State vocabulary", null, element, style);
         if (entity != null){
                setEntity(entity);
         }
@@ -67,7 +70,7 @@ public class StateVocabularyDtoCollectionElement extends AbstractEntityCollectio
                     }
                 }
                 feature.getSupportedCategoricalEnumerations().remove(remove);
-                TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
+                TermVocabulary<T> vocabulary = comboStateVocabulary.getSelection();
                 TermVocabularyDto dto = new TermVocabularyDto(vocabulary.getUuid(), vocabulary.getRepresentations(), vocabulary.getTermType(), vocabulary.getTitleCache(), vocabulary.isAllowDuplicates(), vocabulary.isOrderRelevant(), vocabulary.isFlat());
                 feature.getSupportedCategoricalEnumerations().add(dto);
                 entity = dto;
index f06be19ae37d92671a716db371ab682ea430a503..ad90f90814c30b5f53a35f5dc5bbe4d95a28d970 100755 (executable)
@@ -58,6 +58,7 @@ public class StateVocabularyDtoCollectionSection extends AbstractUnboundEntityCo
 
     @Override
     public TermVocabularyDto createNewElement() {
+        //FIXME 10196
         TermVocabulary<State> voc = TermVocabulary.NewInstance(TermType.State);
         return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
     }