Revision 662c457c
Added by Cherian Mathew about 9 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java | ||
---|---|---|
1 | 1 |
/** |
2 | 2 |
* Copyright (C) 2007 EDIT |
3 |
* European Distributed Institute of Taxonomy
|
|
3 |
* European Distributed Institute of Taxonomy |
|
4 | 4 |
* http://www.e-taxonomy.eu |
5 |
*
|
|
5 |
* |
|
6 | 6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
7 | 7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
8 | 8 |
*/ |
... | ... | |
16 | 16 |
import org.eclipse.jface.dialogs.MessageDialog; |
17 | 17 |
import org.eclipse.swt.widgets.Display; |
18 | 18 |
import org.eclipse.ui.IWorkbenchPage; |
19 |
import org.eclipse.ui.PartInitException; |
|
20 | 19 |
import org.eclipse.ui.handlers.HandlerUtil; |
21 | 20 |
|
21 |
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator; |
|
22 | 22 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
23 | 23 |
import eu.etaxonomy.cdm.model.taxon.Synonym; |
24 | 24 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
25 | 25 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
26 |
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor; |
|
27 | 26 |
import eu.etaxonomy.taxeditor.editor.Page; |
28 | 27 |
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor; |
29 | 28 |
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation; |
30 | 29 |
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation; |
31 | 30 |
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonOperation; |
31 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
32 | 32 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
33 | 33 |
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation; |
34 | 34 |
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; |
... | ... | |
47 | 47 |
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
48 | 48 |
*/ |
49 | 49 |
/** {@inheritDoc} */ |
50 |
public Object execute(ExecutionEvent event) throws ExecutionException { |
|
50 |
@Override |
|
51 |
public Object execute(ExecutionEvent event) throws ExecutionException { |
|
51 | 52 |
editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME); |
52 |
|
|
53 |
|
|
53 | 54 |
Object selectedElement = EditorUtil.getSelection(event).getFirstElement(); |
54 |
|
|
55 |
|
|
55 | 56 |
doExecute(event, editor, selectedElement); |
56 |
|
|
57 |
|
|
57 | 58 |
return null; |
58 | 59 |
} |
59 |
|
|
60 |
|
|
60 | 61 |
/** |
61 | 62 |
* @param editor |
62 | 63 |
* @param selectedElement |
... | ... | |
65 | 66 |
*/ |
66 | 67 |
protected void doExecute(ExecutionEvent event, TaxonNameEditor editor, Object selectedElement) { |
67 | 68 |
AbstractPostOperation operation = null; |
68 |
String commandName = null;
|
|
69 |
String commandName = null; |
|
69 | 70 |
|
70 | 71 |
try { |
71 | 72 |
commandName = event.getCommand().getName(); |
72 | 73 |
} catch (NotDefinedException e) { |
73 | 74 |
MessagingUtils.error(getClass(), e); |
74 | 75 |
} |
75 |
|
|
76 |
|
|
76 | 77 |
// synonym |
77 | 78 |
if(selectedElement instanceof Synonym){ |
78 | 79 |
operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor); |
... | ... | |
87 | 88 |
if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Are you sure you want to delete the selected taxon?")){ |
88 | 89 |
return ; |
89 | 90 |
} |
91 |
|
|
90 | 92 |
IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(); |
91 |
|
|
92 |
operation = new DeleteTaxonOperation(commandName, editor.getUndoContext(),(Taxon) selectedElement, null, activePage, this, editor); |
|
93 |
|
|
94 |
operation = new DeleteTaxonOperation(commandName, editor.getUndoContext(),(Taxon) selectedElement, new TaxonDeletionConfigurator(), null, activePage, this, editor);
|
|
93 | 95 |
//editor.dispose(); |
94 |
|
|
96 |
|
|
95 | 97 |
} |
96 | 98 |
else { |
97 | 99 |
throw new IllegalArgumentException("Element has to be Synonym, Misapplication or Concept"); |
98 | 100 |
} |
99 |
|
|
100 |
EditorUtil.executeOperation(operation); |
|
101 |
|
|
102 |
|
|
103 |
|
|
104 |
|
|
101 |
|
|
102 |
AbstractUtility.executeOperation(operation); |
|
105 | 103 |
} |
106 | 104 |
|
107 | 105 |
@Override |
108 | 106 |
public boolean postOperation(CdmBase objectAffectedByOperation) { |
109 | 107 |
Display.getDefault().asyncExec(new Runnable(){ |
110 | 108 |
|
111 |
public void run() {
|
|
112 |
EditorUtil.close(editor.getMultiPageTaxonEditor());
|
|
113 |
|
|
109 |
@Override
|
|
110 |
public void run() {
|
|
111 |
AbstractUtility.close(editor.getMultiPageTaxonEditor()); |
|
114 | 112 |
} |
115 |
|
|
116 | 113 |
}); |
117 |
|
|
118 |
|
|
119 | 114 |
return true; |
120 | 115 |
} |
121 | 116 |
|
... | ... | |
124 | 119 |
// TODO Auto-generated method stub |
125 | 120 |
return false; |
126 | 121 |
} |
127 |
|
|
128 |
|
|
122 |
|
|
129 | 123 |
} |
Also available in: Unified diff
merge from trunk