ShowPherogramHandler added and linked to pop-up menu in specimen tree.
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / handler / SpecimenPropertyTester.java
1 package eu.etaxonomy.taxeditor.editor.handler;
2
3
4 import org.eclipse.core.expressions.PropertyTester;
5 import org.eclipse.jface.viewers.IStructuredSelection;
6 import org.eclipse.jface.viewers.TreeNode;
7
8 import eu.etaxonomy.cdm.model.molecular.Sequence;
9 import eu.etaxonomy.cdm.model.molecular.SingleRead;
10 import eu.etaxonomy.taxeditor.editor.EditorUtil;
11
12
13
14 /**
15 * Tests types of specimens to add items to the context menu.
16 *
17 * @author pplitzner
18 * @author BenStoever
19 */
20 public class SpecimenPropertyTester extends PropertyTester {
21 private static final String SEQUENCE = "isSequence";
22 private static final String SINGLE_READ = "isSingleRead";
23
24
25 public SpecimenPropertyTester() {}
26
27
28 /* (non-Javadoc)
29 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
30 */
31 /** {@inheritDoc} */
32 @Override
33 public boolean test(Object receiver, String property, Object[] args,
34 Object expectedValue) {
35
36 if (receiver instanceof IStructuredSelection) {
37 IStructuredSelection selection = (IStructuredSelection) receiver;
38 TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(selection);
39 if (treeNodeOfSelection!=null) {
40 if (SEQUENCE.equals(property)) {
41 return isSequence(treeNodeOfSelection.getValue());
42 }
43 else if (SINGLE_READ.equals(property)) {
44 return isSingleReadAlignment(treeNodeOfSelection.getValue());
45 }
46 }
47
48 }
49 return false;
50 }
51
52
53 private boolean isSequence(Object object) {
54 return (object instanceof Sequence);
55 }
56
57
58 private boolean isSingleReadAlignment(Object object) {
59 return (object instanceof SingleRead);
60 }
61 }