-package eu.etaxonomy.taxeditor.editor.name.handler;\r
-\r
-import java.util.UUID;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.AbstractHandler;\r
-import org.eclipse.core.commands.ExecutionEvent;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.common.NotDefinedException;\r
-import org.eclipse.core.commands.operations.IUndoContext;\r
-import org.eclipse.jface.dialogs.MessageDialog;\r
-import org.eclipse.jface.viewers.StructuredSelection;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;\r
-import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;\r
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;\r
-\r
-public class MoveSynonymToAnotherAcceptedTaxonHandler extends AbstractHandler implements IPostOperationEnabled {\r
- private static final Logger logger = Logger\r
- .getLogger(MoveSynonymToAnotherAcceptedTaxonHandler.class);\r
- private MultiPageTaxonEditor editor;\r
- \r
- @Override\r
- public Object execute(ExecutionEvent event) throws ExecutionException {\r
- editor = (MultiPageTaxonEditor) HandlerUtil.getActiveEditor(event);\r
- Shell shell = HandlerUtil.getActiveShell(event);\r
- IEditorInput input = editor.getEditorInput();\r
- if (!EditorUtil.forceUserSave(editor, shell)) {\r
- return null;\r
- }\r
- \r
- if (!(input instanceof TaxonEditorInput)) {\r
- logger.error("Editor input is not TaxonEditorInput");\r
- return null;\r
- }\r
-\r
- // Get synonym from selection\r
- StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);\r
- if (!(selection.getFirstElement() instanceof Synonym)) {\r
- logger.error("Selection does not contain a Synonym");\r
- return null;\r
- }\r
-\r
- Synonym synonym = (Synonym) selection.getFirstElement();\r
- TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Select new accepted taxon", null, null, null);\r
- Taxon oldParent = ((TaxonEditorInput)input).getTaxon();\r
- \r
- MoveSynonymToAnotherAcceptedTaxonOperation operation = new MoveSynonymToAnotherAcceptedTaxonOperation("Change accepted Taxon of Synonym", EditorUtil.getUndoContext(),\r
- oldParent.getUuid(), synonym.getUuid(), newParentNode.getTaxon(), editor);\r
- \r
- EditorUtil.executeOperation(operation);\r
- \r
-\r
- return null;\r
- }\r
-\r
- @Override\r
- public boolean postOperation(CdmBase objectAffectedByOperation) {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- @Override\r
- public boolean onComplete() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
- \r
- \r
-\r
-}\r
+package eu.etaxonomy.taxeditor.editor.name.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+public class MoveSynonymToAnotherAcceptedTaxonHandler extends AbstractHandler implements IPostOperationEnabled {
+ private static final Logger logger = Logger
+ .getLogger(MoveSynonymToAnotherAcceptedTaxonHandler.class);
+ private MultiPageTaxonEditor editor;
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ editor = (MultiPageTaxonEditor) HandlerUtil.getActiveEditor(event);
+ Shell shell = HandlerUtil.getActiveShell(event);
+ IEditorInput input = editor.getEditorInput();
+ if (!EditorUtil.forceUserSave(editor, shell)) {
+ return null;
+ }
+
+ if (!(input instanceof TaxonEditorInput)) {
+ logger.error("Editor input is not TaxonEditorInput");
+ return null;
+ }
+
+ // Get synonym from selection
+ StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
+ if (!(selection.getFirstElement() instanceof Synonym)) {
+ logger.error("Selection does not contain a Synonym");
+ return null;
+ }
+
+ Synonym synonym = (Synonym) selection.getFirstElement();
+ TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Select new accepted taxon", null, null, ((TaxonEditorInput)input).getTaxonNode().getClassification());
+ if(newParentNode!=null){
+ Taxon oldParent = ((TaxonEditorInput)input).getTaxon();
+
+ MoveSynonymToAnotherAcceptedTaxonOperation operation = new MoveSynonymToAnotherAcceptedTaxonOperation("Change accepted Taxon of Synonym", EditorUtil.getUndoContext(),
+ oldParent.getUuid(), synonym.getUuid(), newParentNode.getTaxon(), editor);
+
+ AbstractUtility.executeOperation(operation);
+
+ }
+ return null;
+ }
+
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean onComplete() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+
+
+}