Skip to content
Snippets Groups Projects
Commit 21a5c056 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

Fixed NPE bug.

parent 82af5b2d
No related branches found
No related tags found
No related merge requests found
......@@ -17,7 +17,9 @@ $Id$
+--------------------------------------------------------------------------*/
package org.fortiss.tooling.kernel.internal;
import org.eclipse.emf.common.command.CommandStack;
import org.eclipse.emf.ecore.EObject;
import org.fortiss.tooling.kernel.interfaces.IStorageProvider;
import org.fortiss.tooling.kernel.services.ICommandStackService;
import org.fortiss.tooling.kernel.services.IPersistencyService;
......@@ -34,31 +36,41 @@ public class CommandStackService implements ICommandStackService {
/** {@inheritDoc} */
@Override
public void runAsCommand(EObject target, Runnable runner) {
IPersistencyService.INSTANCE.getStorageProviderFor(target)
.runAsCommand(target, runner);
IStorageProvider provider = IPersistencyService.INSTANCE
.getStorageProviderFor(target);
if (provider != null) {
provider.runAsCommand(target, runner);
}
}
/** {@inheritDoc} */
@Override
public boolean canUndo(EObject target) {
return IPersistencyService.INSTANCE.getCommandStack(target).canUndo();
CommandStack stack = getCommandStack(target);
return stack != null && stack.canUndo();
}
/** {@inheritDoc} */
@Override
public boolean canRedo(EObject target) {
return IPersistencyService.INSTANCE.getCommandStack(target).canRedo();
CommandStack stack = getCommandStack(target);
return stack != null && stack.canRedo();
}
/** {@inheritDoc} */
@Override
public void undo(EObject target) {
IPersistencyService.INSTANCE.getCommandStack(target).undo();
getCommandStack(target).undo();
}
/** {@inheritDoc} */
@Override
public void redo(EObject target) {
IPersistencyService.INSTANCE.getCommandStack(target).redo();
getCommandStack(target).redo();
}
/** Fetches command stack from persistency service. */
private CommandStack getCommandStack(EObject target) {
return IPersistencyService.INSTANCE.getCommandStack(target);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment