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)
35 public boolean test(Object receiver
, String property
, Object
[] args
,
36 Object expectedValue
) {
38 Object
[] selectedElements
= ((IStructuredSelection
) receiver
).toArray();
40 if(selectedElements
.length
== 0){
41 // nothing selected so all tests should fail
45 if(MEDIA
.equals(property
)){
46 return isMedia(selectedElements
);
48 else if(FEATURE_NODE_CONTAINER
.equals(property
)){
49 return isFeatureNodeContainer(selectedElements
);
51 else if(DESCRIPTION
.equals(property
)){
52 return isDescription(selectedElements
);
54 else if(DESCRIPTION_ELEMENT
.equals(property
)){
55 return isDescriptionElement(selectedElements
);
57 else if(DELETABLE
.equals(property
)){
58 return isDeletable(selectedElements
);
60 else if(IMAGE_GALLERY
.equals(property
)){
61 return isImageGallery(selectedElements
);
68 private boolean isImageGallery(Object
[] selectedElements
) {
69 for (Object object
: selectedElements
){
70 if(!(object
instanceof DescriptionBase
) || !((DescriptionBase
) object
).isImageGallery()){
77 private boolean isFeatureNodeContainer(Object
[] selectedElements
) {
78 for (Object object
: selectedElements
){
79 if(!(object
instanceof FeatureNodeContainer
)){
86 private boolean isDeletable(Object
[] selectedElements
) {
87 boolean result
= false;
89 for (Object object
: selectedElements
) {
91 if((object
instanceof DescriptionBase
)
92 || (object
instanceof DescriptionElementBase
)
93 || (object
instanceof Media
)
94 || (object
instanceof FeatureNodeContainer
)){
104 private boolean isDescriptionElement(Object
[] selectedElements
) {
105 for (Object object
: selectedElements
){
106 if(!(object
instanceof DescriptionElementBase
)){
113 private boolean isDescription(Object
[] selectedElements
) {
114 for (Object object
: selectedElements
){
115 if(!(object
instanceof DescriptionBase
)){
122 private boolean isMedia(Object
[] selectedElements
) {
123 for (Object object
: selectedElements
){
124 if(!(object
instanceof Media
)){