Bug 578303: [NiConsole] Convert Cancel handler to scope handler
- Add AbstractToolScopeHandler
Change-Id: If6ce3067886289145dc0c87cc46b5489d1a65727
diff --git a/r/org.eclipse.statet.nico.ui/plugin.xml b/r/org.eclipse.statet.nico.ui/plugin.xml
index c1a52e8..91256fe 100644
--- a/r/org.eclipse.statet.nico.ui/plugin.xml
+++ b/r/org.eclipse.statet.nico.ui/plugin.xml
@@ -135,6 +135,36 @@
</command>
</extension>
<extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ commandId="org.eclipse.statet.nico.commands.CancelCurrent"
+ class="org.eclipse.statet.internal.nico.ui.actions.CancelRunnableScopeHandler$WorkbenchHandler">
+ <enabledWhen>
+ <with
+ variable="org.eclipse.statet.activeTool">
+ </with>
+ </enabledWhen>
+ </handler>
+ <handler
+ commandId="org.eclipse.statet.nico.commands.CancelCurrentAndPause"
+ class="org.eclipse.statet.internal.nico.ui.actions.CancelRunnableScopeHandler$WorkbenchHandler">
+ <enabledWhen>
+ <with
+ variable="org.eclipse.statet.activeTool">
+ </with>
+ </enabledWhen>
+ </handler>
+ <handler
+ commandId="org.eclipse.statet.nico.commands.CancelAll"
+ class="org.eclipse.statet.internal.nico.ui.actions.CancelRunnableScopeHandler$WorkbenchHandler">
+ <enabledWhen>
+ <with
+ variable="org.eclipse.statet.activeTool">
+ </with>
+ </enabledWhen>
+ </handler>
+ </extension>
+ <extension
point="org.eclipse.ui.bindings">
<key
commandId="org.eclipse.statet.nico.commands.CancelCurrent"
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/CancelRunnableScopeHandler.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/CancelRunnableScopeHandler.java
new file mode 100644
index 0000000..3cd7b78
--- /dev/null
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/CancelRunnableScopeHandler.java
@@ -0,0 +1,124 @@
+/*=============================================================================#
+ # Copyright (c) 2007, 2021 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.internal.nico.ui.actions;
+
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.commands.IElementUpdater;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.ui.actions.AbstractScopeHandler;
+import org.eclipse.statet.ecommons.ui.actions.WorkbenchScopingHandler;
+
+import org.eclipse.statet.nico.core.runtime.ToolController;
+import org.eclipse.statet.nico.core.runtime.ToolProcess;
+import org.eclipse.statet.nico.ui.NicoUI;
+import org.eclipse.statet.nico.ui.actions.AbstractToolScopeHandler;
+
+
+/**
+ * Handler to cancel tool tasks.
+ */
+@NonNullByDefault
+public class CancelRunnableScopeHandler extends AbstractToolScopeHandler<ToolProcess> {
+
+
+ public static final String MENU_ID= "org.eclipse.statet.nico.menus.Cancel"; //$NON-NLS-1$
+
+ public static final String PAR_OPTIONS= "options"; //$NON-NLS-1$
+
+
+ private final int options;
+
+
+ public CancelRunnableScopeHandler(final Object scope, final String commandId) {
+ super(scope, commandId);
+
+ switch (commandId) {
+ case NicoUI.CANCEL_CURRENT_COMMAND_ID:
+ this.options= ToolController.CANCEL_CURRENT;
+ break;
+ case NicoUI.CANCEL_CURRENT_PAUSE_COMMAND_ID:
+ this.options= ToolController.CANCEL_CURRENT | ToolController.CANCEL_PAUSE;
+ break;
+ case NicoUI.CANCEL_ALL_COMMAND_ID:
+ this.options= ToolController.CANCEL_ALL;
+ break;
+ default:
+ throw new IllegalArgumentException("commandId= " + commandId);
+ }
+ }
+
+
+ @Override
+ protected boolean evaluateIsEnabled(final ToolProcess tool) {
+ return (!tool.isTerminated());
+ }
+
+ @Override
+ public @Nullable Object execute(final ExecutionEvent event,
+ final ToolProcess tool, final IEvaluationContext evalContext)
+ throws ExecutionException {
+ final String optionsParameter= event.getParameter(PAR_OPTIONS);
+ int options= this.options;
+ if (optionsParameter != null) {
+ try {
+ options= Integer.decode(optionsParameter);
+ }
+ catch (final NumberFormatException e) {
+ throw new ExecutionException(String.format("Invalid parameter '%1$s'.", PAR_OPTIONS),
+ e );
+ }
+ }
+
+ final ToolController controller= (tool != null) ? tool.getController() : null;
+ if (controller == null) {
+ return null;
+ }
+
+ if (!controller.cancelTask(options)) {
+ Display.getCurrent().beep();
+ }
+
+ return null;
+ }
+
+
+ public static class WorkbenchHandler extends WorkbenchScopingHandler
+ implements IElementUpdater, IExecutableExtension {
+
+
+ /** For instantiation via plugin.xml */
+ public WorkbenchHandler() {
+ }
+
+
+ @Override
+ protected AbstractScopeHandler createScopeHandler(final Object scope) {
+ final String commandId= nonNullAssert(getCommandId());
+ return new CancelRunnableScopeHandler(scope, commandId);
+ }
+
+
+ }
+
+}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/NicoWindowContributions.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/NicoWindowContributions.java
index 645e33c..7baaf68 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/NicoWindowContributions.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/actions/NicoWindowContributions.java
@@ -19,9 +19,7 @@
import org.eclipse.statet.ecommons.ui.actions.WindowContributionsProvider;
-import org.eclipse.statet.nico.core.runtime.ToolController;
import org.eclipse.statet.nico.ui.NicoUI;
-import org.eclipse.statet.nico.ui.actions.CancelHandler;
import org.eclipse.statet.nico.ui.actions.WindowToolProvider;
@@ -45,13 +43,6 @@
new DisconnectEngineHandler(new WindowToolProvider(window), window)));
add(handlerService.activateHandler(NicoUI.RECONNECT_COMMAND_ID,
new ReconnectEngineHandler(new WindowToolProvider(window), window)));
-
- add(handlerService.activateHandler(NicoUI.CANCEL_ALL_COMMAND_ID,
- new CancelHandler(new WindowToolProvider(window), ToolController.CANCEL_ALL)));
- add(handlerService.activateHandler(NicoUI.CANCEL_CURRENT_COMMAND_ID,
- new CancelHandler(new WindowToolProvider(window), ToolController.CANCEL_CURRENT)));
- add(handlerService.activateHandler(NicoUI.CANCEL_PAUSE_COMMAND_ID,
- new CancelHandler(new WindowToolProvider(window), ToolController.CANCEL_CURRENT | ToolController.CANCEL_PAUSE)));
}
}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUI.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUI.java
index 515dbbf..894a1a1 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUI.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUI.java
@@ -36,13 +36,13 @@
public static final String HISTORY_VIEW_ID= "org.eclipse.statet.nico.views.HistoryView"; //$NON-NLS-1$
public static final String QUEUE_VIEW_ID= "org.eclipse.statet.nico.views.QueueView"; //$NON-NLS-1$
- public static final String PAUSE_COMMAND_ID= "org.eclipse.statet.nico.commands.PauseEngine"; //$NON-NLS-1$
public static final String DISCONNECT_COMMAND_ID= "org.eclipse.statet.nico.commands.DisconnectEngine"; //$NON-NLS-1$
public static final String RECONNECT_COMMAND_ID= "org.eclipse.statet.nico.commands.ReconnectEngine"; //$NON-NLS-1$
+ public static final String PAUSE_COMMAND_ID= "org.eclipse.statet.nico.commands.PauseEngine"; //$NON-NLS-1$
public static final String CANCEL_CURRENT_COMMAND_ID= "org.eclipse.statet.nico.commands.CancelCurrent"; //$NON-NLS-1$
+ public static final String CANCEL_CURRENT_PAUSE_COMMAND_ID= "org.eclipse.statet.nico.commands.CancelCurrentAndPause"; //$NON-NLS-1$
public static final String CANCEL_ALL_COMMAND_ID= "org.eclipse.statet.nico.commands.CancelAll"; //$NON-NLS-1$
- public static final String CANCEL_PAUSE_COMMAND_ID= "org.eclipse.statet.nico.commands.CancelCurrentAndPause"; //$NON-NLS-1$
public static NicoUIResources getUIResources() {
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUIResources.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUIResources.java
index de73beb..97e92a5 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUIResources.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/NicoUIResources.java
@@ -28,7 +28,7 @@
private static final String NS= "org.eclipse.statet.nico"; //$NON-NLS-1$
- public static final String LOCTOOL_CANCEL_IMAGE_ID= NS + "/imgage/loctool/cancel"; //$NON-NLS-1$
+ public static final String LOCTOOL_CANCEL_IMAGE_ID= NS + "/image/loctool/cancel"; //$NON-NLS-1$
public static final String LOCTOOLD_CANCEL_IMAGE_ID= NS + "/image/loctoold/cancel"; //$NON-NLS-1$
public static final String LOCTOOL_PAUSE_IMAGE_ID= NS + "/image/loctool/pause"; //$NON-NLS-1$
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/AbstractToolScopeHandler.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/AbstractToolScopeHandler.java
new file mode 100644
index 0000000..7c22d3a
--- /dev/null
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/AbstractToolScopeHandler.java
@@ -0,0 +1,135 @@
+/*=============================================================================#
+ # Copyright (c) 2022 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.nico.ui.actions;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.ui.IWorkbenchWindow;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.ts.core.ActiveToolListener;
+import org.eclipse.statet.jcommons.ts.core.ActiveToolListener.ActiveToolEvent;
+import org.eclipse.statet.jcommons.ts.core.Tool;
+import org.eclipse.statet.jcommons.ts.core.ToolProvider;
+
+import org.eclipse.statet.ecommons.ui.actions.AbstractScopeHandler;
+
+import org.eclipse.statet.nico.ui.NicoUI;
+
+
+@NonNullByDefault
+public abstract class AbstractToolScopeHandler<TTool extends Tool> extends AbstractScopeHandler {
+
+
+ private final ActiveToolListener toolListener= this::onToolChanged;
+
+ private @Nullable ToolProvider toolProvider;
+
+ private @Nullable TTool currentTool;
+
+
+ public AbstractToolScopeHandler(final Object scope, final @Nullable String commandId) {
+ super();
+ init(scope, commandId);
+ }
+
+ @Override
+ protected void init(final Object scope, final @Nullable String commandId) {
+ super.init(scope, commandId);
+
+ ToolProvider toolProvider= null;
+ if (scope instanceof ToolProvider) {
+ toolProvider= (ToolProvider)scope;
+ }
+ else if (scope instanceof IWorkbenchWindow) {
+ toolProvider= NicoUI.getToolRegistry()
+ .getToolProvider(((IWorkbenchWindow)scope).getActivePage());
+ }
+
+ if (toolProvider != null) {
+ this.toolProvider= toolProvider;
+ toolProvider.addToolListener(this.toolListener);
+ }
+ }
+
+ @Override
+ public void dispose() {
+ final var toolProvider= this.toolProvider;
+ if (toolProvider != null) {
+ this.toolProvider= null;
+ toolProvider.removeToolListener(this.toolListener);
+ }
+
+ super.dispose();
+ }
+
+
+ protected @Nullable Tool getTool(final @Nullable IEvaluationContext evalContext) {
+ final Object scope= getScope();
+ if (scope instanceof ToolProvider) {
+ return ((ToolProvider)scope).getTool();
+ }
+
+ return null;
+ }
+
+ private void onToolChanged(final ActiveToolEvent event) {
+ if (this.toolProvider != null) {
+ setEnabled(null);
+ }
+ }
+
+ protected @Nullable TTool getCurrentTool(final @Nullable IEvaluationContext evalContext) {
+ final Tool tool= getTool(evalContext);
+ @SuppressWarnings("unchecked")
+ final var currentTool= (tool == this.currentTool || (tool != null && isSupported(tool))) ?
+ (TTool)tool : null;
+ this.currentTool= currentTool;
+ return currentTool;
+ }
+
+ protected boolean isSupported(final Tool tool) {
+ return true;
+ }
+
+ protected boolean evaluateIsEnabled(final TTool tool) {
+ return true;
+ }
+
+
+ @Override
+ public void setEnabled(final @Nullable IEvaluationContext context) {
+ final var currentTool= getCurrentTool(context);
+ setBaseEnabled(currentTool != null && evaluateIsEnabled(currentTool));
+ }
+
+ @Override
+ public @Nullable Object execute(final ExecutionEvent event, final IEvaluationContext evalContext)
+ throws ExecutionException {
+ final var currentTool= getCurrentTool(evalContext);
+ if (currentTool != null && evaluateIsEnabled(currentTool)) {
+ return execute(event, currentTool, evalContext);
+ }
+ return null;
+ }
+
+ public abstract @Nullable Object execute(final ExecutionEvent event,
+ final TTool tool, final IEvaluationContext evalContext)
+ throws ExecutionException;
+
+
+}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/CancelHandler.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/CancelHandler.java
deleted file mode 100644
index 4dc979f..0000000
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/actions/CancelHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2007, 2021 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.nico.ui.actions;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.jcommons.ts.core.ToolProvider;
-
-import org.eclipse.statet.nico.core.runtime.ToolController;
-import org.eclipse.statet.nico.core.runtime.ToolProcess;
-
-
-/**
- * Handler to cancel tool tasks.
- */
-@NonNullByDefault
-public class CancelHandler extends AbstractToolHandler<ToolProcess> {
-
-
- public static final String MENU_ID= "org.eclipse.statet.nico.menus.Cancel"; //$NON-NLS-1$
-
- public static final String PAR_OPTIONS= "options"; //$NON-NLS-1$
-
-
- private final int options;
-
-
- public CancelHandler(final ToolProvider toolProvider, final int options) {
- super(null, null, toolProvider, null);
-
- this.options= options;
- init();
- }
-
- public CancelHandler(final ToolProvider toolProvider) {
- this(toolProvider, 0);
- }
-
-
- @Override
- protected @Nullable Object execute(final ToolProcess tool, final ExecutionEvent event) {
- final String optionsParameter= event.getParameter(PAR_OPTIONS);
- int options= this.options;
- if (optionsParameter != null) {
- try {
- options= Integer.decode(optionsParameter);
- }
- catch (final NumberFormatException e) {
- }
- }
-
- final ToolController controller= (tool != null) ? tool.getController() : null;
- if (controller == null) {
- return null;
- }
-
- if (!controller.cancelTask(options)) {
- Display.getCurrent().beep();
- }
-
- return null;
- }
-
-}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/console/NIConsolePage.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/console/NIConsolePage.java
index a4a9f74..6611980 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/console/NIConsolePage.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/console/NIConsolePage.java
@@ -14,13 +14,15 @@
package org.eclipse.statet.nico.ui.console;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
import static org.eclipse.statet.ecommons.ui.SharedUIResources.FIND_NEXT_COMMAND_ID;
import static org.eclipse.statet.ecommons.ui.SharedUIResources.FIND_PREVIOUS_COMMAND_ID;
import static org.eclipse.statet.ecommons.ui.actions.UIActions.ADDITIONS_GROUP_ID;
import static org.eclipse.statet.nico.ui.NicoUI.CANCEL_ALL_COMMAND_ID;
import static org.eclipse.statet.nico.ui.NicoUI.CANCEL_CURRENT_COMMAND_ID;
-import static org.eclipse.statet.nico.ui.NicoUI.CANCEL_PAUSE_COMMAND_ID;
+import static org.eclipse.statet.nico.ui.NicoUI.CANCEL_CURRENT_PAUSE_COMMAND_ID;
import java.util.ArrayList;
import java.util.HashMap;
@@ -132,6 +134,7 @@
import org.eclipse.statet.internal.nico.ui.LocalTaskTransfer;
import org.eclipse.statet.internal.nico.ui.Messages;
import org.eclipse.statet.internal.nico.ui.NicoUIPlugin;
+import org.eclipse.statet.internal.nico.ui.actions.CancelRunnableScopeHandler;
import org.eclipse.statet.internal.nico.ui.console.OutputViewer;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditor;
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditorViewerConfigurator;
@@ -142,7 +145,6 @@
import org.eclipse.statet.nico.core.runtime.ToolProcess;
import org.eclipse.statet.nico.core.runtime.ToolStatus;
import org.eclipse.statet.nico.core.runtime.ToolWorkspace;
-import org.eclipse.statet.nico.ui.actions.CancelHandler;
import org.eclipse.statet.nico.ui.util.ExportConsoleOutputWizard;
import org.eclipse.statet.nico.ui.util.NicoWizardDialog;
import org.eclipse.statet.nico.ui.util.OpenTrackingFilesContributionItem;
@@ -686,11 +688,11 @@
this.removeAllAction= new ConsoleRemoveAllTerminatedAction();
this.terminateAction= new TerminateToolAction(this.console.getProcess());
this.pageHandlers.addActivate(CANCEL_CURRENT_COMMAND_ID,
- new CancelHandler(this, ToolController.CANCEL_CURRENT) );
+ new CancelRunnableScopeHandler(this, CANCEL_CURRENT_COMMAND_ID) );
+ this.pageHandlers.addActivate(CANCEL_CURRENT_PAUSE_COMMAND_ID,
+ new CancelRunnableScopeHandler(this, CANCEL_CURRENT_PAUSE_COMMAND_ID) );
this.pageHandlers.addActivate(CANCEL_ALL_COMMAND_ID,
- new CancelHandler(this, ToolController.CANCEL_ALL) );
- this.pageHandlers.addActivate(CANCEL_PAUSE_COMMAND_ID,
- new CancelHandler(this, ToolController.CANCEL_CURRENT | ToolController.CANCEL_PAUSE) );
+ new CancelRunnableScopeHandler(this, CANCEL_ALL_COMMAND_ID) );
// Conflict with binding CTRL+Z (in console EOF)
// pageKeys.activateContext("org.eclipse.debug.ui.console"); //$NON-NLS-1$
@@ -798,11 +800,11 @@
toolBarManager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, new HandlerContributionItem(
new CommandContributionItemParameter(serviceLocator,
- CancelHandler.MENU_ID, CANCEL_CURRENT_COMMAND_ID, null,
+ CancelRunnableScopeHandler.MENU_ID, CANCEL_CURRENT_COMMAND_ID, null,
null, null, null,
Messages.CancelAction_name, null, Messages.CancelAction_tooltip,
HandlerContributionItem.STYLE_PULLDOWN, null, false),
- this.pageHandlers ) {
+ handlers ) {
// Workaround for E-Bug #366528
@Override
protected void initDropDownMenu(final MenuManager menuManager) {
@@ -815,7 +817,7 @@
CommandContributionItem.STYLE_PUSH )));
menuManager.add(new CommandContributionItem(
new CommandContributionItemParameter(serviceLocator,
- null, CANCEL_PAUSE_COMMAND_ID,
+ null, CANCEL_CURRENT_PAUSE_COMMAND_ID,
CommandContributionItem.STYLE_PUSH )));
menuManager.add(new CommandContributionItem(
new CommandContributionItemParameter(serviceLocator,
@@ -1014,7 +1016,7 @@
@Override
public void addToolListener(final ActiveToolListener listener) {
- this.toolListeners.add(listener);
+ this.toolListeners.add(nonNullAssert(listener));
}
@Override