AT: commiting latest changes to the Palm Use data extension
authora.theys <a.theys@localhost>
Tue, 14 Feb 2012 13:00:14 +0000 (13:00 +0000)
committera.theys <a.theys@localhost>
Tue, 14 Feb 2012 13:00:14 +0000 (13:00 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java

index 127b73c3791e607a76f5a05028d4a8b696aa5b14..7e8106fcb22ab98d64ccbdb7915a2a84b770580c 100644 (file)
@@ -50,38 +50,49 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                        //TextData textData = categoricalDescriptionBuilder.build((CategoricalData) element, getLanguageList());\r
                        if (!((CategoricalData) element).getStates().isEmpty()) {\r
                                for (StateData statedata : ((CategoricalData) element).getStates()) {\r
-                                       if(statedata.getState() != null) {\r
+                                       if(statedata.getState() != null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) !=null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText().equals("Use Category")) {\r
+                                               text = text + statedata.getState().getTitleCache() + "; ";\r
+                                       }\r
+                               }\r
+                               for (StateData statedata : ((CategoricalData) element).getStates()) {\r
+                                       if(statedata.getState() != null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()) !=null && statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText().equals("Use SubCategory")) {\r
                                                text = text + statedata.getState().getTitleCache() + "; ";\r
                                        }\r
-                                       /*else {\r
-                                               text = "No data provided";\r
-                                       }*/\r
                                }\r
                        }\r
-                       \r
                        if (!((CategoricalData) element).getModifiers().isEmpty()) {\r
-                               for (Modifier modifier : ((CategoricalData) element).getModifiers()) {\r
-                                       text = text + modifier.getTitleCache();\r
+                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                                       if(GetVocabularyType(modifier, "Country")) {\r
+                                               text = text +  modifier.getTitleCache()+ "; ";\r
+                                       }\r
+                                       \r
+                               }\r
+                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                                       if(GetVocabularyType(modifier, "Plant Part")) {\r
+                                               text = text +  modifier.getTitleCache()+ "; ";\r
+                                       }\r
+                                       \r
+                               }\r
+                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                                       if(GetVocabularyType(modifier, "Human Group")) {\r
+                                               text = text +  modifier.getTitleCache()+ "; ";\r
+                                       }\r
+                                       \r
+                               }\r
+                               for (Modifier modifier: ((CategoricalData) element).getModifiers()){\r
+                                       if(GetVocabularyType(modifier, "Ethnic Group")) {\r
+                                               text = text +  modifier.getTitleCache()+ "; ";\r
+                                       }\r
+                                       \r
                                }\r
                        }\r
-\r
-                       \r
-                       //text = textData.getText(CdmStore.getDefaultLanguage());\r
+               \r
                        if (text == null || text.length() == 0) {\r
                                text = "No data provided";\r
                        }\r
                        return text;\r
                }\r
-               /*else  if (element instanceof DescriptionElementBase) {\r
-                       Map useRecordText = ((DescriptionElementBase) element).getModifyingText();\r
-                       \r
-                       \r
-                       if (text == null || text.length() == 0) {\r
-                               text = "Use Record: No label provided";\r
-                       }\r
-                       text = useRecordText.toString();\r
-                       //text = "Something else";\r
-               }*/\r
+\r
                else{\r
                        text = "Use Record";\r
                }\r
@@ -89,6 +100,16 @@ public class UsesLabelProvider extends ColumnLabelProvider implements
                return  text;\r
        }\r
 \r
+       \r
+       private boolean GetVocabularyType(Modifier term, String vocabularyExpected) {\r
+               if ((term.getPartOf() != null) && (term.getPartOf().getTitleCache().equals(vocabularyExpected))) {\r
+                       return true;\r
+               }\r
+               else if ((term.getVocabulary() != null) && (term.getVocabulary().getTitleCache().equals(vocabularyExpected))) {\r
+                       return true;\r
+               }\r
+               return false;\r
+       }\r
        @Override\r
        public StyledString getStyledText(Object element) {\r
                return new StyledString(this.getText(element),\r
index f008e4c0441c968cff312e843cb07f880ffb42e8..12db542ea04713779f74b7e499487e5cad691099 100644 (file)
@@ -1,6 +1,7 @@
 package eu.etaxonomy.taxeditor.ui.section.userecords;\r
 \r
 import java.util.ArrayList;\r
+import java.util.Iterator;\r
 import java.util.List;\r
 import java.util.Map;\r
 import java.util.Set;\r
@@ -75,9 +76,6 @@ public class UseRecordDetailElement extends
        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 SubCategory", null, style);\r
@@ -95,7 +93,6 @@ public class UseRecordDetailElement extends
                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(stateSelection("Use SubCategory"));\r
                        combo_UseSubCategory.setEnabled(true);\r
@@ -133,22 +130,6 @@ public class UseRecordDetailElement extends
                                if(GetVocabularyType(modifier, comboCategory)) {\r
                                        return modifier;\r
                                }\r
-                               \r
-                               \r
-                               /*if (modifier.getMarkers() != null) {\r
-                                       for (Marker marker : modifier.getMarkers()) {\r
-                                               if(marker.getMarkerType().getTitleCache().equals(comboCategory)) {\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
@@ -596,17 +577,29 @@ public class UseRecordDetailElement extends
                                        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(CdmStore.getDefaultLanguage(), "Use Category");\r
                                        getEntity().addState(stateData);\r
                                }\r
+                               \r
                                combo_UseSubCategory.setEnabled(true);\r
        \r
                        }\r
+                       else {\r
+                               if (!getEntity().getStates().isEmpty()) {\r
+                                       Iterator<StateData> itr = getEntity().getStates().iterator();\r
+                                       while(itr.hasNext()) {\r
+                                               StateData stateToRemove = itr.next();\r
+                                               itr.remove();\r
+                                       }\r
+                                       List<State> termsSubCategory = new ArrayList<State>();\r
+                                       State emptyState = State.NewInstance();\r
+                                       termsSubCategory.add(emptyState);\r
+                                       combo_UseSubCategory.setTerms(termsSubCategory);\r
+                                       combo_UseSubCategory.setEnabled(false);\r
+                               }\r
+                       }\r
                }\r
+                       \r
                if (eventSource == combo_UseSubCategory) {\r
                        if (combo_UseSubCategory.getSelection() != null) {\r
                                boolean isChanged = false;\r
@@ -660,6 +653,19 @@ public class UseRecordDetailElement extends
                                        getEntity().addState(stateData);\r
                                }\r
        \r
+                       } else {\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()).getText() == "Use SubCategory") {\r
+                                                               getEntity().removeState(existingStateData);\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
                        }\r
                }\r
                if (eventSource == combo_PlantPart) {\r
@@ -719,6 +725,17 @@ public class UseRecordDetailElement extends
                                        \r
                                        //getEntity().addModifier(combo_PlantPart.getSelection());\r
                                }\r
+                       } else {\r
+                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               if(!modifiers.isEmpty()) {\r
+                                       for (Modifier modifier : modifiers) {\r
+                                               if(GetVocabularyType(modifier, "Plant Part")) {\r
+                                                       getEntity().removeModifier(modifier);\r
+                                               \r
+                                               }\r
+                                       }\r
+                               }\r
+                               \r
                        }\r
                }\r
                if (eventSource == combo_Country) {\r
@@ -775,6 +792,17 @@ public class UseRecordDetailElement extends
                                        getEntity().addModifier(country);\r
                                        //getEntity().addModifier(combo_Country.getSelection());\r
                                }\r
+                       } else {\r
+                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               if(!modifiers.isEmpty()) {\r
+                                       for (Modifier modifier : modifiers) {\r
+                                               if(GetVocabularyType(modifier, "Country")) {\r
+                                                       getEntity().removeModifier(modifier);\r
+                                               \r
+                                               }\r
+                                       }\r
+                               }\r
+                               \r
                        }\r
                }\r
                if (eventSource == combo_HumanGroup) {\r
@@ -831,8 +859,37 @@ public class UseRecordDetailElement extends
                                        getEntity().addModifier(humanGroup);\r
                                        //getEntity().addModifier(combo_HumanGroup.getSelection());\r
                                }\r
+                               combo_EthnicGroup.setEnabled(true);\r
+                       } else {\r
+                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               if(!modifiers.isEmpty()) {\r
+                                       Iterator<Modifier> itr = modifiers.iterator();\r
+                                       while (itr.hasNext()) {\r
+                                               Modifier currentMod = itr.next();\r
+                                               if(GetVocabularyType(currentMod, "Human Group") || GetVocabularyType(currentMod, "Ethnic Group")) {\r
+                                                       itr.remove();\r
+                                               }\r
+                                       }\r
+                                       \r
+                                       \r
+                                       /*for (Modifier modifier : modifiers) {\r
+                                               if(GetVocabularyType(modifier, "Human Group")) {\r
+                                                       getEntity().removeModifier(modifier);\r
+                                               \r
+                                               }\r
+                                               if(GetVocabularyType(modifier, "Ethnic Group")) {\r
+                                                       getEntity().removeModifier(modifier);\r
+                                               \r
+                                               }\r
+                                       }*/\r
+                               }\r
+                               List<Modifier> emptyListToResetComboBox = new ArrayList<Modifier>();\r
+                               Modifier emptyMod = Modifier.NewInstance();\r
+                               emptyListToResetComboBox.add(emptyMod);\r
+                               combo_EthnicGroup.setTerms(emptyListToResetComboBox);\r
+                               combo_EthnicGroup.setEnabled(false);\r
+                               \r
                        }\r
-                       combo_EthnicGroup.setEnabled(true);\r
                }\r
                if (eventSource == combo_EthnicGroup) {\r
                        if (combo_EthnicGroup.getSelection() != null) {\r
@@ -888,6 +945,18 @@ public class UseRecordDetailElement extends
                                        getEntity().addModifier(ethnicGroup);\r
                                        //getEntity().addModifier(combo_EthnicGroup.getSelection());\r
                                }\r
+                       } else {\r
+                               Set<Modifier> modifiers = getEntity().getModifiers();\r
+                               if(!modifiers.isEmpty()) {\r
+                                       for (Modifier modifier : modifiers) {\r
+                                               if(GetVocabularyType(modifier, "Ethnic Group")) {\r
+                                                       getEntity().removeModifier(modifier);\r
+                                               \r
+                                               }\r
+                                               \r
+                                       }\r
+                               }\r
+                               \r
                        }\r
                }\r
        }\r