Source of ClassDiagramGraph.java


  1: import java.awt.geom.*;

  3: /**
  4:    A UML class diagram.
  5: */
  6: public class ClassDiagramGraph extends Graph
  7: {

  9:    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:    }

 17:    public Node[] getNodePrototypes()
 18:    {
 19:       return new Node[] { new ClassNode() };
 20:    }

 22:    public Edge[] getEdgePrototypes()
 23:    {
 24:       ClassRelationshipEdge[] e = new ClassRelationshipEdge[6];

 26:       e[0] = new ClassRelationshipEdge();
 27:       e[0].setLineStyle(LineStyle.DOTTED);
 28:       e[0].setEndArrowHead(ArrowHead.V);

 30:       e[1] = new ClassRelationshipEdge();
 31:       e[1].setBentStyle(BentStyle.VHV);
 32:       e[1].setEndArrowHead(ArrowHead.TRIANGLE);

 34:       e[2] = new ClassRelationshipEdge();
 35:       e[2].setBentStyle(BentStyle.VHV);
 36:       e[2].setLineStyle(LineStyle.DOTTED);
 37:       e[2].setEndArrowHead(ArrowHead.TRIANGLE);

 39:       e[3] = new ClassRelationshipEdge();
 40:       e[3].setBentStyle(BentStyle.HVH);
 41:       e[3].setEndArrowHead(ArrowHead.V);

 43:       e[4] = new ClassRelationshipEdge();
 44:       e[4].setBentStyle(BentStyle.HVH);
 45:       e[4].setStartArrowHead(ArrowHead.DIAMOND);

 47:       e[5] = new ClassRelationshipEdge();
 48:       e[5].setBentStyle(BentStyle.HVH);
 49:       e[5].setStartArrowHead(ArrowHead.BLACK_DIAMOND);

 51:       return e;
 52:   }
 53: }