Search in sources :

Example 31 with IActor

use of org.freeplane.core.undo.IActor in project freeplane by freeplane.

the class MTextController method setNodeObject.

public void setNodeObject(final NodeModel node, final Object newObject) {
    if (newObject == null) {
        setNodeObject(node, "");
        return;
    }
    final Object oldText = node.getUserObject();
    if (oldText.equals(newObject)) {
        return;
    }
    final IActor actor = new IActor() {

        @Override
        public void act() {
            if (!oldText.equals(newObject)) {
                node.setUserObject(newObject);
                Controller.getCurrentModeController().getMapController().nodeChanged(node, NodeModel.NODE_TEXT, oldText, newObject);
            }
        }

        @Override
        public String getDescription() {
            return "setNodeText";
        }

        @Override
        public void undo() {
            if (!oldText.equals(newObject)) {
                node.setUserObject(oldText);
                Controller.getCurrentModeController().getMapController().nodeChanged(node, NodeModel.NODE_TEXT, newObject, oldText);
            }
        }
    };
    Controller.getCurrentModeController().execute(actor, node.getMap());
}
Also used : IActor(org.freeplane.core.undo.IActor) IFormattedObject(org.freeplane.features.format.IFormattedObject)

Example 32 with IActor

use of org.freeplane.core.undo.IActor in project freeplane by freeplane.

the class LatexNodeHook method setEquationUndoable.

void setEquationUndoable(final LatexExtension model, final String newEquation) {
    final String equation = model.getEquation();
    if (equation.equals(newEquation)) {
        return;
    }
    final IActor actor = new IActor() {

        private final String oldEquation = equation;

        public void act() {
            model.setEquation(newEquation);
            final MapModel map = Controller.getCurrentModeController().getController().getMap();
            Controller.getCurrentModeController().getMapController().setSaved(map, false);
        }

        public String getDescription() {
            return "setLatexEquationUndoable";
        }

        public void undo() {
            model.setEquation(oldEquation);
        }
    };
    Controller.getCurrentModeController().execute(actor, Controller.getCurrentModeController().getController().getMap());
}
Also used : IActor(org.freeplane.core.undo.IActor) MapModel(org.freeplane.features.map.MapModel)

Example 33 with IActor

use of org.freeplane.core.undo.IActor in project freeplane by freeplane.

the class OpenMapsNodeHook method setLocationChoiceUndoable.

private void setLocationChoiceUndoable(final OpenMapsExtension extension, final ICoordinate locationChoosen, final int zoomChoosen) {
    final Coordinate currentLocation = extension.getLocation();
    final int currentZoom = extension.getZoom();
    if (!currentLocation.equals(locationChoosen)) {
        final IActor actor = createUndoActor(extension, locationChoosen, currentLocation, zoomChoosen, currentZoom);
        Controller.getCurrentModeController().execute(actor, Controller.getCurrentModeController().getController().getMap());
    }
}
Also used : Coordinate(org.openstreetmap.gui.jmapviewer.Coordinate) ICoordinate(org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate) IActor(org.freeplane.core.undo.IActor)

Example 34 with IActor

use of org.freeplane.core.undo.IActor in project freeplane by freeplane.

the class MEdgeController method setWidth.

public void setWidth(final NodeModel node, final int width) {
    final ModeController modeController = Controller.getCurrentModeController();
    final int oldWidth = EdgeModel.createEdgeModel(node).getWidth();
    if (width == oldWidth) {
        return;
    }
    final IActor actor = new IActor() {

        public void act() {
            EdgeModel.createEdgeModel(node).setWidth(width);
            modeController.getMapController().nodeChanged(node);
            edgeWidthRefresh(node);
        }

        private void edgeWidthRefresh(final NodeModel node) {
            for (final NodeModel child : modeController.getMapController().childrenUnfolded(node)) {
                if (child.getViewers().isEmpty())
                    continue;
                final EdgeModel edge = EdgeModel.getModel(child);
                if (edge == null || edge.getWidth() == EdgeModel.WIDTH_PARENT) {
                    modeController.getMapController().nodeRefresh(child);
                    edgeWidthRefresh(child);
                }
            }
        }

        public String getDescription() {
            return "setWidth";
        }

        public void undo() {
            EdgeModel.createEdgeModel(node).setWidth(oldWidth);
            modeController.getMapController().nodeChanged(node);
            edgeWidthRefresh(node);
        }
    };
    modeController.execute(actor, node.getMap());
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) IActor(org.freeplane.core.undo.IActor) ModeController(org.freeplane.features.mode.ModeController) EdgeModel(org.freeplane.features.edge.EdgeModel)

Example 35 with IActor

use of org.freeplane.core.undo.IActor in project freeplane by freeplane.

the class MEdgeController method setColor.

public void setColor(final NodeModel node, final Color color) {
    final ModeController modeController = Controller.getCurrentModeController();
    final Color oldColor = EdgeModel.createEdgeModel(node).getColor();
    if (color == oldColor || color != null && color.equals(oldColor)) {
        return;
    }
    final IActor actor = new IActor() {

        public void act() {
            EdgeModel.createEdgeModel(node).setColor(color);
            modeController.getMapController().nodeChanged(node);
        }

        public String getDescription() {
            return "setColor";
        }

        public void undo() {
            EdgeModel.createEdgeModel(node).setColor(oldColor);
            modeController.getMapController().nodeChanged(node);
        }
    };
    modeController.execute(actor, node.getMap());
}
Also used : Color(java.awt.Color) IActor(org.freeplane.core.undo.IActor) ModeController(org.freeplane.features.mode.ModeController)

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