Project

General

Profile

Download (1.08 KB) Statistics
| Branch: | Tag: | Revision:
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.description.FeatureTree;
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 FeatureTreePropertyTester 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 isFeatureTree(selectedElements);
35
		}
36
		else{
37
			return false;
38
		}
39
	}
40

    
41
	private boolean isFeatureTree(Object[] selectedElements) {
42
	    for (Object object : selectedElements){
43
	        if(!(object instanceof FeatureTree)){
44
	            return false;
45
	        }
46
	    }
47
	    return true;
48
	}
49

    
50
}
(7-7/7)