Project

General

Profile

« Previous | Next » 

Revision 0800831b

Added by Patrick Plitzner about 5 years ago

ref #6806 Disable export context menu for feature nodes

View differences:

eu.etaxonomy.taxeditor.store/fragment.e4xmi
24 24
        <children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
25 25
        <children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
26 26
        <children xsi:type="menu:Menu" xmi:id="_jPawUPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4">
27
          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/>
27 28
          <children xsi:type="menu:HandledMenuItem" xmi:id="_7vaEcGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
28 29
            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/>
29 30
          </children>
eu.etaxonomy.taxeditor.store/plugin.xml
117 117
        properties="hasPermissions, hasRoles"
118 118
        type="org.eclipse.jface.viewers.IStructuredSelection">
119 119
   </propertyTester>
120
   <propertyTester
121
         class="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
122
         id="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
123
         namespace="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
124
         properties="isFeatureTree"
125
         type="org.eclipse.jface.viewers.IStructuredSelection">
126
   </propertyTester>
120 127
</extension>
121 128
<extension
122 129
      point="org.eclipse.core.expressions.definitions">
......
258 265
               property="eu.etaxonomy.taxeditor.preference.PreferencePropertyTester.isChecklistEditorEnabled">
259 266
         </test>
260 267
      </definition>
268
      <definition
269
            id="isFeatureTree">
270
         <with
271
               variable="selection">
272
            <test
273
                  property="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester.isFeatureTree">
274
            </test>
275
         </with>
276
      </definition>
261 277
</extension>
262 278
<extension
263 279
      point="org.eclipse.ui.activities">
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreePropertyTester.java
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
}

Also available in: Unified diff