AT: Committing working from home files
authora.theys <a.theys@localhost>
Thu, 26 Jan 2012 20:27:46 +0000 (20:27 +0000)
committera.theys <a.theys@localhost>
Thu, 26 Jan 2012 20:27:46 +0000 (20:27 +0000)
.gitattributes
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/DefinedTermEditorInputFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java

index 740a6c92239a28c8d550d1b3b85731f4c2712fc5..a7d93c0b4b88c6671d7e9dac5ec0a7b0d26a6cf0 100644 (file)
@@ -1062,6 +1062,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/defined
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ExtensionTypeEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/FeatureEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/MarkerTypeEditorInput.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/NamedAreaLevelEditorInput.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/StateEditorInput.java -text
index c6b9e4aaae2558c1d610b5963ecbbe1e4a5ad21a..127b73c3791e607a76f5a05028d4a8b696aa5b14 100644 (file)
@@ -17,6 +17,7 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
 import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
 import eu.etaxonomy.cdm.model.description.TextData;\r
@@ -47,26 +48,23 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                else if (element instanceof CategoricalData) {\r
                        //String text = "";\r
                        //TextData textData = categoricalDescriptionBuilder.build((CategoricalData) element, getLanguageList());\r
-                       if (((CategoricalData) element).getStates() != null) {\r
+                       if (!((CategoricalData) element).getStates().isEmpty()) {\r
                                for (StateData statedata : ((CategoricalData) element).getStates()) {\r
                                        if(statedata.getState() != null) {\r
-                                               text = text + statedata.getState().getTitleCache();\r
+                                               text = text + statedata.getState().getTitleCache() + "; ";\r
                                        }\r
-                                       else {\r
+                                       /*else {\r
                                                text = "No data provided";\r
-                                       }\r
+                                       }*/\r
                                }\r
                        }\r
-                       if (((CategoricalData) element).getStatesOnly() != null) {\r
-                               for (State state : ((CategoricalData) element).getStatesOnly()) {\r
-                                       if (state != null) {\r
-                                               text = text + state.getTitleCache();\r
-                                       }\r
-                                       else {\r
-                                               text = "No data provided";\r
-                                       }\r
+                       \r
+                       if (!((CategoricalData) element).getModifiers().isEmpty()) {\r
+                               for (Modifier modifier : ((CategoricalData) element).getModifiers()) {\r
+                                       text = text + modifier.getTitleCache();\r
                                }\r
                        }\r
+\r
                        \r
                        //text = textData.getText(CdmStore.getDefaultLanguage());\r
                        if (text == null || text.length() == 0) {\r
index 09d10f1b45c63fcd9238bbc0a94b7a320ab47364..0acea993e45a21b99c49cc8855916c468fec40f1 100644 (file)
                   style="push">
                <parameter
                      name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
-                     value="eu.etaxonomy.cdm.model.description.Feature">
+                     value="eu.etaxonomy.cdm.model.common.MarkerType">
                </parameter>
             </command>
             <command
                      value="eu.etaxonomy.cdm.model.description.Feature">
                </parameter>
             </command>
+            <command
+                  commandId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor"
+                  label="Modifier"
+                  style="push">
+               <parameter
+                     name="eu.etaxonomy.taxeditor.store.openDefinedTermEditor.parameter"
+                     value="eu.etaxonomy.cdm.model.description.Modifier">
+               </parameter>
+            </command>
          </menu>
       </menuContribution>
       <menuContribution
index e7b1199a9dc430b386c11f7db47f6bb52e6cb6d5..cdb5b68dda92e2f5c100363aaf79b6736563722f 100644 (file)
@@ -15,6 +15,7 @@ import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.ExtensionType;\r
 import eu.etaxonomy.cdm.model.common.MarkerType;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
@@ -51,6 +52,9 @@ public class DefinedTermEditorInputFactory {
                if (clazz == State.class){\r
                        return new StateEditorInput();\r
                }\r
+               if (clazz == Modifier.class){\r
+                       return new ModifierEditorInput();\r
+               }\r
                \r
                return null;\r
        }\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/ModifierEditorInput.java
new file mode 100644 (file)
index 0000000..da3b772
--- /dev/null
@@ -0,0 +1,53 @@
+// $Id$
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.definedterm.input;
+
+import java.util.Arrays;
+import java.util.List;
+
+import eu.etaxonomy.cdm.model.description.Modifier;
+
+
+/**
+ * @author n.hoffmann
+ * @date Jan 24, 2012
+ *
+ */
+public class ModifierEditorInput extends AbstractDefinedTermEditorInput<Modifier> {
+
+       private List<String> termClasses = Arrays.asList(new String[]{
+                       Modifier.class.getName()
+       });
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IEditorInput#getName()
+        */
+       @Override
+       public String getName() {
+               return "Modifier";
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#getTermClasses()
+        */
+       @Override
+       public List<String> getTermClasses() {
+               return termClasses;
+       }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.editor.definedterm.input.AbstractDefinedTermEditorInput#createTermInstance()
+        */
+       @Override
+       public Modifier createTermInstance() {
+               return Modifier.NewInstance();
+       }
+
+}
\ No newline at end of file
index 9d1ae680498df39ff7d4f2a31f9295d7ef2ad972..b385976cf963ce3bff217380d2433f3ad6a7bb85 100644 (file)
@@ -1,9 +1,9 @@
 package eu.etaxonomy.taxeditor.ui.section.userecords;\r
 \r
-\r
-\r
 import java.util.ArrayList;\r
 import java.util.List;\r
+import java.util.Map;\r
+import java.util.Set;\r
 import java.util.UUID;\r
 \r
 import org.apache.log4j.Logger;\r
@@ -11,13 +11,17 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;\r
 import org.eclipse.ui.forms.widgets.Section;\r
 \r
+import eu.etaxonomy.cdm.api.service.IService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;\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
+import eu.etaxonomy.cdm.model.common.MarkerType;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.Modifier;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
@@ -33,82 +37,246 @@ import eu.etaxonomy.taxeditor.ui.section.description.StateDataSection;
 import eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement;\r
 \r
 //public class UseRecordDetailElement extends AbstractDetailedDescriptionDetailElement<CategoricalData> {\r
-public class UseRecordDetailElement extends AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
+public class UseRecordDetailElement extends\r
+               AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
 \r
-       \r
        private static final Logger logger = Logger\r
                        .getLogger(DescriptionElementDetailElement.class);\r
-       \r
-       //private CheckboxElement checkbox_orderRelevant;\r
+\r
+       // private CheckboxElement checkbox_orderRelevant;\r
        private TermComboElement<State> combo_UseCategory;\r
        private TermComboElement<State> combo_UseSubCategory;\r
-       //private AbstractDetailedDescriptionDetailElement detailElement;\r
-       \r
-       /*public UseRecordDetailElement(CdmFormFactory formFactory,\r
-                       ICdmFormElement formElement, CategoricalData entity, int style) {\r
-               super(formFactory, formElement, entity, style);\r
-       }*/\r
-       /*public UseRecordDetailElement(CdmFormFactory formFactory,\r
-                       ICdmFormElement formElement, int style) {*/\r
+       private TermComboElement<Modifier> combo_PlantPart;\r
+\r
+       // private AbstractDetailedDescriptionDetailElement detailElement;\r
+\r
+       /*\r
+        * public UseRecordDetailElement(CdmFormFactory formFactory, ICdmFormElement\r
+        * formElement, CategoricalData entity, int style) { super(formFactory,\r
+        * formElement, entity, style); }\r
+        */\r
+       /*\r
+        * public UseRecordDetailElement(CdmFormFactory formFactory, ICdmFormElement\r
+        * formElement, int style) {\r
+        */\r
        public UseRecordDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
                super(formFactory, formElement);\r
        }\r
-       \r
+\r
        /** {@inheritDoc} */\r
        @Override\r
        protected void createControls(ICdmFormElement formElement,\r
                        CategoricalData entity, int style) {\r
+\r
+               // State state = State.NewInstance("Tato", "Toto", "Titi");\r
+               // checkbox_orderRelevant = formFactory.createCheckbox(formElement,\r
+               // "Order Relevant", entity.getOrderRelevant(), style);\r
+               combo_UseCategory = formFactory.createTermComboElement(State.class,     this, "Use Category", null, style);\r
+               combo_UseCategory.addSelectionListener(this);\r
+               combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, "Use Sub Category", null, style);\r
+               combo_PlantPart = formFactory.createTermComboElement(Modifier.class, this, "Plant Part", null, style);\r
+               // List<State> listOfTerms = TermStore.getTerms(State.class,null ,\r
+               // false);\r
+\r
+               // UUID uuidUseCategory =\r
+               // UUID.fromString("2bb365af-ce6c-4196-a30b-e69b05099ed0");\r
+               // TermVocabulary termVoc =\r
+               // CdmStore.getService(IVocabularyService.class).find(uuidUseCategory);\r
+               List<State> termsToAdd = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false));\r
                \r
+               List<Modifier> plantPartsToAdd = setPlantPartsComboTerms(TermStore.getTerms(Modifier.class, null, false));\r
+               // combo_UseCategory.setTerms(setUseCategoryComboTerms(listOfTerms));\r
+               combo_UseCategory.setTerms(termsToAdd);\r
+               combo_UseCategory.setSelection(useCategorySelection());\r
                \r
-               //State state = State.NewInstance("Tato", "Toto", "Titi");\r
-               //checkbox_orderRelevant = formFactory.createCheckbox(formElement, "Order Relevant", entity.getOrderRelevant(), style);\r
-               combo_UseCategory = formFactory.createTermComboElement(State.class, this, "Use Category", null , style);\r
-               combo_UseCategory.addSelectionListener(this);\r
-               combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, "Use Sub Category", null , style);\r
-               //List<State> listOfTerms = TermStore.getTerms(State.class,null , false);\r
+               List<State> termsSubCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false), combo_UseCategory.getSelection());\r
                \r
+               if (termsSubCategory != null) {\r
+                       \r
+                       combo_UseSubCategory.setTerms(termsSubCategory);\r
+                       combo_UseSubCategory.setSelection(useSubCategorySelection());\r
+                       combo_UseSubCategory.setEnabled(true);\r
+               }\r
+               else {\r
+                       combo_UseSubCategory.setEnabled(false);\r
+               }\r
+               combo_PlantPart.setTerms(plantPartsToAdd);\r
+               combo_PlantPart.setSelection(plantPartSelection());\r
                \r
-               //UUID uuidUseCategory = UUID.fromString("2bb365af-ce6c-4196-a30b-e69b05099ed0"); \r
-               //TermVocabulary termVoc = CdmStore.getService(IVocabularyService.class).find(uuidUseCategory);\r
-               List<State> termsToAdd = setUseCategoryComboTerms(TermStore.getTerms(State.class,null , false));\r
-               //combo_UseCategory.setTerms(setUseCategoryComboTerms(listOfTerms));\r
-               combo_UseCategory.setTerms(termsToAdd);\r
+\r
+               // getPreferredTerms(State.class));\r
+               // UseSubCategory_stateData =\r
+               // formFactory.createTermComboElement(State.class, this,\r
+               // "Use Sub Category", null , style);\r
+               // createEntityDetailSection(EntityDetailType.USE_CAT,\r
+               // getConversationHolder(), formElement, Section.EXPANDED);\r
+               // UseSubCategory_stateData = (UseSubCategorySection)\r
+               // formFactory.createEntityDetailSection(EntityDetailType.USE_SUBCAT,\r
+               // getConversationHolder(), formElement,Section.EXPANDED);\r
+               // UseCategory_stateData.setEntity(entity);\r
+               // UseSubCategory_stateData.setEntity(entity);\r
+               // UseCategory_stateData.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2,\r
+               // 1));\r
+               // UseSubCategory_stateData.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2,\r
+               // 1));\r
+\r
+       }\r
+\r
+\r
+\r
+       private Modifier plantPartSelection() {\r
+               /*if(!getEntity().getModifiers().isEmpty()) {\r
+                       for (Modifier modifier : getEntity().getModifiers()) {\r
+                               if (modifier.getMarkers() != null) {\r
+                                       for (Marker marker : modifier.getMarkers()) {\r
+                                               if(marker.getMarkerType().getTitleCache().equals("PlantPart")) {\r
+                                                       return modifier;\r
+                                               }\r
+                                               else {\r
+                                                       return null;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else {\r
+                                       return null;\r
+                               }\r
+                                       \r
+                       }\r
+               } else {\r
+                       return null;\r
+               }\r
+               return null;*/\r
+               //for testing purposes\r
                \r
-                               //getPreferredTerms(State.class));\r
-               //UseSubCategory_stateData = formFactory.createTermComboElement(State.class, this, "Use Sub Category", null , style);\r
-               //createEntityDetailSection(EntityDetailType.USE_CAT, getConversationHolder(), formElement, Section.EXPANDED);\r
-               //UseSubCategory_stateData = (UseSubCategorySection) formFactory.createEntityDetailSection(EntityDetailType.USE_SUBCAT, getConversationHolder(), formElement,Section.EXPANDED);\r
-               //UseCategory_stateData.setEntity(entity);\r
-               //UseSubCategory_stateData.setEntity(entity);\r
-               //UseCategory_stateData.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2, 1));\r
-               //UseSubCategory_stateData.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2, 1));\r
+               Modifier modiftoreturn = Modifier.NewInstance();\r
+               if (!getEntity().getModifiers().isEmpty()) {\r
+                       for (Modifier modifier : getEntity().getModifiers()){\r
+                               modiftoreturn = modifier;\r
+                       }\r
+                       return modiftoreturn;\r
+               }\r
+               return null;\r
                \r
        }\r
+\r
+       private State useCategorySelection() {\r
+               /*if (!getEntity().getStates().isEmpty()) {\r
+                       for (StateData statedata : getEntity().getStates()) {\r
+                               if (statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
+                                       if(statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == "Use Category") {\r
+                                               if(statedata.getState() !=null) {\r
+                                                       return statedata.getState();\r
+                                               }\r
+                                       }\r
+                               }                               \r
+                       }\r
+               }\r
+               else {\r
+                       return null;\r
+               }\r
+               return null;*/\r
+               //for testing purposes\r
+               int countStates =0;\r
+               for (StateData state : getEntity().getStates()) {\r
+                       if (countStates == 0) {\r
+                               return state.getState();\r
+                       }\r
+                       countStates++;\r
+               }\r
+               return null;\r
+       }\r
        \r
-       \r
+       private State useSubCategorySelection() {\r
+               /*if (!getEntity().getStates().isEmpty() && combo_UseCategory.getSelection() != null) {\r
+                       for (StateData statedata : getEntity().getStates()) {\r
+                               if (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
+                                       if(statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == "Use SubCategory") {\r
+                                               if(statedata.getState() !=null) {\r
+                                                       return statedata.getState();\r
+                                               }\r
+                                               \r
+                                       }\r
+                               }                               \r
+                       }\r
+               }\r
+               else {\r
+                       return null;\r
+               }\r
+               return null;*/\r
+               int countStates =0;\r
+               for (StateData state : getEntity().getStates()) {\r
+                       if ((countStates == 1)) {\r
+                               return state.getState();\r
+                       }\r
+                       countStates++;\r
+               }\r
+               return null;\r
+               \r
+       }\r
+\r
+       private List<Modifier> setPlantPartsComboTerms(List<Modifier> listOfTerms) {\r
+               List<Modifier> termsToAdd = new ArrayList<Modifier>();\r
+               for (Modifier term : listOfTerms) {\r
+\r
+                       if ((term.getPartOf() != null)\r
+                                       && (term.getPartOf().getTitleCache().equals("Plant Part"))) {\r
+                               termsToAdd.add(term);\r
+                       }\r
+               }\r
+               \r
+               return termsToAdd;\r
+       }\r
+\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms) {\r
                List<State> termsToAdd = new ArrayList<State>();\r
-               for(State term : listOfTerms) {\r
-                       \r
-                       if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals("Use Category"))) {\r
+               for (State term : listOfTerms) {\r
+\r
+                       if ((term.getPartOf() != null)\r
+                                       && (term.getPartOf().getTitleCache().equals("Use Category"))) {\r
                                termsToAdd.add(term);\r
                        }\r
                }\r
                return termsToAdd;\r
-               \r
+\r
        }\r
-       \r
+\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms,\r
                        State selectedUseCategory) {\r
                List<State> termsToAdd = new ArrayList<State>();\r
-               for(State term : listOfTerms) {\r
-                       if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(selectedUseCategory.getTitleCache()))) {\r
-                               termsToAdd.add(term);\r
+               if (combo_UseCategory.getSelection() != null) {\r
+                       \r
+                       for (State term : listOfTerms) {\r
+                               if ((term.getPartOf() != null)\r
+                                               && (term.getPartOf().getTitleCache()\r
+                                                               .equals(selectedUseCategory.getTitleCache()))) {\r
+                                       termsToAdd.add(term);\r
+                               }\r
+       \r
                        }\r
-                               \r
                }\r
-               \r
+               else if (!getEntity().getStates().isEmpty()) {\r
+                       for (StateData stateData : getEntity().getStates()) {\r
+                               if (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {\r
+                                       if ((stateData.getState() != null) && (stateData.getModifyingText().get(CdmStore.getDefaultLanguage()).getText() == "Use Category")) {\r
+                                               for (State term : listOfTerms) {\r
+                                                       if ((term.getPartOf() != null)\r
+                                                                       && (term.getPartOf().getTitleCache()\r
+                                                                                       .equals(stateData.getState().getTitleCache()))) {\r
+                                                               termsToAdd.add(term);\r
+                                                       }\r
+                                               }\r
+                                               \r
+                                       }\r
+                               }\r
+                       }\r
+                       \r
+               }\r
+                       \r
+               else {\r
+                       return null;\r
+               }\r
+\r
                // TODO Auto-generated method stub\r
                return termsToAdd;\r
        }\r
@@ -116,28 +284,165 @@ public class UseRecordDetailElement extends AbstractCdmDetailElement<Categorical
        /** {@inheritDoc} */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
-               /*if(eventSource == checkbox_orderRelevant){\r
-                       getEntity().setOrderRelevant(checkbox_orderRelevant.getSelection());\r
-               }*/\r
-               if(eventSource == combo_UseCategory){\r
-                       /*TermVocabulary<State> useCategoryVocabulary = TermVocabulary.NewInstance("Use category vocabulary", "use categories", null, null); \r
-                       State useCategory1 = State.NewInstance("My first use category", "use category 1", null);\r
-                       useCategoryVocabulary.addTerm(useCategory1);\r
-                       getEntity().addState(useCategory1);*/\r
-                       StateData stateData = StateData.NewInstance(combo_UseCategory.getSelection());\r
-                       stateData.setState(combo_UseCategory.getSelection());\r
-                       //List<State> currentStates = new ArrayList<State>();\r
-                       //currentStates.add(combo_UseCategory.getSelection());\r
-                       getEntity().addState(stateData);\r
-                       //getEntity().addState(combo_UseCategory.getSelection());\r
-                       //.setOrderRelevant(combo_UseCategory.getSelection());\r
+               /*\r
+                * if(eventSource == checkbox_orderRelevant){\r
+                * getEntity().setOrderRelevant(checkbox_orderRelevant.getSelection());\r
+                * }\r
+                */\r
+               if (eventSource == combo_UseCategory) {\r
+                       if (combo_UseCategory.getSelection() != null) {\r
+                               if (!getEntity().getStates().isEmpty()) {\r
+                                       for (StateData existingStateData : getEntity().getStates()) {\r
+                                               Map<Language, LanguageString> modifyingText = existingStateData\r
+                                                               .getModifyingText();\r
+       \r
+                                               if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
+                                                       if (modifyingText.get(CdmStore.getDefaultLanguage())\r
+                                                                       .getText() == "Use Category") {\r
+                                                               getEntity().removeState(existingStateData);\r
+                                                               StateData stateData = StateData.NewInstance(combo_UseCategory.getSelection());\r
+                                                               stateData.setState(combo_UseCategory.getSelection());\r
+                                                               //stateData.addModifyingText("Use Category", CdmStore.getDefaultLanguage());\r
+                                                               //stateData.putModifyingText(CdmStore.getDefaultLanguage(),"Use Category");\r
+                                                               getEntity().addState(stateData);\r
+                                                       } else {\r
+                                                               StateData stateData = StateData\r
+                                                                               .NewInstance(combo_UseCategory.getSelection());\r
+                                                               stateData.setState(combo_UseCategory.getSelection());\r
+                                                               //stateData.addModifyingText("Use Category", CdmStore.getDefaultLanguage());\r
+                                                               //stateData.putModifyingText(CdmStore.getDefaultLanguage(),"Use Category");\r
+                                                               getEntity().addState(stateData);\r
+                                                       }\r
+       \r
+                                               } else {\r
+                                                       StateData stateData = StateData\r
+                                                                       .NewInstance(combo_UseCategory.getSelection());\r
+                                                       stateData.setState(combo_UseCategory.getSelection());\r
+                                                       //stateData.addModifyingText("Use Category", CdmStore.getDefaultLanguage());\r
+                                                       //stateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use Category");\r
+                                                       getEntity().addState(stateData);\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else {\r
+                                       StateData stateData = StateData\r
+                                                       .NewInstance(combo_UseCategory.getSelection());\r
+                                       stateData.setState(combo_UseCategory.getSelection());\r
+                                       //stateData.addModifyingText("Use Category", CdmStore.getDefaultLanguage());\r
+                                       //LanguageString languageString = LanguageString.NewInstance("Use Category", CdmStore.getDefaultLanguage());\r
+                                       //IService object = (IService) CdmStore.getCurrentApplicationConfiguration().getBean(IService.class.getName());\r
+                                       //object.save(languageString);\r
+                                       //stateData.putModifyingText(languageString);\r
+                                       getEntity().addState(stateData);\r
+                               }\r
+                               combo_UseSubCategory.setEnabled(true);\r
+       \r
+                       }\r
+               }\r
+               if (eventSource == combo_UseSubCategory) {\r
+                       if (combo_UseSubCategory.getSelection() != null) {\r
+                               if (!getEntity().getStates().isEmpty()) {\r
+                                       for (StateData existingStateData : getEntity().getStates()) {\r
+                                               Map<Language, LanguageString> modifyingText = existingStateData\r
+                                                               .getModifyingText();\r
+       \r
+                                               if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
+                                                       if (modifyingText.get(CdmStore.getDefaultLanguage())\r
+                                                                       .getText() == "Use SubCategory") {\r
+                                                               getEntity().removeState(existingStateData);\r
+                                                               StateData stateData = StateData.NewInstance(combo_UseSubCategory.getSelection());\r
+                                                               stateData.setState(combo_UseSubCategory.getSelection());\r
+                                                               //stateData.addModifyingText("Use SubCategory", CdmStore.getDefaultLanguage());\r
+                                                               //stateData.putModifyingText(CdmStore.getDefaultLanguage(),"Use SubCategory");\r
+                                                               getEntity().addState(stateData);\r
+                                                       } else {\r
+                                                               StateData stateData = StateData\r
+                                                                               .NewInstance(combo_UseSubCategory.getSelection());\r
+                                                               stateData.setState(combo_UseSubCategory.getSelection());\r
+                                                               //stateData.addModifyingText("Use SubCategory", CdmStore.getDefaultLanguage());\r
+                                                               //stateData.putModifyingText(CdmStore.getDefaultLanguage(),"Use SubCategory");\r
+                                                               getEntity().addState(stateData);\r
+                                                       }\r
+       \r
+                                               } else {\r
+                                                       StateData stateData = StateData\r
+                                                                       .NewInstance(combo_UseSubCategory.getSelection());\r
+                                                       stateData.setState(combo_UseSubCategory.getSelection());\r
+                                                       //stateData.addModifyingText("Use SubCategory", CdmStore.getDefaultLanguage());\r
+                                                       //stateData.putModifyingText(CdmStore.getDefaultLanguage(), "Use SubCategory");\r
+                                                       getEntity().addState(stateData);\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else {\r
+                                       StateData stateData = StateData\r
+                                                       .NewInstance(combo_UseSubCategory.getSelection());\r
+                                       stateData.setState(combo_UseSubCategory.getSelection());\r
+                                       //stateData.addModifyingText("Use SubCategory", CdmStore.getDefaultLanguage());\r
+                                       //LanguageString languageString = LanguageString.NewInstance("Use SubCategory", CdmStore.getDefaultLanguage());\r
+                                       //IService object = (IService) CdmStore.getCurrentApplicationConfiguration().getBean(IService.class.getName());\r
+                                       //object.save(languageString);\r
+                                       //stateData.putModifyingText(languageString);\r
+                                       getEntity().addState(stateData);\r
+                               }\r
+       \r
+                       }\r
+               }\r
+               if (eventSource == combo_PlantPart) {\r
+                       if (combo_PlantPart.getSelection() != null) {\r
+                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               if(!modifiers.isEmpty()) {\r
+                                       for (Modifier modifier : modifiers) {\r
+                                               if (modifier.getMarkers() != null) {\r
+                                                       for (Marker marker : modifier.getMarkers()) {\r
+                                                               if (marker.getMarkerType().getTitleCache().equals("PlantPart")) {\r
+                                                                       /*getEntity().removeModifier(modifier);\r
+                                                                       Modifier plantPart = combo_PlantPart.getSelection();\r
+                                                                       plantPart.addMarker(marker);\r
+                                                                       getEntity().addModifier(plantPart);*/\r
+                                                                       getEntity().addModifier(combo_PlantPart.getSelection());\r
+                                                               } \r
+                                                               else {\r
+                                                                       /*MarkerType markerType = MarkerType.NewInstance("PlantPart", "PlantPart", null);\r
+                                                                       Marker markerPlantPart = Marker.NewInstance(markerType, false);\r
+                                                                       Modifier plantPart = combo_PlantPart.getSelection();\r
+                                                                       plantPart.addMarker(markerPlantPart);\r
+                                                                       getEntity().addModifier(plantPart);*/\r
+                                                                       getEntity().addModifier(combo_PlantPart.getSelection());\r
+                                                               }\r
+                                                                       \r
+                                                                       \r
+                                                       }\r
+                                                               \r
+                                               }\r
+                                               else {\r
+                                                       /*MarkerType markerType = MarkerType.NewInstance("PlantPart", "PlantPart", null);\r
+                                                       Marker marker = Marker.NewInstance(markerType, false);\r
+                                                       Modifier plantPart = combo_PlantPart.getSelection();\r
+                                                       plantPart.addMarker(marker);\r
+                                                       getEntity().addModifier(plantPart);*/\r
+                                                       getEntity().addModifier(combo_PlantPart.getSelection());\r
+                                               }\r
+                                                       \r
+                                       }       \r
+                               }\r
+                               else {\r
+                                       /*MarkerType markerType = MarkerType.NewInstance("PlantPart", "PlantPart", null);\r
+                                       Marker marker = Marker.NewInstance(markerType, false);\r
+                                       Modifier plantPart = combo_PlantPart.getSelection();\r
+                                       plantPart.addMarker(marker);\r
+                                       getEntity().addModifier(plantPart);*/\r
+                                       getEntity().addModifier(combo_PlantPart.getSelection());\r
+                               }\r
+                       }\r
                }\r
        }\r
        \r
+\r
        /** {@inheritDoc} */\r
        @Override\r
        public void setEntity(CategoricalData entity) {\r
-//             section_stateData.setEntity(entity);\r
+               // section_stateData.setEntity(entity);\r
                super.setEntity(entity);\r
        }\r
 \r
@@ -145,22 +450,23 @@ public class UseRecordDetailElement extends AbstractCdmDetailElement<Categorical
        public void widgetSelected(SelectionEvent e) {\r
                State selectedUseCategory = combo_UseCategory.getSelection();\r
                if (selectedUseCategory != null) {\r
-                       combo_UseSubCategory.setTerms(setUseCategoryComboTerms(TermStore.getTerms(State.class,null , false), selectedUseCategory));\r
-                       /*selectedLanguageString = getMultilanguageText().get(\r
-                                       selectedLanguage);\r
-\r
-                       element_languageString.setLanguageString(selectedLanguageString);*/\r
+                       combo_UseSubCategory.setTerms(setUseCategoryComboTerms(\r
+                                       TermStore.getTerms(State.class, null, false),\r
+                                       selectedUseCategory));\r
+                       /*\r
+                        * selectedLanguageString = getMultilanguageText().get(\r
+                        * selectedLanguage);\r
+                        * \r
+                        * element_languageString.setLanguageString(selectedLanguageString);\r
+                        */\r
                }\r
-               \r
-       }\r
 \r
-       \r
+       }\r
 \r
        @Override\r
        public void widgetDefaultSelected(SelectionEvent e) {\r
                // TODO Auto-generated method stub\r
-               \r
+\r
        }\r
-       \r
 \r
 }\r