import java.util.List;
import java.util.Set;
+import java.util.UUID;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.CategoricalData;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
}
if (description != null) {
- //CategoricalData element = CategoricalData.NewInstance();
AbstractPostOperation operation = null;
try {
- List<Feature> features = CdmStore.getTermManager().getPreferredTerms(Feature.class);
- //TextData element = TextData.NewInstance();
- /*TextData feature = TextData.NewInstance();
- *Feature feature = (Feature) HibernateProxyHelper.deproxy(feature);*/
- for (Feature feature : features) {
- //if(feature.getTitleCache().equals("Use Record")) {
- if(feature.getTitleCache().equals("Uses")) {
- feature.setSupportsCategoricalData(true);
- //CategoricalData element = CategoricalData.NewInstance();
- //element.setFeature(feature);
- /*operation = new CreateUseRecordOperation(event
- .getCommand().getName(),
- EditorUtil.getUndoContext(), taxon,
- description, feature, postOperationEnabled);*/
- operation = new CreateUseRecordOperation(event
- .getCommand().getName(),
- EditorUtil.getUndoContext(), taxon,
- description, feature, postOperationEnabled);
-
- }
- }
- // TODO use undo context specific to editor
+ //Use Record Feature retrieval below
+ //Feature feature = (Feature) CdmStore.getService(ITermService.class).find(UUID.fromString("8125a59d-b4d5-4485-89ea-67306297b599"));
+ //Feature feature = (Feature) CdmStore.getService(ITermService.class).find(UUID.fromString("247606f2-5f24-421f-92ca-dad2351b171e"));
+ //The code below retrieves the feature "Uses" as a work around
+ Feature feature = (Feature) CdmStore.getService(ITermService.class).find(UUID.fromString("e5374d39-b210-47c7-bec1-bee05b5f1cb6"));
+ feature.setSupportsCategoricalData(true);
+ operation = new CreateUseRecordOperation(event
+ .getCommand().getName(),
+ EditorUtil.getUndoContext(), taxon,
+ description, feature, postOperationEnabled);
EditorUtil.executeOperation(operation);
} catch (NotDefinedException e) {
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementDetailElement;\r
\r
-//public class UseRecordDetailElement extends AbstractDetailedDescriptionDetailElement<CategoricalData> {\r
public class UseRecordDetailElement extends\r
AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
\r
private static final Logger logger = Logger\r
- .getLogger(DescriptionElementDetailElement.class);\r
+ .getLogger(UseRecordDetailElement.class);\r
\r
- // private CheckboxElement checkbox_orderRelevant;\r
private TermComboElement<State> combo_UseCategory;\r
private TermComboElement<State> combo_UseSubCategory;\r
private TermComboElement<Modifier> combo_PlantPart;\r
private TermComboElement<Modifier> combo_Country;\r
private TermComboElement<Modifier> combo_HumanGroup;\r
private TermComboElement<Modifier> combo_EthnicGroup;\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
if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals("Use Category")) {\r
isChanged = true;\r
if(!existingStateData.getState().getTitleCache().equals(combo_UseCategory.getSelection().getTitleCache())) {\r
- //getEntity().removeState(existingStateData);\r
itrExistingStates.remove();\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
itrExistingStates.add(stateData);\r
- //getEntity().addState(stateData);\r
+ \r
}\r
} else if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals("Use SubCategory") && isUseCategoryChanged == true) {\r
itrExistingStates.remove();\r
boolean isChanged = false;\r
if (!getEntity().getStates().isEmpty()) {\r
ListIterator<StateData> itrExistingStates = getEntity().getStates().listIterator();\r
- //for (StateData existingStateData : getEntity().getStates()) {\r
while(itrExistingStates.hasNext()) {\r
StateData existingStateData = itrExistingStates.next();\r
Map<Language, LanguageString> modifyingText = existingStateData\r
if (modifyingText.get(CdmStore.getDefaultLanguage()).getText().equals("Use SubCategory")) {\r
isChanged = true;\r
if(!existingStateData.getState().getTitleCache().equals(combo_UseSubCategory.getSelection().getTitleCache())) {\r
- //getEntity().removeState(existingStateData);\r
itrExistingStates.remove();\r
StateData stateData = StateData.NewInstance(combo_UseSubCategory.getSelection());\r
stateData.setState(combo_UseSubCategory.getSelection());\r
- //stateData.addModifyingText("Use Category", CdmStore.getDefaultLanguage());\r
stateData.putModifyingText(CdmStore.getDefaultLanguage(),"Use SubCategory");\r
itrExistingStates.add(stateData);\r
- //getEntity().addState(stateData);\r
}\r
}\r
}\r
if (!getEntity().getStates().isEmpty()) {\r
Iterator<StateData> itrStateData = getEntity().getStates().iterator();\r
while(itrStateData.hasNext()) {\r
- //for (StateData existingStateData : getEntity().getStates()) {\r
StateData existingStateData = itrStateData.next();\r
Map<Language, LanguageString> modifyingText = existingStateData\r
.getModifyingText();\r
if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
if (modifyingText.get(CdmStore.getDefaultLanguage()).getText() == "Use SubCategory") {\r
itrStateData.remove();\r
- //getEntity().removeState(existingStateData);\r
}\r
}\r
}\r
}\r
if (eventSource == combo_PlantPart) {\r
if (combo_PlantPart.getSelection() != null) {\r
- boolean isChanged = false;\r
- //MarkerType markerType = MarkerType.NewInstance("Plant Part", "Plant Part", null);\r
- /*Set<Modifier> modifiers = getEntity().getModifiers();\r
- List<Modifier> lModifiers = new ArrayList<Modifier>(modifiers);\r
- ListIterator<Modifier> itrExistingModifiers = lModifiers.listIterator();*/\r
Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
- //if(!modifiers.isEmpty()) {\r
- //for (Modifier modifier : modifiers) {\r
while (itrExistingModifiers.hasNext()) {\r
Modifier modifier = itrExistingModifiers.next();\r
if(GetVocabularyType(modifier, "Plant Part")) {\r
- //getEntity().removeModifier(modifier);\r
itrExistingModifiers.remove();\r
- //getEntity().addModifier(combo_PlantPart.getSelection());\r
- //itrExistingModifiers.add(combo_PlantPart.getSelection());\r
- isChanged = true;\r
}\r
\r
} \r
- //}\r
- //if(isChanged == false) {\r
- \r
Modifier plantPart = combo_PlantPart.getSelection();\r
getEntity().addModifier(plantPart);\r
- //}\r
} else {\r
Set<Modifier> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
itr.remove();\r
}\r
}\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
if (combo_Country.getSelection() != null) {\r
- boolean isChanged = false;\r
- //Set<Modifier> modifiers = getEntity().getModifiers();\r
- //List<Modifier> lModifiers = new ArrayList<Modifier>(modifiers);\r
- //ListIterator<Modifier> itrExistingModifiers = lModifiers.listIterator();\r
- //ListIterator<Modifier> itrExistingModifiers = new ArrayList(getEntity().getModifiers()).listIterator();\r
- //if(!modifiers.isEmpty()) {\r
- //for (Modifier modifier : modifiers) {\r
Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
while (itrExistingModifiers.hasNext()) {\r
Modifier modifier = itrExistingModifiers.next();\r
if(GetVocabularyType(modifier, "Country")) {\r
- //getEntity().removeModifier(modifier);\r
itrExistingModifiers.remove();\r
- //getEntity().addModifier(combo_PlantPart.getSelection());\r
- //itrExistingModifiers.add(combo_Country.getSelection());\r
- isChanged = true;\r
}\r
\r
}\r
- //}\r
- //if (isChanged == false) {\r
- Modifier country = combo_Country.getSelection();\r
- getEntity().addModifier(country);\r
- //}\r
+ Modifier country = combo_Country.getSelection();\r
+ getEntity().addModifier(country);\r
} else {\r
Set<Modifier> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
itr.remove();\r
}\r
}\r
- /*for (Modifier modifier : modifiers) {\r
- if(GetVocabularyType(modifier, "Country")) {\r
- getEntity().removeModifier(modifier);\r
- \r
- }\r
- }*/\r
}\r
}\r
}\r
if (eventSource == combo_HumanGroup) {\r
if (combo_HumanGroup.getSelection() != null) {\r
- //boolean toCreate = false;\r
boolean isHumanGroupChanged = true;\r
- /*Set<Modifier> modifiers = getEntity().getModifiers();\r
- List<Modifier> lModifiers = new ArrayList<Modifier>(modifiers);\r
- ListIterator<Modifier> itrExistingModifiers = lModifiers.listIterator();*/\r
- \r
for (Modifier modToCheck: getEntity().getModifiers()) {\r
if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, "Human Group"))) {\r
isHumanGroupChanged = false;\r
- //toCreate = false;\r
}\r
\r
\r
}\r
- //if(!modifiers.isEmpty()) {\r
- //for (Modifier modifier : modifiers) {\r
Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
while (itrExistingModifiers.hasNext()) {\r
Modifier modifier = itrExistingModifiers.next();\r
if((GetVocabularyType(modifier, "Human Group") || GetVocabularyType(modifier, "Ethnic Group")) && isHumanGroupChanged) {\r
- //getEntity().removeModifier(modifier);\r
itrExistingModifiers.remove();\r
- //getEntity().addModifier(combo_PlantPart.getSelection());\r
- //itrExistingModifiers.add(combo_HumanGroup.getSelection());\r
- //toCreate = true;\r
}\r
\r
} \r
- //}\r
if(isHumanGroupChanged){\r
Modifier humanGroup = combo_HumanGroup.getSelection();\r
getEntity().addModifier(humanGroup);\r
}\r
if (eventSource == combo_EthnicGroup) {\r
if (combo_EthnicGroup.getSelection() != null) {\r
- boolean isChanged = false;\r
- /*Set<Modifier> modifiers = getEntity().getModifiers();\r
- List<Modifier> lModifiers = new ArrayList<Modifier>(modifiers);\r
- ListIterator<Modifier> itrExistingModifiers = lModifiers.listIterator();*/\r
Iterator<Modifier> itrExistingModifiers = getEntity().getModifiers().iterator();\r
- //if(!modifiers.isEmpty()) {\r
- //for (Modifier modifier : modifiers) {\r
while (itrExistingModifiers.hasNext()) {\r
Modifier modifier = itrExistingModifiers.next();\r
if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
- //getEntity().removeModifier(modifier);\r
itrExistingModifiers.remove();\r
- //getEntity().addModifier(combo_PlantPart.getSelection());\r
- //itrExistingModifiers.add(combo_EthnicGroup.getSelection());\r
- isChanged = true;\r
}\r
\r
} \r
- //}\r
- \r
- /*Set<Modifier> modifiers = getEntity().getModifiers();\r
- if(!modifiers.isEmpty()) {\r
- for (Modifier modifier : modifiers) {\r
- if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
- getEntity().removeModifier(modifier);\r
- getEntity().addModifier(combo_EthnicGroup.getSelection());\r
- isChanged = true;\r
- }\r
- } \r
- }*/\r
- //if(isChanged == false) {\r
Modifier ethnicGroup = combo_EthnicGroup.getSelection();\r
getEntity().addModifier(ethnicGroup);\r
- //}\r
} else {\r
Set<Modifier> modifiers = getEntity().getModifiers();\r
if(!modifiers.isEmpty()) {\r
}\r
}\r
\r
- /*for (Modifier modifier : modifiers) {\r
- if(GetVocabularyType(modifier, "Ethnic Group")) {\r
- getEntity().removeModifier(modifier);\r
- }\r
- }*/\r
}\r
}\r
}\r
if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
if (modifyingText.get(CdmStore.getDefaultLanguage())\r
.getText().equals("Use SubCategory")) {\r
- //itrExistingState.remove();\r
combo_UseSubCategory.setSelection(stateSelection("Use SubCategory"));\r
}\r
}\r
}\r
- /*for (StateData existingStateData : getEntity().getStates()) {\r
- \r
- if (modifyingText.get(CdmStore.getDefaultLanguage()) != null) {\r
- if (modifyingText.get(CdmStore.getDefaultLanguage())\r
- .getText() == "Use SubCategory") {\r
- getEntity().removeState(existingStateData);\r
- \r
- }\r
- }\r
- }*/\r
}\r
- \r
- /*List<State> newSubCategories = setUseCategoryComboTerms(TermStore.getTerms(State.class, null, false),selectedUseCategory);\r
- combo_UseSubCategory.setTerms(newSubCategories);*/\r
}\r
}\r
}\r
}\r
}\r
}\r
- //this.refresh();\r
}\r
\r
@Override\r