AlignmentEditorCopyHandler now sets current action status.
[taxeditor.git] / eu.etaxonomy.taxeditor.molecular / src / main / java / eu / etaxonomy / taxeditor / molecular / handler / AbstractAlignmentEditorHandler.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.taxeditor.molecular.handler;
11
12
13 import org.eclipse.core.commands.AbstractHandler;
14 import org.eclipse.core.commands.ExecutionEvent;
15 import org.eclipse.core.commands.ExecutionException;
16 import org.eclipse.ui.IEditorPart;
17
18 import eu.etaxonomy.taxeditor.model.AbstractUtility;
19 import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;
20
21
22
23
24 /**
25 * Abstract implementation for all handlers triggering actions in an active instance of
26 * {@link AlignmentEditor}.
27 *
28 * @author Ben Stöver
29 * @date 19.06.2015
30 */
31 public abstract class AbstractAlignmentEditorHandler extends AbstractHandler {
32 public static AlignmentEditor getActiveAlignmentEditor() {
33 IEditorPart activeEditor = AbstractUtility.getActiveEditor();
34 if (activeEditor instanceof AlignmentEditor) {
35 return (AlignmentEditor)activeEditor;
36 }
37 else {
38 return null;
39 }
40 }
41
42
43 @Override
44 public Object execute(ExecutionEvent event) throws ExecutionException {
45 AlignmentEditor editor = getActiveAlignmentEditor();
46 if (editor != null) {
47 doExecute(event, editor);
48 }
49 return null;
50 }
51
52
53 protected abstract void doExecute(ExecutionEvent event, AlignmentEditor editor) throws ExecutionException;
54 }