Search in sources :

Example 1 with NodeLinks

use of org.freeplane.features.link.NodeLinks in project freeplane by freeplane.

the class MLinkController method setFormatNodeAsHyperlink.

public void setFormatNodeAsHyperlink(final NodeModel node, final Boolean enabled) {
    final NodeLinks links = NodeLinks.createLinkExtension(node);
    IActor actor = new IActor() {

        final Boolean old = links.formatNodeAsHyperlink();

        public void act() {
            links.setFormatNodeAsHyperlink(enabled);
            modeController.getMapController().nodeChanged(node);
        }

        public void undo() {
            links.setFormatNodeAsHyperlink(old);
            modeController.getMapController().nodeChanged(node);
        }

        public String getDescription() {
            return "setFormatNodeAsHyperlink";
        }
    };
    modeController.execute(actor, node.getMap());
}
Also used : NodeLinks(org.freeplane.features.link.NodeLinks) IActor(org.freeplane.core.undo.IActor)

Example 2 with NodeLinks

use of org.freeplane.features.link.NodeLinks in project freeplane by freeplane.

the class MLinkController method setLink.

public void setLink(final NodeModel node, final URI argUri, final int linkType) {
    final URI uri = relativeLink(argUri, node, linkType);
    final IActor actor = new IActor() {

        private URI oldlink;

        private String oldTargetID;

        public void act() {
            NodeLinks links = NodeLinks.getLinkExtension(node);
            if (links != null) {
                oldlink = links.getHyperLink(node);
                oldTargetID = links.removeLocalHyperLink(node);
            } else {
                links = NodeLinks.createLinkExtension(node);
            }
            if (uri != null && uri.toString().startsWith("#")) {
                links.setLocalHyperlink(node, uri.toString().substring(1));
            } else
                links.setHyperLink(uri);
            Controller.getCurrentModeController().getMapController().nodeChanged(node, NodeLinks.HYPERLINK_CHANGED, oldlink, uri);
        }

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

        public void undo() {
            final NodeLinks links = NodeLinks.getLinkExtension(node);
            URI undoneLink = links.getHyperLink(node);
            links.setLocalHyperlink(node, oldTargetID);
            links.setHyperLink(oldlink);
            Controller.getCurrentModeController().getMapController().nodeChanged(node, NodeLinks.HYPERLINK_CHANGED, undoneLink, oldlink);
        }
    };
    Controller.getCurrentModeController().execute(actor, node.getMap());
}
Also used : NodeLinks(org.freeplane.features.link.NodeLinks) IActor(org.freeplane.core.undo.IActor) URI(java.net.URI)

Example 3 with NodeLinks

use of org.freeplane.features.link.NodeLinks in project freeplane by freeplane.

the class MLinkController method removeArrowLink.

public void removeArrowLink(final ConnectorModel arrowLink) {
    final IActor actor = new IActor() {

        public void act() {
            final NodeModel source = arrowLink.getSource();
            final NodeLinks nodeLinks = NodeLinks.getLinkExtension(source);
            nodeLinks.removeArrowlink(arrowLink);
            fireNodeConnectorChange(source, arrowLink);
        }

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

        public void undo() {
            final NodeModel source = arrowLink.getSource();
            NodeLinks nodeLinks = NodeLinks.createLinkExtension(source);
            nodeLinks.addArrowlink(arrowLink);
            fireNodeConnectorChange(source, arrowLink);
        }
    };
    Controller.getCurrentModeController().execute(actor, arrowLink.getSource().getMap());
}
Also used : NodeModel(org.freeplane.features.map.NodeModel) NodeLinks(org.freeplane.features.link.NodeLinks) IActor(org.freeplane.core.undo.IActor)

Aggregations

IActor (org.freeplane.core.undo.IActor)3 NodeLinks (org.freeplane.features.link.NodeLinks)3 URI (java.net.URI)1 NodeModel (org.freeplane.features.map.NodeModel)1