Search in sources :

Example 26 with IActor

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());
}
Also used : IActor(org.freeplane.core.undo.IActor)

Example 27 with IActor

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);
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) IActor(org.freeplane.core.undo.IActor) IUndoHandler(org.freeplane.core.undo.IUndoHandler) MapModel(org.freeplane.features.map.MapModel)

Example 28 with IActor

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);
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) IActor(org.freeplane.core.undo.IActor) IUndoHandler(org.freeplane.core.undo.IUndoHandler) MapModel(org.freeplane.features.map.MapModel)

Example 29 with IActor

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());
}
Also used : ShortenedTextModel(org.freeplane.features.text.ShortenedTextModel) IActor(org.freeplane.core.undo.IActor)

Example 30 with IActor

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());
}
Also used : NodeChangeEvent(org.freeplane.features.map.NodeChangeEvent) DetailTextModel(org.freeplane.features.text.DetailTextModel) IActor(org.freeplane.core.undo.IActor)

Aggregations

IActor (org.freeplane.core.undo.IActor)123 NodeModel (org.freeplane.features.map.NodeModel)30 ModeController (org.freeplane.features.mode.ModeController)28 MapModel (org.freeplane.features.map.MapModel)27 MapController (org.freeplane.features.map.MapController)11 AttributeRegistry (org.freeplane.features.attribute.AttributeRegistry)10 Color (java.awt.Color)8 Point (java.awt.Point)6 MMapController (org.freeplane.features.map.mindmapmode.MMapController)6 NodeStyleModel (org.freeplane.features.nodestyle.NodeStyleModel)6 Controller (org.freeplane.features.mode.Controller)5 IStyle (org.freeplane.features.styles.IStyle)5 MapStyleModel (org.freeplane.features.styles.MapStyleModel)5 NoSuchElementException (java.util.NoSuchElementException)4 LengthUnits (org.freeplane.core.ui.LengthUnits)4 AttributeRegistryElement (org.freeplane.features.attribute.AttributeRegistryElement)4 Date (java.util.Date)3 IExtension (org.freeplane.core.extension.IExtension)3 IUndoHandler (org.freeplane.core.undo.IUndoHandler)3 EdgeModel (org.freeplane.features.edge.EdgeModel)3