Project

General

Profile

« Previous | Next » 

Revision c3bb7840

Added by Patrick Plitzner over 6 years ago

ref #6909 Implement menu item/handler visibility

View differences:

eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CreateClassificationHierarchyHandlerE4.java
2 2

  
3 3
import javax.inject.Named;
4 4

  
5
import org.eclipse.e4.core.di.annotations.CanExecute;
5 6
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
6 7
import org.eclipse.e4.ui.services.IServiceConstants;
7 8
import org.eclipse.jface.viewers.TreeSelection;
......
13 14
import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
14 15
import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
15 16
import eu.etaxonomy.taxeditor.navigation.operation.CreateNewTaxonHierarchyOperation;
17
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
18
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
16 19
import eu.etaxonomy.taxeditor.store.StoreUtil;
17 20

  
18 21
/**
......
28 31

  
29 32
        TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
30 33

  
31
            Object selectedElement = selection.getFirstElement();
32
            if (selectedElement instanceof TaxonNode && !((TaxonNode)selectedElement).hasTaxon()) {
33
                Classification classification = ((TaxonNode) selectedElement).getClassification();
34
                try {
35
                    CreateNewTaxonHierarchyOperation operation = new CreateNewTaxonHierarchyOperation(Messages.CreateClassificationHierarchyHandler_CREATE_HIERARCHY, StoreUtil.getUndoContext(),classification, taxonNavigator, taxonNavigator);
36
                    AbstractUtility.executeOperation(operation);
37
                    taxonNavigator.refresh();
38
                } catch (Exception e) {
39
                    MessagingUtils.messageDialog(Messages.CreateClassificationHierarchyHandler_FAILED, CreateClassificationHierarchyHandlerE4.class,
40
                            Messages.CreateClassificationHierarchyHandler_FAILED_MESSAGE, e);
41
                }
34
        Object selectedElement = selection.getFirstElement();
35
        if (selectedElement instanceof TaxonNode && !((TaxonNode)selectedElement).hasTaxon()) {
36
            Classification classification = ((TaxonNode) selectedElement).getClassification();
37
            try {
38
                CreateNewTaxonHierarchyOperation operation = new CreateNewTaxonHierarchyOperation(Messages.CreateClassificationHierarchyHandler_CREATE_HIERARCHY, StoreUtil.getUndoContext(),classification, taxonNavigator, taxonNavigator);
39
                AbstractUtility.executeOperation(operation);
40
                taxonNavigator.refresh();
41
            } catch (Exception e) {
42
                MessagingUtils.messageDialog(Messages.CreateClassificationHierarchyHandler_FAILED, CreateClassificationHierarchyHandlerE4.class,
43
                        Messages.CreateClassificationHierarchyHandler_FAILED_MESSAGE, e);
42 44
            }
45
        }
43 46
    }
47

  
48
    @CanExecute
49
    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection){
50
        return selection.getFirstElement() instanceof Classification && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES);
51
    }
52

  
44 53
}

Also available in: Unified diff