use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class UndoableNamedElementCollection method add.
public void add(final T element) {
final int currentElementIndex = collection.getCurrentElementIndex();
IActor actor = new IActor() {
@Override
public String getDescription() {
return "add";
}
@Override
public void act() {
collection.selectCurrentElement(currentElementIndex);
collection.add(element);
}
@Override
public void undo() {
collection.selectCurrentElement(currentElementIndex + 1);
collection.removeCurrentElement();
collection.selectCurrentElement(currentElementIndex);
}
};
controller.execute(actor, mapModel);
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class PersistentNodeHook method undoableToggleHook.
public void undoableToggleHook(final NodeModel node, final IExtension extension) {
final IActor actor = new ToggleHookActor(node, extension);
Controller.getCurrentModeController().execute(actor, node.getMap());
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class PersistentNodeHook method moveExtension.
public void moveExtension(ModeController modeController, MapModel sourceMap, MapModel targetMap) {
final NodeModel sourceNode = sourceMap.getRootNode();
final Class<? extends IExtension> extensionClass = getExtensionClass();
final IExtension sourceExtension = sourceNode.getExtension(extensionClass);
final NodeModel targetNode = targetMap.getRootNode();
final IExtension targetExtension = targetNode.getExtension(extensionClass);
if (sourceExtension == targetExtension)
return;
IActor actor = new IActor() {
@Override
public void act() {
if (targetExtension != null)
targetNode.removeExtension(targetExtension);
if (sourceExtension != null)
targetNode.addExtension(sourceExtension);
}
@Override
public void undo() {
if (sourceExtension != null)
targetNode.removeExtension(sourceExtension);
if (targetExtension != null)
targetNode.addExtension(targetExtension);
}
@Override
public String getDescription() {
return "move extension " + extensionClass.getName();
}
};
modeController.execute(actor, targetMap);
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class MNodeStyleController method createOwnSizeModel.
private NodeSizeModel createOwnSizeModel(final NodeModel node) {
{
final NodeSizeModel sizeModel = NodeSizeModel.getModel(node);
if (sizeModel != null) {
return sizeModel;
}
}
final ModeController modeController = Controller.getCurrentModeController();
final IActor actor = new IActor() {
public void act() {
node.addExtension(new NodeSizeModel());
}
public String getDescription() {
return null;
}
public void undo() {
node.removeExtension(NodeSizeModel.class);
}
};
modeController.execute(actor, node.getMap());
return NodeSizeModel.getModel(node);
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class MNodeStyleController method setItalic.
/**
* @param italic
*/
public void setItalic(final NodeModel node, final Boolean italic) {
final Boolean oldItalic = NodeStyleModel.isItalic(node);
if (oldItalic == italic || oldItalic != null && oldItalic.equals(italic)) {
return;
}
createOwnStyleModel(node);
final ModeController modeController = Controller.getCurrentModeController();
final IActor actor = new IActor() {
public void act() {
final NodeStyleModel styleModel = NodeStyleModel.getModel(node);
styleModel.setItalic(italic);
Controller.getCurrentModeController().getMapController().nodeChanged(node);
}
public String getDescription() {
return "setItalic";
}
public void undo() {
final NodeStyleModel styleModel = NodeStyleModel.getModel(node);
styleModel.setItalic(oldItalic);
Controller.getCurrentModeController().getMapController().nodeChanged(node);
}
};
modeController.execute(actor, node.getMap());
}
Aggregations