1 package com.bonevich.erj.diagram;
2
3 import com.bonevich.erj.model.*;
4
5 import org.tigris.gef.graph.*;
6 import org.tigris.gef.presentation.*;
7 import org.tigris.gef.base.*;
8
9 /*** This class defines the mapping of model elements to their
10 * graphical representation.
11 */
12
13 public class ERDiagramGraphRenderer
14 implements GraphNodeRenderer, GraphEdgeRenderer
15 {
16 /*** Return a Fig that can be used to represent the given node */
17 public FigNode getFigNodeFor(GraphModel gm, Layer lay, Object node)
18 {
19 if (!(node instanceof Relation)) return null;
20 FigNode fig = new FigRelation(gm, node);
21 return fig;
22 }
23
24 /*** Return a Fig that can be used to represent the given edge */
25 public FigEdge getFigEdgeFor(GraphModel gm, Layer lay, Object edge)
26 {
27 if (!(edge instanceof ForeignKey)) return null;
28 if (!(gm instanceof ERDiagramGraphModel)) return null;
29 ERDiagramGraphModel erdgm = (ERDiagramGraphModel) gm;
30 Object srcPort = erdgm.getSourcePort(edge);
31 Object dstPort = erdgm.getDestPort(edge);
32 Object srcNode = erdgm.getOwner(srcPort);
33 Object dstNode = erdgm.getOwner(dstPort);
34 if (srcPort != null && dstPort != null && srcNode != null && dstNode != null &&
35 srcPort instanceof Relation && dstPort instanceof Relation &&
36 srcNode instanceof Relation && dstNode instanceof Relation)
37 {
38 FigNode srcNodeFig = (FigNode)lay.presentationFor(srcNode);
39 FigNode dstNodeFig = (FigNode)lay.presentationFor(dstNode);
40 Fig srcPortFig = srcNodeFig.getPortFig(srcPort);
41 Fig dstPortFig = dstNodeFig.getPortFig(dstPort);
42 FigEdge fig = new FigForeignKey(srcPortFig, dstPortFig, srcNodeFig, dstNodeFig, edge);
43 return fig;
44 } else {
45 return null;
46 }
47 }
48 } /* end class ERDiagramGraphRenderer */
This page was automatically generated by Maven