01: import java.awt.geom.*;
02:
03: /**
04: A UML class diagram.
05: */
06: public class ClassDiagramGraph extends Graph
07: {
08:
09: public boolean connect(Edge e, Point2D p1, Point2D p2)
10: {
11: Node n1 = findNode(p1);
12: Node n2 = findNode(p2);
13: if (n1 == n2) return false;
14: return super.connect(e, p1, p2);
15: }
16:
17: public Node[] getNodePrototypes()
18: {
19: return new Node[] { new ClassNode() };
20: }
21:
22: public Edge[] getEdgePrototypes()
23: {
24: ClassRelationshipEdge[] e = new ClassRelationshipEdge[6];
25:
26: e[0] = new ClassRelationshipEdge();
27: e[0].setLineStyle(LineStyle.DOTTED);
28: e[0].setEndArrowHead(ArrowHead.V);
29:
30: e[1] = new ClassRelationshipEdge();
31: e[1].setBentStyle(BentStyle.VHV);
32: e[1].setEndArrowHead(ArrowHead.TRIANGLE);
33:
34: e[2] = new ClassRelationshipEdge();
35: e[2].setBentStyle(BentStyle.VHV);
36: e[2].setLineStyle(LineStyle.DOTTED);
37: e[2].setEndArrowHead(ArrowHead.TRIANGLE);
38:
39: e[3] = new ClassRelationshipEdge();
40: e[3].setBentStyle(BentStyle.HVH);
41: e[3].setEndArrowHead(ArrowHead.V);
42:
43: e[4] = new ClassRelationshipEdge();
44: e[4].setBentStyle(BentStyle.HVH);
45: e[4].setStartArrowHead(ArrowHead.DIAMOND);
46:
47: e[5] = new ClassRelationshipEdge();
48: e[5].setBentStyle(BentStyle.HVH);
49: e[5].setStartArrowHead(ArrowHead.BLACK_DIAMOND);
50:
51: return e;
52: }
53: }
54:
55:
56:
57:
58: