create terms and vocabularies with default language representation
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / editor / definedterm / operation / CreateTermVocabularyOperation.java
index 7d365453c4194097d5efaa317a12f49dbe206964..abd02ec73393f0c86fac95c9dc50b4638fac97d1 100644 (file)
@@ -1,9 +1,8 @@
-// $Id$\r
 /**\r
 * Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -16,10 +15,16 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;\r
 \r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
-import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.term.OrderedTermBase;\r
+import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.term.TermType;\r
+import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
@@ -27,60 +32,58 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 21 Dec 2011\r
  *\r
  */\r
-public class CreateTermVocabularyOperation extends AbstractPostOperation {\r
+public class CreateTermVocabularyOperation extends AbstractPostTaxonOperation {\r
+\r
+       private final TermEditorInput definedEditorInput;\r
 \r
-       private TermEditorInput definedEditorInput;\r
-       \r
-       /**\r
-        * @param label\r
-        * @param undoContext\r
-        * @param postOperationEnabled\r
-        */\r
        public CreateTermVocabularyOperation(String label,\r
-                       IUndoContext undoContext, \r
-                       TermEditorInput definedEditorInput, \r
+                       IUndoContext undoContext,\r
+                       TermEditorInput definedEditorInput,\r
                        IPostOperationEnabled postOperationEnabled) {\r
                super(label, undoContext, postOperationEnabled);\r
                this.definedEditorInput = definedEditorInput;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
-        */\r
        @Override\r
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
-       \r
-               TermVocabulary termVocabulary = \r
-                                       TermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
-                                               null, \r
-                                               "Untitled", \r
-                                               null, \r
-                                               null);          \r
-               \r
-               CdmStore.getService(IVocabularyService.class).save(termVocabulary);\r
-               definedEditorInput.getVocabularies().add(termVocabulary);\r
-               \r
-               return postExecute(termVocabulary);\r
+\r
+          TermType type= definedEditorInput.getTermType();\r
+          DefinedTermBase test = type.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage());\r
+          TermVocabulary termVocabulary = null;\r
+          if (test instanceof OrderedTermBase){\r
+             termVocabulary = OrderedTermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
+                       null,\r
+                       "Untitled",\r
+                       null,\r
+                       null, PreferencesUtil.getGlobalLanguage());\r
+          }\r
+\r
+          if (termVocabulary == null){\r
+           termVocabulary =\r
+                TermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
+                    null,\r
+                    "Untitled",\r
+                    null,\r
+                    null);\r
+          }\r
+\r
+               termVocabulary = CdmStore.getService(IVocabularyService.class).save(termVocabulary);\r
+               //FIXME: implement creation of term vocabularies\r
+//             definedEditorInput.getVocabularies().add(termVocabulary);\r
+\r
+               return postExecute(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType(), termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(), termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
-        */\r
        @Override\r
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
-               // TODO Auto-generated method stub\r
                return null;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
-        */\r
        @Override\r
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
-               // TODO Auto-generated method stub\r
                return null;\r
        }\r
 \r