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";
28 private static final String IMAGE_GALLERY
= "isImageGallery";
31 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
34 public boolean test(Object receiver
, String property
, Object
[] args
,
35 Object expectedValue
) {
37 Object
[] selectedElements
= ((IStructuredSelection
) receiver
).toArray();
39 if(selectedElements
.length
== 0){
40 // nothing selected so all tests should fail
44 if(MEDIA
.equals(property
)){
45 return isMedia(selectedElements
);
47 else if(FEATURE_NODE_CONTAINER
.equals(property
)){
48 return isFeatureNodeContainer(selectedElements
);
50 else if(DESCRIPTION
.equals(property
)){
51 return isDescription(selectedElements
);
53 else if(DESCRIPTION_ELEMENT
.equals(property
)){
54 return isDescriptionElement(selectedElements
);
56 else if(DELETABLE
.equals(property
)){
57 return isDeletable(selectedElements
);
59 else if(IMAGE_GALLERY
.equals(property
)){
60 return isImageGallery(selectedElements
);
67 private boolean isImageGallery(Object
[] selectedElements
) {
68 for (Object object
: selectedElements
){
69 if(!(object
instanceof DescriptionBase
) || !((DescriptionBase
) object
).isImageGallery()){
76 private boolean isFeatureNodeContainer(Object
[] selectedElements
) {
77 for (Object object
: selectedElements
){
78 if(!(object
instanceof FeatureNodeContainer
)){
85 private boolean isDeletable(Object
[] selectedElements
) {
86 boolean result
= false;
88 for (Object object
: selectedElements
) {
90 if((object
instanceof DescriptionBase
)
91 || (object
instanceof DescriptionElementBase
)
92 || (object
instanceof Media
)
93 || (object
instanceof FeatureNodeContainer
)){
103 private boolean isDescriptionElement(Object
[] selectedElements
) {
104 for (Object object
: selectedElements
){
105 if(!(object
instanceof DescriptionElementBase
)){
112 private boolean isDescription(Object
[] selectedElements
) {
113 for (Object object
: selectedElements
){
114 if(!(object
instanceof DescriptionBase
)){
121 private boolean isMedia(Object
[] selectedElements
) {
122 for (Object object
: selectedElements
){
123 if(!(object
instanceof Media
)){