Project

General

Profile

« Previous | Next » 

Revision 0619074d

Added by Patrick Plitzner over 6 years ago

ref #6907 Filter menu item visibility

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DeleteHandler.java
15 15
import javax.inject.Named;
16 16

  
17 17
import org.eclipse.core.commands.operations.IUndoContext;
18
import org.eclipse.e4.core.di.annotations.CanExecute;
18 19
import org.eclipse.e4.core.di.annotations.Execute;
19 20
import org.eclipse.e4.core.di.annotations.Optional;
20 21
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
22
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
21 23
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
22 24
import org.eclipse.e4.ui.services.IServiceConstants;
25
import org.eclipse.jface.viewers.ISelection;
23 26
import org.eclipse.jface.viewers.TreePath;
24 27
import org.eclipse.jface.viewers.TreeSelection;
25 28
import org.eclipse.swt.widgets.Shell;
......
141 144
        	AbstractUtility.executeOperation(operation);
142 145
        }
143 146
	}
147

  
148
    @CanExecute
149
    public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_PART) MPart activePart,
150
            MHandledMenuItem menuItem){
151
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
152
        ISelection selection = factualDataPart.getViewer().getSelection();
153
        boolean canExecute = selection !=null && !selection.isEmpty();
154
        menuItem.setVisible(canExecute);
155
        return canExecute;
156
    }
144 157
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionElementsHandler.java
15 15

  
16 16
import javax.inject.Named;
17 17

  
18
import org.eclipse.e4.core.di.annotations.CanExecute;
18 19
import org.eclipse.e4.core.di.annotations.Execute;
19 20
import org.eclipse.e4.core.di.annotations.Optional;
20 21
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
22
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
21 23
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
22 24
import org.eclipse.e4.ui.services.IServiceConstants;
25
import org.eclipse.jface.viewers.ISelection;
26
import org.eclipse.jface.viewers.IStructuredSelection;
23 27
import org.eclipse.swt.widgets.Display;
24 28
import org.eclipse.swt.widgets.Shell;
25 29
import org.eclipse.ui.PartInitException;
......
170 174
        return false;
171 175
    }
172 176

  
177
    @CanExecute
178
    public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_PART) MPart activePart,
179
            MHandledMenuItem menuItem){
180
        boolean canExecute = false;
181
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
182
        ISelection selection = factualDataPart.getViewer().getSelection();
183
        if(selection instanceof IStructuredSelection){
184
            Object firstElement = ((IStructuredSelection) selection).getFirstElement();
185
             canExecute = firstElement instanceof FeatureNodeContainer
186
                    || firstElement instanceof DescriptionElementBase;
187
            menuItem.setVisible(canExecute);
188
        }
189
        return canExecute;
190
    }
191

  
192

  
173 193
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandler.java
9 9

  
10 10
import javax.inject.Named;
11 11

  
12
import org.eclipse.e4.core.di.annotations.CanExecute;
12 13
import org.eclipse.e4.core.di.annotations.Execute;
13 14
import org.eclipse.e4.core.di.annotations.Optional;
14 15
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
16
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
15 17
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
16 18
import org.eclipse.e4.ui.services.IServiceConstants;
17 19
import org.eclipse.jface.dialogs.MessageDialog;
20
import org.eclipse.jface.viewers.ISelection;
21
import org.eclipse.jface.viewers.IStructuredSelection;
18 22
import org.eclipse.swt.widgets.Display;
19 23
import org.eclipse.swt.widgets.Shell;
20 24
import org.eclipse.ui.PartInitException;
21 25

  
22 26
import eu.etaxonomy.cdm.model.common.CdmBase;
27
import eu.etaxonomy.cdm.model.description.DescriptionBase;
28
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
23 29
import eu.etaxonomy.cdm.model.description.TaxonDescription;
24 30
import eu.etaxonomy.cdm.model.taxon.Classification;
25 31
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
......
30 36
import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
31 37
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
32 38
import eu.etaxonomy.taxeditor.model.AbstractUtility;
39
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
33 40
import eu.etaxonomy.taxeditor.model.MessagingUtils;
34 41
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
35 42
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
......
146 153
    public boolean onComplete() {
147 154
        return false;
148 155
    }
156

  
157
    @CanExecute
158
    public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_PART) MPart activePart,
159
            MHandledMenuItem menuItem){
160
        boolean canExecute = false;
161
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
162
        ISelection selection = factualDataPart.getViewer().getSelection();
163
        if(selection instanceof IStructuredSelection){
164
            Object firstElement = ((IStructuredSelection) selection).getFirstElement();
165
             canExecute = firstElement instanceof FeatureNodeContainer
166
                    || firstElement instanceof DescriptionElementBase
167
                    || firstElement instanceof DescriptionBase;
168
            menuItem.setVisible(canExecute);
169
        }
170
        return canExecute;
171
    }
149 172
}

Also available in: Unified diff