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
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
// 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
targetDefinedTerm.addIncludes(term);\r
targetDefinedTerm.getVocabulary().addTerm(term);\r
}\r
- \r
+\r
}\r
\r
}\r