Merge branch 'release/5.19.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / featuretree / TermTreePropertyTester.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.featuretree;
5
6 import org.eclipse.core.expressions.PropertyTester;
7 import org.eclipse.jface.viewers.IStructuredSelection;
8
9 import eu.etaxonomy.cdm.model.term.TermTree;
10
11 /**
12 * Property tester used by the feature tree menu.
13 *
14 * @author pplitzner
15 * @since Jan 30, 2019
16 *
17 */
18 public class TermTreePropertyTester extends PropertyTester {
19
20 private static final String FEATURE_TREE= "isFeatureTree"; //$NON-NLS-1$
21
22 @Override
23 public boolean test(Object receiver, String property, Object[] args,
24 Object expectedValue) {
25
26 Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
27
28 if(selectedElements.length == 0){
29 // nothing selected so all tests should fail
30 return false;
31 }
32
33 if(FEATURE_TREE.equals(property)){
34 return isTermTree(selectedElements);
35 }
36 else{
37 return false;
38 }
39 }
40
41 private boolean isTermTree(Object[] selectedElements) {
42 for (Object object : selectedElements){
43 if(!(object instanceof TermTree)){
44 return false;
45 }
46 }
47 return true;
48 }
49
50 }