AT: commiting latest changes to the Palm Use data extension
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / uses / handler / CreateUseRecordHandler.java
index 2e24fb0c10b519bf2f1992580be1bddfa3eb8690..390cb7673566a4adbef7e0b8db41fbde282f8e6c 100644 (file)
@@ -1,5 +1,8 @@
 package eu.etaxonomy.taxeditor.editor.view.uses.handler;
 
+import java.util.List;
+import java.util.Set;
+
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -15,14 +18,19 @@ import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.handlers.HandlerUtil;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.description.CategoricalData;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.view.uses.operation.CreateUseRecordOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 public class CreateUseRecordHandler extends AbstractHandler {
        public Object execute(ExecutionEvent event) throws ExecutionException {
@@ -56,16 +64,31 @@ public class CreateUseRecordHandler extends AbstractHandler {
                        } 
 
                        if (description != null) {
-
-                               Feature feature = (Feature) ((Event) event.getTrigger()).data;
-
+                               //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")) {
+                                                       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
-                                       operation = new CreateUseRecordOperation(event
-                                                       .getCommand().getName(),
-                                                       EditorUtil.getUndoContext(), taxon,
-                                                       description, element, postOperationEnabled);
+                                       
                                        EditorUtil.executeOperation(operation);
                                } catch (NotDefinedException e) {
                                        EditorUtil.warn(getClass(), "Command name not set");