01: /*
02: * argun 1.0
03: * Web 2.0 delivery framework
04: * Copyright (C) 2007 Hammurapi Group
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2 of the License, or (at your option) any later version.
10: *
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 GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * URL: http://www.hammurapi.biz
21: * e-Mail: support@hammurapi.biz
22: */
23: package biz.hammurapi.web.webdiagram;
24:
25: import java.awt.Color;
26: import java.util.Map;
27:
28: import javax.swing.tree.TreeNode;
29:
30: import org.jgraph.graph.DefaultPort;
31: import org.jgraph.graph.GraphConstants;
32:
33: import biz.hammurapi.diagram.DiagramEdge;
34: import biz.hammurapi.diagram.DiagramModel;
35: import biz.hammurapi.diagram.data.Edge;
36:
37: public class ServiceFlow extends DiagramEdge {
38:
39: public ServiceFlow(DiagramModel owner, Edge data) {
40: super (owner, data);
41: }
42:
43: public void setAttributes(Map attributes) {
44: super .setAttributes(attributes);
45: GraphConstants.setLineEnd(attributes,
46: GraphConstants.ARROW_SIMPLE);
47: GraphConstants.setLineWidth(attributes, 1);
48: GraphConstants.setLineColor(attributes, Color.BLUE);
49: }
50:
51: public boolean acceptsSource(Object port) {
52: if (port == null) {
53: return false;
54: }
55:
56: DefaultPort defaultPort = (DefaultPort) port;
57: TreeNode portParent = defaultPort.getParent();
58:
59: if (portParent instanceof Start) {
60: return true;
61: }
62:
63: return portParent instanceof Service
64: && Service.OUTPUT_PORT.equals(defaultPort
65: .getUserObject());
66: }
67:
68: public boolean acceptsTarget(Object port) {
69: if (port == null) {
70: return false;
71: }
72:
73: DefaultPort defaultPort = (DefaultPort) port;
74: TreeNode portParent = defaultPort.getParent();
75:
76: if (portParent instanceof Stop) {
77: return true;
78: }
79:
80: return portParent instanceof Service
81: && Service.INPUT_PORT.equals(defaultPort
82: .getUserObject());
83: }
84:
85: }
|