Merge branch 'develop' into LibrAlign
[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 /** {@inheritDoc} */
28 @Override
29 public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
30 if (receiver instanceof IStructuredSelection) {
31 IStructuredSelection selection = (IStructuredSelection) receiver;
32 TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(selection);
33 if (treeNodeOfSelection!=null) {
34 if (SEQUENCE.equals(property)) {
35 return isSequence(treeNodeOfSelection.getValue());
36 }
37 else if (SINGLE_READ.equals(property)) {
38 return isSingleReadAlignment(treeNodeOfSelection.getValue());
39 }
40 }
41 }
42 return false;
43 }
44
45 private boolean isSequence(Object object) {
46 return (object instanceof Sequence);
47 }
48
49 private boolean isSingleReadAlignment(Object object) {
50 return (object instanceof SingleRead);
51 }
52 }