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());
}
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());
}
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());
}