fix #4821: create OrderedTermvoc for OrderedTerms
authorKatja Luther <k.luther@bgbm.org>
Wed, 4 Jan 2017 14:03:37 +0000 (15:03 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 4 Jan 2017 14:08:09 +0000 (15:08 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateTermVocabularyOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/MoveDefinedTermOperation.java

index 12d5845a120191120da6f94c76f1ad8161e58af8..ae55c0e34609a1cd8d5d303e5a74bb38f328410d 100644 (file)
@@ -15,6 +15,10 @@ 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.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;\r
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
 import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;\r
@@ -50,12 +54,25 @@ public class CreateTermVocabularyOperation extends AbstractPostTaxonOperation {
        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
+          TermType type= definedEditorInput.getTermType();\r
+          DefinedTermBase test = type.getEmptyDefinedTermBase();\r
+          TermVocabulary termVocabulary = null;\r
+          if (test instanceof OrderedTermBase){\r
+             termVocabulary = OrderedTermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
+                       null,\r
+                       "Untitled",\r
+                       null,\r
+                       null);\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
                definedEditorInput.getVocabularies().add(termVocabulary);\r
index b17ab07198b5ed90586c0cc129bf1786336538b8..c7916cde78213b1220e34504e7970fd05439cbd0 100644 (file)
@@ -102,13 +102,17 @@ public class MoveDefinedTermOperation extends AbstractPostTaxonOperation {
                                        // method is determined by the compare method in the\r
                                        // DefinedTermEditor's ViewerSorter (DefinedTermSorter) class\r
                                        if(currentLocation == ViewerDropAdapter.LOCATION_BEFORE) {\r
-                                           otVoc.addTermBelow((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
-                                           ((DefinedTermBase) targetTermOrVocabulary).getPartOf().addIncludes(term);\r
+                                           otVoc.addTermAbove((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
+                                           if (((DefinedTermBase) targetTermOrVocabulary).getPartOf() != null){\r
+                                               ((DefinedTermBase) targetTermOrVocabulary).getPartOf().addIncludes(term);\r
+                                           }\r
                                        }\r
 \r
                                        if(currentLocation == ViewerDropAdapter.LOCATION_AFTER) {\r
-                                           otVoc.addTermAbove((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
-                                           ((DefinedTermBase) targetTermOrVocabulary).getPartOf().addIncludes(term);\r
+                                           otVoc.addTermBelow((OrderedTermBase)term, (OrderedTermBase)targetTermOrVocabulary);\r
+                                           if (((DefinedTermBase) targetTermOrVocabulary).getPartOf() != null){\r
+                                ((DefinedTermBase) targetTermOrVocabulary).getPartOf().addIncludes(term);\r
+                            }\r
                                        }\r
                                        if(currentLocation == ViewerDropAdapter.LOCATION_ON) {\r
                                                    targetDefinedTerm.addIncludes(term);\r
@@ -119,7 +123,7 @@ public class MoveDefinedTermOperation extends AbstractPostTaxonOperation {
                                        targetDefinedTerm.addIncludes(term);\r
                                    targetDefinedTerm.getVocabulary().addTerm(term);\r
                                }\r
-                               \r
+\r
                        }\r
 \r
                }\r