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 ErrorFlow extends DiagramEdge {
38:
39: public ErrorFlow(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.RED);
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: return portParent instanceof Service
60: && Service.ERROR_PORT.equals(defaultPort
61: .getUserObject());
62: }
63:
64: public boolean acceptsTarget(Object port) {
65: if (port == null) {
66: return false;
67: }
68:
69: DefaultPort defaultPort = (DefaultPort) port;
70: TreeNode portParent = defaultPort.getParent();
71:
72: if (portParent instanceof Stop) {
73: return true;
74: }
75:
76: return portParent instanceof Service
77: && Service.INPUT_PORT.equals(defaultPort
78: .getUserObject());
79: }
80:
81: }
|