1
/*FreeMind - A Program for creating and viewing Mindmaps
2
*Copyright (C) 2000-2005 Joerg Mueller, Daniel Polansky, Christian Foltin and others.
4
*See COPYING for Details
6
*This program is free software; you can redistribute it and/or
7
*modify it under the terms of the GNU General Public License
8
*as published by the Free Software Foundation; either version 2
9
*of the License, or (at your option) any later version.
11
*This program is distributed in the hope that it will be useful,
12
*but WITHOUT ANY WARRANTY; without even the implied warranty of
13
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
*GNU General Public License for more details.
16
*You should have received a copy of the GNU General Public License
17
*along with this program; if not, write to the Free Software
18
*Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
* Created on 09.01.2005
22
/* $Id: ChangeArrowLinkEndPoints.java,v 1.1.2.2.2.2 2006/07/25 20:28:21 christianfoltin Exp $ */
23
package freemind.modes.mindmapmode.actions;
25
import java.awt.Point;
26
import java.awt.event.ActionEvent;
28
import freemind.controller.actions.generated.instance.ArrowLinkPointXmlAction;
29
import freemind.controller.actions.generated.instance.XmlAction;
30
import freemind.main.Tools;
31
import freemind.modes.MindMapArrowLink;
32
import freemind.modes.MindMapLinkRegistry;
33
import freemind.modes.mindmapmode.MindMapController;
34
import freemind.modes.mindmapmode.actions.xml.ActionPair;
35
import freemind.modes.mindmapmode.actions.xml.ActorXml;
41
public class ChangeArrowLinkEndPoints extends FreemindAction implements ActorXml {
42
private MindMapController controller;
44
public ChangeArrowLinkEndPoints(MindMapController modeController) {
46
super("change_link_arrows", "images/designer.png", modeController);
47
this.controller = modeController;
51
public void setArrowLinkEndPoints(MindMapArrowLink link, Point startPoint,
53
controller.getActionFactory().startTransaction(
54
(String) getValue(NAME));
55
controller.getActionFactory().executeAction(
56
getActionPair(link, startPoint, endPoint));
57
controller.getActionFactory().endTransaction(
58
(String) getValue(NAME));
64
private ActionPair getActionPair(MindMapArrowLink link, Point startPoint, Point endPoint) {
65
return new ActionPair(createArrowLinkPointXmlAction(link, startPoint, endPoint),
66
createArrowLinkPointXmlAction(link, link.getStartInclination(), link.getEndInclination()));
70
* @see freemind.controller.actions.ActorXml#act(freemind.controller.actions.generated.instance.XmlAction)
72
public void act(XmlAction action) {
73
if (action instanceof ArrowLinkPointXmlAction) {
74
ArrowLinkPointXmlAction pointAction = (ArrowLinkPointXmlAction) action;
75
MindMapArrowLink link = (MindMapArrowLink) getLinkRegistry().getLinkForID(pointAction.getId());
76
link.setStartInclination(Tools.xmlToPoint(pointAction.getStartPoint()));
77
link.setEndInclination(Tools.xmlToPoint(pointAction.getEndPoint()));
78
controller.nodeChanged(link.getSource());
79
controller.nodeChanged(link.getTarget());
85
* @see freemind.controller.actions.ActorXml#getDoActionClass()
87
public Class getDoActionClass() {
88
return ArrowLinkPointXmlAction.class;
92
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
94
public void actionPerformed(ActionEvent arg0) {
95
// TODO Auto-generated method stub
98
private ArrowLinkPointXmlAction createArrowLinkPointXmlAction(MindMapArrowLink arrowLink,
99
Point startPoint, Point endPoint){
100
ArrowLinkPointXmlAction action = new ArrowLinkPointXmlAction();
101
action.setStartPoint(Tools.PointToXml(startPoint));
102
action.setEndPoint(Tools.PointToXml(endPoint));
103
action.setId(arrowLink.getUniqueID());
108
private MindMapLinkRegistry getLinkRegistry() {
109
return controller.getMap().getLinkRegistry();