1
28 package demo.view.entityrelationship;
29
30 import demo.view.entityrelationship.painters.ErdRealizerFactory;
31 import demo.view.flowchart.FlowchartPalette;
32 import y.view.Arrow;
33 import y.view.EdgeRealizer;
34 import y.view.GenericNodeRealizer;
35 import y.view.Graph2D;
36 import y.view.Graph2DView;
37 import y.view.NodeRealizer;
38
39 import java.util.HashMap;
40 import java.util.List;
41 import java.util.Map;
42
43
47 public class EntityRelationshipPalette extends FlowchartPalette {
48
49 private Map arrowNames;
50 private Map nodeNames;
51
52
57 public EntityRelationshipPalette(final Graph2DView view) {
58 super(view);
59
60 arrowNames = new HashMap();
61 arrowNames.put(Arrow.NONE, "Unspecified");
62 arrowNames.put(Arrow.CROWS_FOOT_ONE, "(1)");
63 arrowNames.put(Arrow.CROWS_FOOT_MANY, "(N)");
64 arrowNames.put(Arrow.CROWS_FOOT_ONE_OPTIONAL, "(0,1)");
65 arrowNames.put(Arrow.CROWS_FOOT_ONE_MANDATORY, "(1,1)");
66 arrowNames.put(Arrow.CROWS_FOOT_MANY_OPTIONAL, "(0,N)");
67 arrowNames.put(Arrow.CROWS_FOOT_MANY_MANDATORY, "(1,N)");
68 }
69
70
74 protected void initializeDefaultRealizers(Graph2DView view) {
75 Graph2D graph2D = view.getGraph2D();
76 graph2D.setDefaultNodeRealizer(ErdRealizerFactory.createBigEntity());
77 graph2D.setDefaultEdgeRealizer(ErdRealizerFactory.createRelation(Arrow.NONE));
78 }
79
80
84 protected void addDefaultTemplates(final List realizers) {
85
86 final NodeRealizer bigEntity = ErdRealizerFactory.createBigEntity();
88 final GenericNodeRealizer smallEntity = ErdRealizerFactory.createSmallEntity("Entity Name");
89 final GenericNodeRealizer weakSmallEntity = ErdRealizerFactory.createWeakSmallEntity("Entity Name");
90 final GenericNodeRealizer attribute = ErdRealizerFactory.createAttribute("Attribute");
91 final GenericNodeRealizer multiValuedAttribute = ErdRealizerFactory.createMultiValuedAttribute("Attribute");
92 final GenericNodeRealizer primaryKeyAttribute = ErdRealizerFactory.createPrimaryKeyAttribute("Attribute");
93 final GenericNodeRealizer derivedAttribute = ErdRealizerFactory.createDerivedAttribute("Attribute");
94 final GenericNodeRealizer relationship = ErdRealizerFactory.createRelationship("Relation");
95 final GenericNodeRealizer weakRelationship = ErdRealizerFactory.createWeakRelationship("Relation");
96
97 realizers.add(bigEntity);
99 realizers.add(smallEntity);
100 realizers.add(weakSmallEntity);
101 realizers.add(attribute);
102 realizers.add(multiValuedAttribute);
103 realizers.add(primaryKeyAttribute);
104 realizers.add(derivedAttribute);
105 realizers.add(relationship);
106 realizers.add(weakRelationship);
107
108 nodeNames = new HashMap();
110 nodeNames.put(bigEntity, "Entity with Attributes");
111 nodeNames.put(smallEntity, "Entity");
112 nodeNames.put(weakSmallEntity, "Weak Entity");
113 nodeNames.put(attribute, "Attribute");
114 nodeNames.put(multiValuedAttribute, "Multi-Valued Attribute");
115 nodeNames.put(primaryKeyAttribute, "Primary Key");
116 nodeNames.put(derivedAttribute, "Derived Attribute");
117 nodeNames.put(relationship, "Relationship");
118 nodeNames.put(weakRelationship, "Weak Relationship");
119
120 realizers.add(ErdRealizerFactory.createRelation(Arrow.NONE));
122 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE));
123 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY));
124 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE_OPTIONAL));
125 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_ONE_MANDATORY));
126 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY_OPTIONAL));
127 realizers.add(ErdRealizerFactory.createRelation(Arrow.CROWS_FOOT_MANY_MANDATORY));
128 }
129
130
136 protected String createEdgeToolTipText(EdgeRealizer realizer){
137 return (String) arrowNames.get(realizer.getSourceArrow());
138 }
139
140
146 protected String createNodeToolTipText(NodeRealizer realizer){
147 return (String) nodeNames.get(realizer);
148 }
149
150 }
151