1
14 package demo.view.entityrelationship;
15
16 import demo.view.entityrelationship.painters.ErdRealizerFactory;
17 import demo.view.flowchart.FlowchartPalette;
18 import y.view.Arrow;
19 import y.view.EdgeRealizer;
20 import y.view.GenericNodeRealizer;
21 import y.view.Graph2D;
22 import y.view.Graph2DView;
23 import y.view.NodeRealizer;
24
25 import java.util.HashMap;
26 import java.util.List;
27 import java.util.Map;
28
29
33 public class EntityRelationshipPalette extends FlowchartPalette {
34
35 private Map arrowNames;
36 private Map nodeNames;
37
38
43 public EntityRelationshipPalette(final Graph2DView view) {
44 super(view);
45
46 arrowNames = new HashMap();
47 arrowNames.put(Arrow.NONE, "Unspecified");
48 arrowNames.put(Arrow.CROWS_FOOT_ONE, "(1)");
49 arrowNames.put(Arrow.CROWS_FOOT_MANY, "(N)");
50 arrowNames.put(Arrow.CROWS_FOOT_ONE_OPTIONAL, "(0,1)");
51 arrowNames.put(Arrow.CROWS_FOOT_ONE_MANDATORY, "(1,1)");
52 arrowNames.put(Arrow.CROWS_FOOT_MANY_OPTIONAL, "(0,N)");
53 arrowNames.put(Arrow.CROWS_FOOT_MANY_MANDATORY, "(1,N)");
54 }
55
56
60 protected void initializeDefaultRealizers(Graph2DView view) {
61 Graph2D graph2D = view.getGraph2D();
62 graph2D.setDefaultNodeRealizer(ErdRealizerFactory.createBigEntity());
63 graph2D.setDefaultEdgeRealizer(ErdRealizerFactory.createRelation(Arrow.NONE));
64 }
65
66
70 protected void addDefaultTemplates(final List realizers) {
71
72 final NodeRealizer bigEntity = ErdRealizerFactory.createBigEntity();
74 final GenericNodeRealizer smallEntity = ErdRealizerFactory.createSmallEntity("Entity Name");
75 final GenericNodeRealizer weakSmallEntity = ErdRealizerFactory.createWeakSmallEntity("Entity Name");
76 final GenericNodeRealizer attribute = ErdRealizerFactory.createAttribute("Attribute");
77 final GenericNodeRealizer multiValuedAttribute = ErdRealizerFactory.createMultiValuedAttribute("Attribute");
78 final GenericNodeRealizer primaryKeyAttribute = ErdRealizerFactory.createPrimaryKeyAttribute("Attribute");
79 final GenericNodeRealizer derivedAttribute = ErdRealizerFactory.createDerivedAttribute("Attribute");
80 final GenericNodeRealizer relationship = ErdRealizerFactory.createRelationship("Relation");
81 final GenericNodeRealizer weakRelationship = ErdRealizerFactory.createWeakRelationship("Relation");
82
83 realizers.add(bigEntity);
85 realizers.add(smallEntity);
86 realizers.add(weakSmallEntity);
87 realizers.add(attribute);
88 realizers.add(multiValuedAttribute);
89 realizers.add(primaryKeyAttribute);
90 realizers.add(derivedAttribute);
91 realizers.add(relationship);
92 realizers.add(weakRelationship);
93
94 nodeNames = new HashMap();
96 nodeNames.put(bigEntity, "Entity with Attributes");
97 nodeNames.put(smallEntity, "Entity");
98 nodeNames.put(weakSmallEntity, "Weak Entity");
99 nodeNames.put(attribute, "Attribute");
100 nodeNames.put(multiValuedAttribute, "Multi-Valued Attribute");
101 nodeNames.put(primaryKeyAttribute, "Primary Key");
102 nodeNames.put(derivedAttribute, "Derived Attribute");
103 nodeNames.put(relationship, "Relationship");
104 nodeNames.put(weakRelationship, "Weak Relationship");
105
106 realizers.add(ErdRealizerFactory.createRelation(Arrow.NONE));
108 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE));
109 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY));
110 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE_OPTIONAL));
111 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE_MANDATORY));
112 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY_OPTIONAL));
113 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY_MANDATORY));
114 }
115
116
122 protected String createEdgeToolTipText(EdgeRealizer realizer){
123 return (String) arrowNames.get(realizer.getSourceArrow());
124 }
125
126
132 protected String createNodeToolTipText(NodeRealizer realizer){
133 return (String) nodeNames.get(realizer);
134 }
135
136 }
137