finalizing preferred refactoring
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / preference / wizards / FeatureWizard.java
index d3b85d702b8464f0a87c716f2a0ee43c8a315201..2f38892db51f07f74ee752d0521722313b4012a9 100644 (file)
@@ -13,7 +13,9 @@ package eu.etaxonomy.taxeditor.preference.wizards;
 import org.apache.log4j.Logger;
 import org.eclipse.jface.wizard.Wizard;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -23,7 +25,9 @@ import eu.etaxonomy.cdm.model.description.Feature;
 public class FeatureWizard extends Wizard {
        private static final Logger logger = Logger.getLogger(FeatureWizard.class);
        
-       private Feature selectedFeature = null;
+       private Feature feature = null;
+       
+       private boolean editMode = false;
 
        /**
         * 
@@ -35,7 +39,8 @@ public class FeatureWizard extends Wizard {
         * @param selectedFeature
         */
        public FeatureWizard(Feature selectedFeature){
-               this.selectedFeature = selectedFeature;
+               this.feature = selectedFeature;
+               editMode = true;
        }
        
        /* (non-Javadoc)
@@ -45,7 +50,7 @@ public class FeatureWizard extends Wizard {
        public void addPages() {
                super.addPages();
                
-               addPage(selectedFeature == null ? new FeatureWizardNewPage() : new FeatureWizardEditPage(selectedFeature));
+               addPage(new FeatureWizardPage());
        }
        
        /* (non-Javadoc)
@@ -53,11 +58,41 @@ public class FeatureWizard extends Wizard {
         */
        @Override
        public boolean performFinish() {
-               // TODO Auto-generated method stub
-               return false;
+
+               ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+               
+               if(editMode){
+                       CdmStore.updateFeature(feature);
+               }else{
+                       CdmStore.saveFeature(feature);
+               }
+               
+               conversation.commit(true);
+               
+               return true;
        }
 
 
+       /**
+        * @param text
+        * @param text2
+        * @param text3
+        */
+       public void setFeature(String term, String label, String labelAbbreviation) {
+               feature = Feature.NewInstance(term, label, labelAbbreviation);
+       }
 
+       /**
+        * @return the feature
+        */
+       public Feature getFeature() {
+               return feature;
+       }
 
+       /**
+        * @return the editMode
+        */
+       public boolean isEditMode() {
+               return editMode;
+       }
 }