ref #10138: after parsing send event to update the details view
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / userecords / UseRecordDetailElement.java
index d3e0f7fcb75d4b51395f0d1bf911671e89aa518d..d7ea8df74a0a9232050fa6267c028051caa1048b 100644 (file)
@@ -15,38 +15,39 @@ import java.util.ListIterator;
 import java.util.Map;\r
 import java.util.Set;\r
 \r
-import org.apache.log4j.Logger;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
 \r
-import eu.etaxonomy.cdm.model.common.DefinedTerm;\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
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
-import eu.etaxonomy.taxeditor.editor.UsageTermCollection;\r
+import eu.etaxonomy.cdm.model.term.DefinedTerm;\r
+import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.TermStore;\r
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;\r
-import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;\r
+import eu.etaxonomy.taxeditor.store.UsageTermCollection;\r
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 \r
-\r
 /**\r
  * The context manager mediates context start/stop and workbench shutdowns to all registered listeners.\r
  *\r
  * @author a.theys\r
  * @created mar 13, 2012\r
- * @version 1.0\r
  */\r
 public class UseRecordDetailElement extends\r
                AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
 \r
        @SuppressWarnings("unused")\r
-       private static final Logger logger = Logger.getLogger(UseRecordDetailElement.class);\r
+       private static final Logger logger = LogManager.getLogger();\r
 \r
        private TermComboElement<State> combo_UseCategory;\r
        private TermComboElement<State> combo_UseSubCategory;\r
@@ -60,19 +61,18 @@ public class UseRecordDetailElement extends
                super(formFactory, formElement);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected void createControls(ICdmFormElement formElement,\r
                        CategoricalData entity, int style) {\r
 \r
-               combo_UseCategory = formFactory.createTermComboElement(State.class,     this, UsageTermCollection.useCategoryVocabularyLabel, null, style);\r
+               combo_UseCategory = formFactory.createDefinedTermComboElement(TermType.State, this, UsageTermCollection.useCategoryVocabularyLabel, null, style);\r
                combo_UseCategory.addSelectionListener(this);\r
-               combo_UseSubCategory = formFactory.createTermComboElement(State.class, this, UsageTermCollection.useSubCategoryVocabularyLabel, null, style);\r
-               combo_PlantPart = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.plantPartLabel, null, style);\r
-               combo_HumanGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.humanGroupLabel, null, style);\r
+               combo_UseSubCategory = formFactory.createDefinedTermComboElement(TermType.State, this, UsageTermCollection.useSubCategoryVocabularyLabel, null, style);\r
+               combo_PlantPart = formFactory.createDefinedTermComboElement(TermType.Modifier, this, UsageTermCollection.plantPartLabel, null, style);\r
+               combo_HumanGroup = formFactory.createDefinedTermComboElement(TermType.Modifier, this, UsageTermCollection.humanGroupLabel, null, style);\r
                combo_HumanGroup.addSelectionListener(this);\r
-               combo_EthnicGroup = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
-               combo_Country   = formFactory.createTermComboElement(DefinedTerm.class, this, UsageTermCollection.countryLabel, null, style);\r
+               combo_EthnicGroup = formFactory.createDefinedTermComboElement(TermType.Modifier, this, UsageTermCollection.ethnicGroupLabel, null, style);\r
+               combo_Country   = formFactory.createDefinedTermComboElement(TermType.Modifier, this, UsageTermCollection.countryLabel, null, style);\r
 \r
 \r
                List<State> termsUseCategory = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false));\r
@@ -110,13 +110,10 @@ public class UseRecordDetailElement extends
                } else {\r
                        combo_EthnicGroup.setEnabled(false);\r
                }\r
-\r
        }\r
 \r
        /**\r
         * Returns the select modifier\r
-        * @param comboCategory\r
-        * @return\r
         */\r
        private DefinedTerm modifierSelection(String comboCategory) {\r
                if(!getEntity().getModifiers().isEmpty()) {\r
@@ -129,13 +126,10 @@ public class UseRecordDetailElement extends
                        return null;\r
                }\r
                return null;\r
-\r
        }\r
 \r
        /**\r
         * Returns the selected state\r
-        * @param comboCategory\r
-        * @return\r
         */\r
        private State stateSelection(String comboCategory) {\r
                if (!getEntity().getStateData().isEmpty()) {\r
@@ -144,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
@@ -154,14 +148,10 @@ public class UseRecordDetailElement extends
                        return null;\r
                }\r
                return null;\r
-\r
        }\r
 \r
        /**\r
         * This function sets the combo terms (Besides EthnicGroup\r
-        * @param listOfTerms\r
-        * @param modType\r
-        * @return\r
         */\r
        private List<DefinedTerm> setModifierComboTerms(List<DefinedTerm> listOfTerms, String modType) {\r
                List<DefinedTerm> termsToAdd = new ArrayList<DefinedTerm>();\r
@@ -178,36 +168,29 @@ public class UseRecordDetailElement extends
                return termsToAdd;\r
        }\r
 \r
-\r
        /**\r
         * This function sets the Use Category combo term\r
-        * @param listOfTerms\r
-        * @return\r
         */\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms) {\r
-               List<State> termsToAdd = new ArrayList<State>();\r
+        List<State> termsToAdd = new ArrayList<>();\r
                for (State term : listOfTerms) {\r
-\r
-                       if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(UsageTermCollection.useCategoryVocabularyLabel))) {\r
+                   if ((term.getPartOf() != null) && (term.getPartOf().getUuid().equals( UsageTermCollection.uuidUseCategoryVocabulary))) {\r
                                termsToAdd.add(term);\r
                        }\r
-                       else if ((term.getVocabulary() !=null) && (term.getPartOf() == null) && (term.getVocabulary().getTitleCache().equals(UsageTermCollection.useCategoryVocabularyLabel))) {\r
+                       else if ((term.getVocabulary() !=null) && (term.getPartOf() == null) && (term.getVocabulary().getUuid().equals(UsageTermCollection.uuidUseCategoryVocabulary))) {\r
                                termsToAdd.add(term);\r
                        }\r
                }\r
                return termsToAdd;\r
-\r
        }\r
 \r
        /**\r
         * This function sets the Use SubCategory combo term\r
-        * @param listOfTerms\r
-        * @param selectedUseCategory\r
-        * @return\r
         */\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms,\r
                        State selectedUseCategory) {\r
-               List<State> termsToAdd = new ArrayList<State>();\r
+\r
+               List<State> termsToAdd = new ArrayList<>();\r
                if (combo_UseCategory.getSelection() != null) {\r
 \r
                        for (State term : listOfTerms) {\r
@@ -235,9 +218,7 @@ public class UseRecordDetailElement extends
                                        }\r
                                }\r
                        }\r
-\r
                }\r
-\r
                else {\r
                        return null;\r
                }\r
@@ -248,9 +229,6 @@ public class UseRecordDetailElement extends
 \r
        /**\r
         * This function sets the EthnicGroup combo term\r
-        * @param listOfTerms\r
-        * @param selectedHumangroup\r
-        * @return\r
         */\r
        private List<DefinedTerm> setEthnicGroupComboTerms(List<DefinedTerm> listOfTerms,\r
                        DefinedTerm selectedHumangroup) {\r
@@ -290,8 +268,6 @@ public class UseRecordDetailElement extends
                return termsToAdd;\r
        }\r
 \r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
                if (eventSource == combo_UseCategory) {\r
@@ -331,7 +307,6 @@ public class UseRecordDetailElement extends
                                        }\r
                                }\r
 \r
-\r
                                if (isChanged == false) {\r
                                        StateData stateData = StateData\r
                                                        .NewInstance(combo_UseCategory.getSelection());\r
@@ -341,16 +316,15 @@ public class UseRecordDetailElement extends
                                }\r
 \r
                                combo_UseSubCategory.setEnabled(true);\r
-\r
                        }\r
                        else {\r
                                if (!getEntity().getStateData().isEmpty()) {\r
                                        Iterator<StateData> itr = getEntity().getStateData().iterator();\r
                                        while(itr.hasNext()) {\r
-                                               StateData stateToRemove = itr.next();\r
+                                               itr.next();\r
                                                itr.remove();\r
                                        }\r
-                                       List<State> termsSubCategory = new ArrayList<State>();\r
+                                       List<State> termsSubCategory = new ArrayList<>();\r
                                        State emptyState = State.NewInstance();\r
                                        termsSubCategory.add(emptyState);\r
                                        combo_UseSubCategory.setTerms(termsSubCategory);\r
@@ -390,7 +364,6 @@ public class UseRecordDetailElement extends
                                        stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useSubCategoryVocabularyLabel);\r
                                        getEntity().addStateData(stateData);\r
                                }\r
-\r
                        } else {\r
                                if (!getEntity().getStateData().isEmpty()) {\r
                                        Iterator<StateData> itrStateData = getEntity().getStateData().iterator();\r
@@ -416,7 +389,6 @@ public class UseRecordDetailElement extends
                                        if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                DefinedTerm plantPart = combo_PlantPart.getSelection();\r
                                getEntity().addModifier(plantPart);\r
@@ -431,7 +403,6 @@ public class UseRecordDetailElement extends
                                                }\r
                                        }\r
                                }\r
-\r
                        }\r
                }\r
                if (eventSource == combo_Country) {\r
@@ -442,7 +413,6 @@ public class UseRecordDetailElement extends
                                        if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                DefinedTerm country = combo_Country.getSelection();\r
                                getEntity().addModifier(country);\r
@@ -465,9 +435,7 @@ public class UseRecordDetailElement extends
                                for (DefinedTerm modToCheck: getEntity().getModifiers()) {\r
                                        if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, UsageTermCollection.humanGroupLabel))) {\r
                                                isHumanGroupChanged = false;\r
-                               }\r
-\r
-\r
+                                       }\r
                                }\r
                                Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                while (itrExistingModifiers.hasNext()) {\r
@@ -475,7 +443,6 @@ public class UseRecordDetailElement extends
                                        if((GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel) || GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) && isHumanGroupChanged) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                if(isHumanGroupChanged){\r
                                        DefinedTerm humanGroup = combo_HumanGroup.getSelection();\r
@@ -494,15 +461,13 @@ public class UseRecordDetailElement extends
                                        }\r
                                }\r
                                List<DefinedTerm> emptyListToResetComboBox = new ArrayList<DefinedTerm>();\r
-                               \r
+\r
 //                             DefinedTerm emptyMod = DefinedTerm.NewInstance();\r
                                DefinedTerm emptyMod = null;\r
 \r
-\r
                                emptyListToResetComboBox.add(emptyMod);\r
                                combo_EthnicGroup.setTerms(emptyListToResetComboBox);\r
                                combo_EthnicGroup.setEnabled(false);\r
-\r
                        }\r
                }\r
                if (eventSource == combo_EthnicGroup) {\r
@@ -513,7 +478,6 @@ public class UseRecordDetailElement extends
                                                if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
                                                        itrExistingModifiers.remove();\r
                                                }\r
-\r
                                        }\r
                                        DefinedTerm ethnicGroup = combo_EthnicGroup.getSelection();\r
                                        getEntity().addModifier(ethnicGroup);\r
@@ -528,19 +492,13 @@ public class UseRecordDetailElement extends
                                                        itr.remove();\r
                                                }\r
                                        }\r
-\r
                                }\r
                        }\r
                }\r
        }\r
 \r
-\r
-\r
        /**\r
         * This function Checks the vocabulary type\r
-        * @param term\r
-        * @param vocabularyExpected\r
-        * @return\r
         */\r
        private boolean GetVocabularyType(DefinedTerm term, String vocabularyExpected) {\r
                if ((term.getPartOf() != null)  && (term.getPartOf().getTitleCache().equals(vocabularyExpected))) {\r
@@ -555,15 +513,11 @@ public class UseRecordDetailElement extends
        return false;\r
        }\r
 \r
-\r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setEntity(CategoricalData entity) {\r
                super.setEntity(entity);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void widgetSelected(SelectionEvent e) {\r
                Object eventSource = e.getSource();\r
@@ -603,17 +557,26 @@ public class UseRecordDetailElement extends
                                                        }\r
                                                }\r
                                        }\r
-\r
                                }\r
                        }\r
                }\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void widgetDefaultSelected(SelectionEvent e) {\r
                // TODO Auto-generated method stub\r
+       }\r
+
 \r
+       @Override\r
+       public void fillFields() {\r
+               // TODO \r
+               //combo_UseCategory;\r
+               //combo_UseSubCategory;\r
+               //combo_PlantPart;\r
+               //combo_Country;\r
+               //combo_HumanGroup;\r
+               //combo_EthnicGroup;\r
        }\r
 \r
-}\r
+}