private void setFindBarContextActive(boolean activate) { fActivated = activate; IWorkbenchPartSite site = textEditor.getSite(); IHandlerService handlerService = (IHandlerService) site.getService(IHandlerService.class); IBindingService service = (IBindingService) site.getService(IBindingService.class); if (activate) { // These will be the only active commands (note that they may have multiple keybindings // defined in plugin.xml) for (Map.Entry<String, AbstractHandler> entry : fCommandToHandler.entrySet()) { AbstractHandler handler = entry.getValue(); if (handler != null) { fHandlerActivations.add(handlerService.activateHandler(entry.getKey(), handler)); } } // Yes, no longer execute anything from the binding service (we'll do our own handling so that the commands // we need still get executed). service.setKeyFilterEnabled(false); service.addBindingManagerListener(fClearCommandToBindingOnChangesListener); } else { fCommandToBinding = null; service.setKeyFilterEnabled(true); service.removeBindingManagerListener(fClearCommandToBindingOnChangesListener); handlerService.deactivateHandlers(fHandlerActivations); fHandlerActivations.clear(); } }
/** * Returns a handler that can create and open the quick menu. * * @return a handler that can create and open the quick menu */ public IHandler createHandler() { return new AbstractHandler() { public Object execute(ExecutionEvent event) throws ExecutionException { createMenu(); return null; } }; }
protected AbstractHandler getHandler_OpenDefinition() { return getEditorHandler((editor) -> { OpenNewEditorMode newEditorMode = OpenNewEditorMode.TRY_REUSING_EXISTING; SourceRange selection = EditorUtils.getSelectionSR(editor); return createOpenDefinitionOperation(editor, selection, newEditorMode); }); }
/** * execute {@link OpenUrlHandler} or {@link OpenDefaultEditorHandler} * dependent on the type of the selected node's attachment. * * @param event ExecutionEvent An event * @return result of the execution * @throws ExecutionException if an exception occurred during execution OpenUrlHandler or OpenDefaultEditorHandler. * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) */ public Object execute(ExecutionEvent event) throws ExecutionException { GraphicalEditPart editPart = getSelectedElement(event); String attachment = null; if (editPart == null) { DcaseLinkEditPart linkEditPart = DcaseEditorUtil.getFirstCurrentSelectedLink(); if (linkEditPart != null) { BasicLink basicLink = (BasicLink)DcaseEditorUtil.getElement(linkEditPart); attachment = basicLink.getAttachment(); } } else { BasicNode basicNode = getBasicNode(editPart); attachment = basicNode.getAttachment(); } if (attachment != null && attachment.length() > 0) { if (isUrl(attachment)) { // in the case of uri type, execute OpenUrlHandler. AbstractHandler openUrlHandler = new OpenUrlHandler(); return openUrlHandler.execute(event); } else if (ModuleUtil.isWorkspaceReference(attachment)) { // in the case of Workspace type, execute OpenDefaultEditorHandler. AbstractHandler openDefaultEditorHandler = new OpenDefaultEditorHandler(); return openDefaultEditorHandler.execute(event); } else { AbstractHandler openModuleHandler = new OpenModuleHandler(); return openModuleHandler.execute(event); } } else { MessageWriter.showErrorMessageBox(NLS.bind(Messages.OpenUrlHandler_5, "Attachment")); //$NON-NLS-1$ return null; } }
@Override protected Object internalExecute(ExecutionEvent event) throws Exception { Shell shell = HandlerUtil.getActiveShell(event); AbstractHandler original; String id = event.getCommand().getId(); if ("org.eclipse.egit.ui.PushHeadToGerrit".equals(id)) { //$NON-NLS-1$ original = new PushHeadToGerritCommand(); } else if ("org.eclipse.egit.ui.FetchGerritChange".equals(id)) { //$NON-NLS-1$ original = new FetchChangeFromGerritCommand(); } else { return null; } IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(GerritToolsPlugin.PLUGIN_ID); if (!prefs.getBoolean(PREF_SHOW_USE_GERRIT_TOOLS_INFO, true)) { return original.execute(event); } MessageDialogWithToggle dialog = new MessageDialogWithToggle( shell, "Use Gerrit Tools", null, null, MessageDialog.INFORMATION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }, 0, "Do not show again", false) { protected Control createMessageArea(Composite theParent) { super.createMessageArea(theParent); Link link = new Link(theParent, SWT.WRAP); GridDataFactory .fillDefaults() .align(SWT.FILL, SWT.BEGINNING) .grab(true, false) .hint(convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH), SWT.DEFAULT).applyTo(link); link.setText("Gerrit Tools provides an improved experience when pushing and fetching from Gerrit. <a>Learn more about using Gerrit Tools.</a>\n\nContinue to the standard EGit action?"); link.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { try { PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL( new URL("https://github.com/Genuitec/gerrit-tools/wiki")); //$NON-NLS-1$ } catch (Exception e1) { throw new RuntimeException(e1); } }}); return theParent; } }; try { if (dialog.open() == IDialogConstants.YES_ID) { return original.execute(event); } } finally { prefs.putBoolean(PREF_SHOW_USE_GERRIT_TOOLS_INFO, !dialog.getToggleState()); } return null; }
protected void activateHandler(String string, AbstractHandler handler) { IHandlerActivation handlerActivation = getHandlerService_2().activateHandler(string, handler); handlerActivations.add(handlerActivation); }
protected AbstractHandler getHandler_GoToMatchingBracket() { return new GoToMatchingBracketHandler(getPage()); }
protected AbstractHandler getHandler_ToggleComment() { return new ToggleCommentHandler(getPage()); }
protected AbstractHandler getHandler_QuickOutline() { return new OpenQuickOutlineHandler(getPage()); }