4 package eu
.etaxonomy
.taxeditor
.editor
.view
.descriptive
.handler
;
6 import org
.eclipse
.core
.expressions
.PropertyTester
;
7 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
9 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionBase
;
10 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
11 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
12 import eu
.etaxonomy
.taxeditor
.model
.FeatureNodeContainer
;
15 * Property tester used by the description tree menu.
21 public class DescriptionsMenuPropertyTester
extends PropertyTester
{
23 private static final String MEDIA
= "isMedia";
24 private static final String FEATURE_NODE_CONTAINER
= "isFeatureNodeContainer";
25 private static final String DESCRIPTION
= "isDescription";
26 private static final String DESCRIPTION_ELEMENT
= "isDescriptionElement";
27 private static final String DELETABLE
= "isDeletable";
30 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
33 public boolean test(Object receiver
, String property
, Object
[] args
,
34 Object expectedValue
) {
36 Object
[] selectedElements
= ((IStructuredSelection
) receiver
).toArray();
38 if(selectedElements
.length
== 0){
39 // nothing selected so all tests should fail
43 if(MEDIA
.equals(property
)){
44 return isMedia(selectedElements
);
46 else if(FEATURE_NODE_CONTAINER
.equals(property
)){
47 return isFeatureNodeContainer(selectedElements
);
49 else if(DESCRIPTION
.equals(property
)){
50 return isDescription(selectedElements
);
52 else if(DESCRIPTION_ELEMENT
.equals(property
)){
53 return isDescriptionElement(selectedElements
);
55 else if(DELETABLE
.equals(property
)){
56 return isDeletable(selectedElements
);
63 private boolean isFeatureNodeContainer(Object
[] selectedElements
) {
64 for (Object object
: selectedElements
){
65 if(!(object
instanceof FeatureNodeContainer
)){
72 private boolean isDeletable(Object
[] selectedElements
) {
73 boolean result
= false;
75 for (Object object
: selectedElements
) {
77 if((object
instanceof DescriptionBase
)
78 || (object
instanceof DescriptionElementBase
)
79 || (object
instanceof Media
)
80 || (object
instanceof FeatureNodeContainer
)){
90 private boolean isDescriptionElement(Object
[] selectedElements
) {
91 for (Object object
: selectedElements
){
92 if(!(object
instanceof DescriptionElementBase
)){
99 private boolean isDescription(Object
[] selectedElements
) {
100 for (Object object
: selectedElements
){
101 if(!(object
instanceof DescriptionBase
)){
108 private boolean isMedia(Object
[] selectedElements
) {
109 for (Object object
: selectedElements
){
110 if(!(object
instanceof Media
)){