merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / handler / ShowPherogramHandler.java
1 package eu.etaxonomy.taxeditor.editor.handler;
2
3
4 import java.net.URI;
5
6 import org.eclipse.core.commands.AbstractHandler;
7 import org.eclipse.core.commands.ExecutionEvent;
8 import org.eclipse.core.commands.ExecutionException;
9 import org.eclipse.jface.viewers.ISelection;
10 import org.eclipse.jface.viewers.TreeNode;
11 import org.eclipse.ui.handlers.HandlerUtil;
12
13 import eu.etaxonomy.cdm.model.media.MediaUtils;
14 import eu.etaxonomy.cdm.model.molecular.SingleRead;
15 import eu.etaxonomy.taxeditor.editor.EditorUtil;
16 import eu.etaxonomy.taxeditor.editor.molecular.PherogramViewPart;
17 import eu.etaxonomy.taxeditor.model.MessagingUtils;
18
19
20
21 /**
22 * Displays an undistorted pherogram with {@link PherogramViewPart}.
23 *
24 * @author Ben Stöver
25 *
26 */
27 public class ShowPherogramHandler extends AbstractHandler {
28 public static void showPherogram(URI uri) {
29 try {
30 PherogramViewPart.createView(uri);
31 }
32 catch (Exception e) {
33 MessagingUtils.errorDialog("Error", null, e.getLocalizedMessage(), "eu.etaxonomy.taxeditor.editor", //TODO Is null a valid value here?
34 e, false); //TODO set pluginID
35 }
36 }
37
38
39 @Override
40 public Object execute(ExecutionEvent event) throws ExecutionException {
41 ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
42 TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(currentSelection);
43 if (treeNodeOfSelection != null && treeNodeOfSelection.getValue() instanceof SingleRead) {
44 showPherogram(MediaUtils.getFirstMediaRepresentationPart(
45 ((SingleRead)treeNodeOfSelection.getValue()).getPherogram()).getUri());
46 }
47 return null;
48 }
49 }