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
.description
.IndividualsAssociation
;
12 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
13 import eu
.etaxonomy
.taxeditor
.bulkeditor
.BulkEditor
;
14 import eu
.etaxonomy
.taxeditor
.editor
.MultiPageTaxonEditor
;
15 import eu
.etaxonomy
.taxeditor
.editor
.view
.derivate
.DerivateView
;
16 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
17 import eu
.etaxonomy
.taxeditor
.model
.FeatureNodeContainer
;
20 * Property tester used by the description tree menu.
26 public class DescriptionsMenuPropertyTester
extends PropertyTester
{
28 private static final String MEDIA
= "isMedia";
29 private static final String FEATURE_NODE_CONTAINER
= "isFeatureNodeContainer";
30 private static final String DESCRIPTION
= "isDescription";
31 private static final String INDIVIDUALS_ASSOCIATION
= "isIndividualsAssociation";
32 private static final String DESCRIPTION_ELEMENT
= "isDescriptionElement";
33 private static final String DELETABLE
= "isDeletable";
34 private static final String IMAGE_GALLERY
= "isImageGallery";
35 private static final String TAXON_EDITOR
= "isTaxonEditor";
36 private static final String BULK_EDITOR
= "isBulkEditor";
37 private static final String DERIVATE_EDITOR
= "isDerivateEditor";
40 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
44 public boolean test(Object receiver
, String property
, Object
[] args
,
45 Object expectedValue
) {
47 if(TAXON_EDITOR
.equals(property
)){
48 return isTaxonEditor();
50 else if(BULK_EDITOR
.equals(property
)){
51 return isBulkEditor();
53 else if(DERIVATE_EDITOR
.equals(property
)){
54 return isDerivateEditor();
57 Object
[] selectedElements
= ((IStructuredSelection
) receiver
).toArray();
59 if(selectedElements
.length
== 0){
60 // nothing selected so all tests should fail
64 if(MEDIA
.equals(property
)){
65 return isMedia(selectedElements
);
67 else if(FEATURE_NODE_CONTAINER
.equals(property
)){
68 return isFeatureNodeContainer(selectedElements
);
70 else if(DESCRIPTION
.equals(property
)){
71 return isDescription(selectedElements
);
73 else if(INDIVIDUALS_ASSOCIATION
.equals(property
)){
74 return isIndividualsAssociation(selectedElements
);
76 else if(DESCRIPTION_ELEMENT
.equals(property
)){
77 return isDescriptionElement(selectedElements
);
79 else if(DELETABLE
.equals(property
)){
80 return isDeletable(selectedElements
);
82 else if(IMAGE_GALLERY
.equals(property
)){
83 return isImageGallery(selectedElements
);
90 private boolean isImageGallery(Object
[] selectedElements
) {
91 for (Object object
: selectedElements
){
92 if(!(object
instanceof DescriptionBase
) || !((DescriptionBase
<?
>) object
).isImageGallery()){
99 private boolean isFeatureNodeContainer(Object
[] selectedElements
) {
100 for (Object object
: selectedElements
){
101 if(!(object
instanceof FeatureNodeContainer
)){
108 private boolean isDeletable(Object
[] selectedElements
) {
109 boolean result
= false;
111 for (Object object
: selectedElements
) {
113 if((object
instanceof DescriptionBase
)
114 || (object
instanceof DescriptionElementBase
)
115 || (object
instanceof Media
)
116 || (object
instanceof FeatureNodeContainer
)){
126 private boolean isDescriptionElement(Object
[] selectedElements
) {
127 for (Object object
: selectedElements
){
128 if(!(object
instanceof DescriptionElementBase
)){
135 private boolean isDescription(Object
[] selectedElements
) {
136 for (Object object
: selectedElements
){
137 if(!(object
instanceof DescriptionBase
)){
144 private boolean isIndividualsAssociation(Object
[] selectedElements
) {
145 for (Object object
: selectedElements
){
146 if(!(object
instanceof IndividualsAssociation
)){
153 private boolean isMedia(Object
[] selectedElements
) {
154 for (Object object
: selectedElements
){
155 if(!(object
instanceof Media
)){
162 private boolean isTaxonEditor() {
163 if(AbstractUtility
.getActiveEditor() instanceof MultiPageTaxonEditor
){
169 private boolean isBulkEditor() {
170 if(AbstractUtility
.getActiveEditor() instanceof BulkEditor
){
176 private boolean isDerivateEditor() {
177 if(AbstractUtility
.getActiveEditor() instanceof DerivateView
){