Search in sources :

Example 61 with IHandlerService

use of org.eclipse.ui.handlers.IHandlerService in project erlide_eclipse by erlang.

the class ErlangOutlinePage method createControl.

@Override
public void createControl(final Composite parent) {
    final Tree tree = new Tree(parent, SWT.MULTI);
    fOutlineViewer = new TreeViewer(tree);
    fOutlineViewer.setAutoExpandLevel(0);
    fOutlineViewer.setUseHashlookup(true);
    fOutlineViewer.setContentProvider(fEditor.createOutlineContentProvider());
    fOutlineViewer.setLabelProvider(fEditor.createOutlineLabelProvider());
    fOutlineViewer.addPostSelectionChangedListener(this);
    fOutlineViewer.setInput(fModule);
    final IPageSite site = getSite();
    fOpenAndLinkWithEditorHelper = new OpenAndLinkWithEditorHelper(fOutlineViewer, fEditor, site.getPage());
    final IContextService service = site.getService(IContextService.class);
    if (service != null) {
        service.activateContext("org.erlide.ui.erlangOutlineAndNavigatorScope");
    }
    final MenuManager manager = new MenuManager();
    manager.setRemoveAllWhenShown(true);
    manager.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(final IMenuManager m) {
            // recursive loop?
            // menuAboutToShow(m);
            contextMenuAboutToShow(m);
        }
    });
    final Menu menu = manager.createContextMenu(tree);
    tree.setMenu(menu);
    site.registerContextMenu(ErlangCore.PLUGIN_ID + ".outline", manager, fOutlineViewer);
    fActionGroups = new CompositeActionGroup(new ActionGroup[] { new ErlangSearchActionGroup(this) });
    // register global actions
    final IActionBars actionBars = site.getActionBars();
    actionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, fEditor.getAction(ITextEditorActionConstants.UNDO));
    actionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, fEditor.getAction(ITextEditorActionConstants.REDO));
    fActionGroups.fillActionBars(actionBars);
    registerToolbarActions(actionBars);
    final IHandlerService handlerService = site.getService(IHandlerService.class);
    if (handlerService != null) {
        handlerService.activateHandler(IWorkbenchCommandConstants.NAVIGATE_TOGGLE_LINK_WITH_EDITOR, new ActionHandler(fToggleLinkingAction));
    }
    fPartListener = new IPartListener() {

        @Override
        public void partOpened(final IWorkbenchPart part) {
            // JC borde filter-metoden ovan r�cka?
            addFilters();
        }

        @Override
        public void partDeactivated(final IWorkbenchPart part) {
        }

        @Override
        public void partClosed(final IWorkbenchPart part) {
        }

        @Override
        public void partBroughtToTop(final IWorkbenchPart part) {
        }

        @Override
        public void partActivated(final IWorkbenchPart part) {
            addFilters();
        }
    };
    getSite().getPage().addPartListener(fPartListener);
}
Also used : CompositeActionGroup(org.erlide.ui.actions.CompositeActionGroup) ErlangSearchActionGroup(org.erlide.ui.actions.ErlangSearchActionGroup) TreeViewer(org.eclipse.jface.viewers.TreeViewer) IPartListener(org.eclipse.ui.IPartListener) IPageSite(org.eclipse.ui.part.IPageSite) IMenuListener(org.eclipse.jface.action.IMenuListener) IHandlerService(org.eclipse.ui.handlers.IHandlerService) ActionGroup(org.eclipse.ui.actions.ActionGroup) ErlangSearchActionGroup(org.erlide.ui.actions.ErlangSearchActionGroup) CompositeActionGroup(org.erlide.ui.actions.CompositeActionGroup) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) MenuManager(org.eclipse.jface.action.MenuManager) IMenuManager(org.eclipse.jface.action.IMenuManager) Tree(org.eclipse.swt.widgets.Tree) IContextService(org.eclipse.ui.contexts.IContextService) IMenuManager(org.eclipse.jface.action.IMenuManager) Menu(org.eclipse.swt.widgets.Menu) ActionHandler(org.eclipse.jface.commands.ActionHandler) IActionBars(org.eclipse.ui.IActionBars)

Example 62 with IHandlerService

use of org.eclipse.ui.handlers.IHandlerService in project erlide_eclipse by erlang.

the class CommandRunnerSelectionAdapter method widgetSelected.

@Override
public void widgetSelected(final SelectionEvent e) {
    final IWorkbench workbench = PlatformUI.getWorkbench();
    @Nullable final IHandlerService handlerService = workbench.getService(IHandlerService.class);
    try {
        if (handlerService != null) {
            handlerService.executeCommand(commandId, null);
        }
    } catch (final Exception ex) {
        throw new RuntimeException(commandId + " not found");
    }
}
Also used : IWorkbench(org.eclipse.ui.IWorkbench) IHandlerService(org.eclipse.ui.handlers.IHandlerService) Nullable(org.eclipse.jdt.annotation.Nullable)

Example 63 with IHandlerService

use of org.eclipse.ui.handlers.IHandlerService in project erlide_eclipse by erlang.

the class ConsolePageParticipant method activated.

@Override
public void activated() {
    // add EOF submissions
    final IPageSite site = fPage.getSite();
    final IHandlerService handlerService = site.getService(IHandlerService.class);
    final IContextService contextService = site.getService(IContextService.class);
    if (handlerService == null || contextService == null) {
        return;
    }
    fActivatedContext = contextService.activateContext(ConsolePageParticipant.fContextId);
    fActivatedHandler = handlerService.activateHandler("org.eclipse.debug.ui.commands.eof", // $NON-NLS-1$
    fEOFHandler);
}
Also used : IHandlerService(org.eclipse.ui.handlers.IHandlerService) IPageSite(org.eclipse.ui.part.IPageSite) IContextService(org.eclipse.ui.contexts.IContextService)

Example 64 with IHandlerService

use of org.eclipse.ui.handlers.IHandlerService in project erlide_eclipse by erlang.

the class ConsolePageParticipant method deactivated.

@Override
public void deactivated() {
    // remove EOF submissions
    final IPageSite site = fPage.getSite();
    final IHandlerService handlerService = site.getService(IHandlerService.class);
    final IContextService contextService = site.getService(IContextService.class);
    if (handlerService == null || contextService == null) {
        return;
    }
    handlerService.deactivateHandler(fActivatedHandler);
    contextService.deactivateContext(fActivatedContext);
}
Also used : IHandlerService(org.eclipse.ui.handlers.IHandlerService) IPageSite(org.eclipse.ui.part.IPageSite) IContextService(org.eclipse.ui.contexts.IContextService)

Example 65 with IHandlerService

use of org.eclipse.ui.handlers.IHandlerService in project eclipse-integration-commons by spring-projects.

the class DashboardExtensionsPage method createFormContent.

@Override
protected void createFormContent(final IManagedForm managedForm) {
    Composite body = managedForm.getForm().getBody();
    body.setLayout(new GridLayout(5, false));
    discoveryViewer = new DashboardDiscoveryViewer(getSite(), this);
    initialize(discoveryViewer);
    discoveryViewer.setDirectoryUrl(ResourceProvider.getUrl(RESOURCE_DISCOVERY_DIRECTORY).replace("%VERSION%", IdeUiUtils.getShortVersion()));
    discoveryViewer.setShowConnectorDescriptorKindFilter(false);
    discoveryViewer.createControl(body);
    FormToolkit toolkit = managedForm.getToolkit();
    adaptRecursively(discoveryViewer.getControl(), toolkit);
    GridDataFactory.fillDefaults().span(5, 1).grab(true, true).applyTo(discoveryViewer.getControl());
    findUpdatesButton = toolkit.createButton(body, "&Find Updates", SWT.NONE);
    findUpdatesButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent event) {
            IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
            try {
                handlerService.executeCommand("org.eclipse.equinox.p2.ui.sdk.update", new Event());
            } catch (Exception e) {
                StatusManager.getManager().handle(new Status(IStatus.ERROR, IdeUiPlugin.PLUGIN_ID, "Find updates failed with an unexpected error.", e), StatusManager.SHOW | StatusManager.LOG);
            }
        }
    });
    Hyperlink configureLink = toolkit.createHyperlink(body, "Configure Extensions...", SWT.NONE);
    configureLink.addHyperlinkListener(new HyperlinkAdapter() {

        @Override
        public void linkActivated(HyperlinkEvent event) {
            PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getSite().getShell(), ID_PREFERENCE_PAGE, new String[] { ID_PREFERENCE_PAGE }, null);
            dialog.open();
        }
    });
    progressMonitorPart = new ProgressMonitorPart(body, null);
    monitor.attach(progressMonitorPart);
    progressMonitorPart.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            monitor.setCanceled(true);
            monitor.detach(progressMonitorPart);
        }
    });
    adaptRecursively(progressMonitorPart, toolkit);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(progressMonitorPart);
    // Button refreshButton = toolkit.createButton(body, "Refresh",
    // SWT.NONE);
    // refreshButton.addSelectionListener(new SelectionAdapter() {
    // @Override
    // public void widgetSelected(SelectionEvent e) {
    // pane.updateDiscovery();
    // }
    // });
    cancelButton = toolkit.createButton(body, "&Cancel", SWT.NONE);
    cancelButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            cancelButton.setEnabled(false);
            progressMonitorPart.setCanceled(true);
        }
    });
    installButton = toolkit.createButton(body, "&Install", SWT.NONE);
    installButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // check for conflicts
            List<ConnectorDescriptor> selection = discoveryViewer.getInstallableConnectors();
            IStatus conflictStatus = new MultiStatus(IdeUiPlugin.PLUGIN_ID, -1, new IStatus[] { checkForConflicts(SVN_FEATURES, " Please select only one SVN team provider.", selection), checkForConflicts(M2E_EXTENSION_IDS, " Please select only one m2e version to install.", selection) }, "Could not perform install due to conflicts.", null);
            if (!conflictStatus.isOK()) {
                StatusManager.getManager().handle(conflictStatus, StatusManager.SHOW | StatusManager.BLOCK);
                return;
            }
            // now, if m2e is going to be installed, ensure that all other
            // versions of m2e are uninstalled first.
            Set<String> featuresToUninstall = chooseUnwantedFeatures(selection);
            if (!featuresToUninstall.isEmpty()) {
                IStatus uninstallResult = uninstallFeatures(featuresToUninstall);
                if (!uninstallResult.isOK()) {
                    if (uninstallResult.getSeverity() != IStatus.CANCEL) {
                        StatusManager.getManager().handle(uninstallResult, StatusManager.SHOW | StatusManager.LOG | StatusManager.BLOCK);
                    }
                    return;
                }
            }
            DiscoveryUi.install(discoveryViewer.getInstallableConnectors(), DashboardExtensionsPage.this);
        }

        private IStatus uninstallFeatures(final Set<String> featuresToUninstall) {
            String allInstalled = findFeaturesToUninstall(featuresToUninstall, discoveryViewer.getInstalledFeatures());
            if (allInstalled.length() == 0) {
                return Status.OK_STATUS;
            }
            boolean res = MessageDialog.openQuestion(getPartControl().getShell(), "Perform uninstall?", "In order to switch versions of m2eclipse, the following features will be uninstalled:\n" + allInstalled + "Do you want to continue?");
            if (!res) {
                return Status.CANCEL_STATUS;
            }
            // uninstall previous Maven tooling
            AbstractInstallJob job = DiscoveryUi.createInstallJob();
            try {
                return job.uninstall(new UninstallRequest() {

                    /**
                     * Uninstall all features that are somehow related to
                     * m2eclipse
                     */
                    @Override
                    public boolean select(InstalledItem item) {
                        String featureId = item.getId();
                        return isRelatedToM2e(featuresToUninstall, featureId);
                    }
                }, new NullProgressMonitor());
            } catch (Exception e) {
                return new Status(IStatus.ERROR, IdeUiPlugin.PLUGIN_ID, NLS.bind("Could not uninstall features:\n{0},\n try uninstalling manually.", featuresToUninstall), e);
            }
        }

        private String findFeaturesToUninstall(Set<String> featuresToUninstall, Set<String> installedFeatures) {
            StringBuilder sb = new StringBuilder();
            for (String featureId : installedFeatures) {
                if (isRelatedToM2e(featuresToUninstall, featureId)) {
                    if (featureId.endsWith(".feature.group")) {
                        featureId = featureId.substring(0, featureId.length() - ".feature.group".length());
                    }
                    sb.append("   " + featureId + "\n");
                }
            }
            return sb.toString();
        }

        private Set<String> chooseUnwantedFeatures(List<ConnectorDescriptor> selection) {
            boolean uninstallOld = false;
            boolean uninstallNew = false;
            for (ConnectorDescriptor feature : selection) {
                // first and vice versa
                if (feature.getId().equals(NEW_M2E_EXTENSION_ID)) {
                    uninstallOld = true;
                } else if (feature.getId().equals(OLD_M2E_EXTENSION_ID)) {
                    uninstallNew = true;
                }
            }
            Set<String> maybeUninstall;
            if (uninstallOld) {
                maybeUninstall = OLD_M2E_FEATURES;
            } else if (uninstallNew) {
                maybeUninstall = NEW_M2E_FEATURES;
            } else {
                maybeUninstall = Collections.emptySet();
            }
            Set<String> installedFeatures = DashboardExtensionsPage.this.discoveryViewer.getInstalledFeatures();
            Set<String> definitelyUninstall = new HashSet<String>();
            for (String feature : maybeUninstall) {
                if (installedFeatures.contains(feature)) {
                    definitelyUninstall.add(feature);
                }
            }
            if (definitelyUninstall.size() > 0) {
                IdeUiPlugin.log(new Status(IStatus.INFO, IdeUiPlugin.PLUGIN_ID, "To make way for a new version of m2eclipse, we will uninstall these features: " + definitelyUninstall));
            }
            return definitelyUninstall;
        }

        /**
         * This method checks for conflicts with requested installs. If a
         * conflict is found, this method will pop up a dialog explaining
         * the conflict and it will return true.
         * @param featuresToCheck set of features of which only one can be
         * installed at once.
         * @param message message to add if there is an error
         * @param selection
         *
         * @return true iff there is a conflict.
         */
        public IStatus checkForConflicts(Set<String> featuresToCheck, String prependedMessage, List<ConnectorDescriptor> selection) {
            StringBuilder message = new StringBuilder();
            List<ConnectorDescriptor> conflicting = new ArrayList<ConnectorDescriptor>();
            for (ConnectorDescriptor descriptor : selection) {
                if (featuresToCheck.contains(descriptor.getId())) {
                    conflicting.add(descriptor);
                    if (message.length() > 0) {
                        message.append(", ");
                    }
                    message.append(descriptor.getName());
                }
            }
            if (conflicting.size() > 1) {
                return new Status(IStatus.WARNING, IdeUiPlugin.PLUGIN_ID, NLS.bind("The following extensions can not be installed at the same time: {0}.", message.toString()));
            } else {
                return Status.OK_STATUS;
            }
        }
    });
    Display.getCurrent().asyncExec(new Runnable() {

        public void run() {
            if (!managedForm.getForm().isDisposed()) {
                discoveryViewer.updateDiscovery();
            }
        }
    });
    discoveryViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            installButton.setEnabled(discoveryViewer.isComplete());
        }
    });
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IStatus(org.eclipse.core.runtime.IStatus) HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) Set(java.util.Set) HashSet(java.util.HashSet) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) MultiStatus(org.eclipse.core.runtime.MultiStatus) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) DisposeEvent(org.eclipse.swt.events.DisposeEvent) InstalledItem(org.eclipse.mylyn.internal.discovery.ui.InstalledItem) UninstallRequest(org.eclipse.mylyn.internal.discovery.ui.UninstallRequest) GridLayout(org.eclipse.swt.layout.GridLayout) PreferenceDialog(org.eclipse.jface.preference.PreferenceDialog) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ProgressMonitorPart(org.eclipse.jface.wizard.ProgressMonitorPart) List(java.util.List) ArrayList(java.util.ArrayList) MultiStatus(org.eclipse.core.runtime.MultiStatus) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) InvocationTargetException(java.lang.reflect.InvocationTargetException) ConnectorDescriptor(org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptor) IHandlerService(org.eclipse.ui.handlers.IHandlerService) DisposeEvent(org.eclipse.swt.events.DisposeEvent) HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Event(org.eclipse.swt.widgets.Event) SelectionEvent(org.eclipse.swt.events.SelectionEvent) AbstractInstallJob(org.eclipse.mylyn.internal.discovery.ui.AbstractInstallJob) Hyperlink(org.eclipse.ui.forms.widgets.Hyperlink) HyperlinkAdapter(org.eclipse.ui.forms.events.HyperlinkAdapter)

Aggregations

IHandlerService (org.eclipse.ui.handlers.IHandlerService)102 ActionHandler (org.eclipse.jface.commands.ActionHandler)44 Action (org.eclipse.jface.action.Action)41 RefreshAction (org.netxms.ui.eclipse.actions.RefreshAction)25 IEvaluationContext (org.eclipse.core.expressions.IEvaluationContext)18 Command (org.eclipse.core.commands.Command)17 ICommandService (org.eclipse.ui.commands.ICommandService)17 ExecutionEvent (org.eclipse.core.commands.ExecutionEvent)15 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)14 AbstractHandler (org.eclipse.core.commands.AbstractHandler)10 ParameterizedCommand (org.eclipse.core.commands.ParameterizedCommand)9 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)9 SelectionEvent (org.eclipse.swt.events.SelectionEvent)9 IWorkbenchWindow (org.eclipse.ui.IWorkbenchWindow)9 IHandler (org.eclipse.core.commands.IHandler)8 EvaluationContext (org.eclipse.core.expressions.EvaluationContext)8 ArrayList (java.util.ArrayList)7 ExecutionException (org.eclipse.core.commands.ExecutionException)7 IAction (org.eclipse.jface.action.IAction)7 IContextService (org.eclipse.ui.contexts.IContextService)7