01: /*
02: * Lucane - a collaborative platform
03: * Copyright (C) 2004 Vincent Fiack <vfiack@mail15.com>
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: */
19: package org.lucane.applications.whiteboard.operations.changers;
20:
21: import org.lucane.applications.whiteboard.graph.GraphUtils;
22: import org.lucane.applications.whiteboard.graph.MyGraph;
23:
24: import org.jgraph.graph.*;
25:
26: public class EdgeChanger extends CellChanger {
27: public void change(MyGraph graph, GraphCell toChange,
28: GraphCell source) {
29: super .change(graph, toChange, source);
30:
31: DefaultEdge to = (DefaultEdge) toChange;
32: DefaultEdge from = (DefaultEdge) source;
33:
34: DefaultPort sourcePort = (DefaultPort) from.getSource();
35: DefaultPort targetPort = (DefaultPort) from.getTarget();
36:
37: if (sourcePort == null)
38: to.setSource(null);
39: else {
40: DefaultGraphCell parent = GraphUtils.findCorrespondingCell(
41: graph, (DefaultGraphCell) sourcePort.getParent());
42: sourcePort.setParent(parent);
43: to.setSource(sourcePort);
44: }
45:
46: if (targetPort == null)
47: to.setTarget(null);
48: else {
49: DefaultGraphCell parent = GraphUtils.findCorrespondingCell(
50: graph, (DefaultGraphCell) targetPort.getParent());
51: targetPort.setParent(parent);
52: to.setTarget(targetPort);
53: }
54: }
55: }
|