use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class MLocationController method setHorizontalShift.
public void setHorizontalShift(NodeModel node, final Quantity<LengthUnits> horizontalShift) {
final IActor actor = new ChangeShiftXActor(node, horizontalShift);
Controller.getCurrentModeController().execute(actor, node.getMap());
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class ModeController method undoableCopyExtensions.
public void undoableCopyExtensions(final Object key, final NodeModel from, final NodeModel to) {
final MapModel map = to.getMap();
if (map == null) {
copyExtensions(key, from, to);
return;
}
final IUndoHandler undoHandler = map.getExtension(IUndoHandler.class);
if (undoHandler == null) {
copyExtensions(key, from, to);
return;
}
final NodeModel backup = new NodeModel(null);
copyExtensions(key, to, backup);
final IActor actor = new IActor() {
public void undo() {
removeExtensions(key, to);
copyExtensions(key, backup, to);
getMapController().nodeChanged(to);
}
public String getDescription() {
return "undoableCopyExtensions";
}
public void act() {
copyExtensions(key, from, to);
getMapController().nodeChanged(to);
}
};
execute(actor, map);
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class ModeController method undoableResolveParentExtensions.
public void undoableResolveParentExtensions(final Object key, final NodeModel to) {
final MapModel map = to.getMap();
if (map == null) {
resolveParentExtensions(key, to);
return;
}
final IUndoHandler undoHandler = map.getExtension(IUndoHandler.class);
if (undoHandler == null) {
resolveParentExtensions(key, to);
return;
}
final NodeModel backup = new NodeModel(null);
copyExtensions(key, to, backup);
final IActor actor = new IActor() {
public void undo() {
copyExtensions(key, backup, to);
getMapController().nodeChanged(to);
}
public String getDescription() {
return "undoableCopyExtensions";
}
public void act() {
resolveParentExtensions(key, to);
getMapController().nodeChanged(to);
}
};
execute(actor, map);
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class MTextController method setIsMinimized.
@Override
public void setIsMinimized(final NodeModel node, final boolean state) {
ShortenedTextModel details = node.getExtension(ShortenedTextModel.class);
if (details == null && state == false || details != null && state == true) {
return;
}
final IActor actor = new IActor() {
@Override
public void act() {
setShortener(state);
}
@Override
public String getDescription() {
return "setShortener";
}
private void setShortener(final boolean state) {
if (state) {
final ShortenedTextModel details = ShortenedTextModel.createShortenedTextModel(node);
node.addExtension(details);
} else {
node.removeExtension(ShortenedTextModel.class);
}
Controller.getCurrentModeController().getMapController().nodeChanged(node, ShortenedTextModel.SHORTENER, !state, state);
}
@Override
public void undo() {
setShortener(!state);
}
};
Controller.getCurrentModeController().execute(actor, node.getMap());
}
use of org.freeplane.core.undo.IActor in project freeplane by freeplane.
the class MTextController method setDetailsHidden.
@Override
public void setDetailsHidden(final NodeModel node, final boolean isHidden) {
stopEditing();
DetailTextModel details = node.getExtension(DetailTextModel.class);
if (details == null || details.isHidden() == isHidden) {
return;
}
final IActor actor = new IActor() {
@Override
public void act() {
setHidden(isHidden);
}
@Override
public String getDescription() {
return "setDetailsHidden";
}
private void setHidden(final boolean isHidden) {
final DetailTextModel details = DetailTextModel.createDetailText(node);
details.setHidden(isHidden);
node.addExtension(details);
final NodeChangeEvent nodeChangeEvent = new NodeChangeEvent(node, DETAILS_HIDDEN, !isHidden, isHidden, true, false);
Controller.getCurrentModeController().getMapController().nodeRefresh(nodeChangeEvent);
}
@Override
public void undo() {
setHidden(!isHidden);
}
};
Controller.getCurrentModeController().execute(actor, node.getMap());
}
Aggregations