// FIXME any restriction whether this method is invoked within model read/write action? public <T> T runNonUndoableAction(Computable<T> t) { if (ModelAccess.instance().canWrite() && myHandler != DEFAULT) { // locks optimization, install temporary dummy handler UndoHandler old = myHandler; try { myHandler = DEFAULT; return t.compute(); } finally { myHandler = old; } } else { return myHandler.runNonUndoableAction(t); } }
public boolean isInsideUndoableCommand() { return myHandler.isInsideUndoableCommand(); }
public boolean needRegisterUndo() { return myHandler.needRegisterUndo(); }
public void flushCommand(Project p) { myHandler.flushCommand(p); }
public void addUndoableAction(SNodeUndoableAction action) { myHandler.addUndoableAction(action); }