package eu.etaxonomy.taxeditor.ui.section.userecords;\r
\r
+\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
import org.apache.log4j.Logger;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.events.SelectionListener;\r
import org.eclipse.ui.forms.widgets.Section;\r
\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.TermVocabulary;\r
import eu.etaxonomy.cdm.model.description.CategoricalData;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.State;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+import eu.etaxonomy.taxeditor.store.TermStore;\r
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;\r
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;\r
-import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement;\r
-import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;\r
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EntityDetailType;\r
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;\r
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EntityDetailType;\r
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionElementDetailElement;\r
import eu.etaxonomy.taxeditor.ui.section.description.StateDataSection;\r
import eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement;\r
\r
//public class UseRecordDetailElement extends AbstractDetailedDescriptionDetailElement<CategoricalData> {\r
-public class UseRecordDetailElement extends AbstractCdmDetailElement<CategoricalData> {\r
+public class UseRecordDetailElement extends AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
\r
\r
private static final Logger logger = Logger\r
.getLogger(DescriptionElementDetailElement.class);\r
\r
- private CheckboxElement checkbox_orderRelevant;\r
- private TermComboElement UseCategory_stateData;\r
- private UseSubCategorySection UseSubCategory_stateData;\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
CategoricalData entity, int style) {\r
\r
\r
- State state = State.NewInstance("Tato", "Toto", "Titi");\r
+ //State state = State.NewInstance("Tato", "Toto", "Titi");\r
//checkbox_orderRelevant = formFactory.createCheckbox(formElement, "Order Relevant", entity.getOrderRelevant(), style);\r
- UseCategory_stateData = formFactory.createTermComboElement(State.class, this, "Use Category", state , 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
+ \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 = 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
+ //UseSubCategory_stateData = (UseSubCategorySection) formFactory.createEntityDetailSection(EntityDetailType.USE_SUBCAT, getConversationHolder(), formElement,Section.EXPANDED);\r
//UseCategory_stateData.setEntity(entity);\r
- UseSubCategory_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
+ //UseSubCategory_stateData.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2, 1));\r
\r
}\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
+ termsToAdd.add(term);\r
+ }\r
+ }\r
+ return termsToAdd;\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
+ }\r
+ \r
+ }\r
+ \r
+ // TODO Auto-generated method stub\r
+ return termsToAdd;\r
+ }\r
+\r
/** {@inheritDoc} */\r
@Override\r
public void handleEvent(Object eventSource) {\r
- if(eventSource == checkbox_orderRelevant){\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
+ List<State> currentStates = new ArrayList<State>();\r
+ currentStates.add(combo_UseCategory.getSelection());\r
+ getEntity().setStatesOnly(currentStates);\r
+ //getEntity().addState(combo_UseCategory.getSelection());\r
+ //.setOrderRelevant(combo_UseCategory.getSelection());\r
}\r
}\r
+ \r
+ /** {@inheritDoc} */\r
+ @Override\r
+ public void setEntity(CategoricalData entity) {\r
+// section_stateData.setEntity(entity);\r
+ super.setEntity(entity);\r
+ }\r
+\r
+ @Override\r
+ 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
+ }\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