Lines 18-27
Link Here
|
18 |
import org.eclipse.emf.common.util.EList; |
18 |
import org.eclipse.emf.common.util.EList; |
19 |
import org.eclipse.emf.ecore.EAttribute; |
19 |
import org.eclipse.emf.ecore.EAttribute; |
20 |
import org.eclipse.emf.ecore.EClass; |
20 |
import org.eclipse.emf.ecore.EClass; |
21 |
import org.eclipse.emf.ecore.EReference; |
|
|
22 |
import org.eclipse.emf.ecore.EStructuralFeature; |
21 |
import org.eclipse.emf.ecore.EStructuralFeature; |
23 |
import org.eclipse.emf.ecore.ETypedElement; |
|
|
24 |
import org.eclipse.emf.ecore.EcoreFactory; |
25 |
import org.eclipse.emf.ecore.EcorePackage; |
22 |
import org.eclipse.emf.ecore.EcorePackage; |
26 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
23 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
27 |
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; |
24 |
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; |
Lines 30-61
Link Here
|
30 |
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; |
27 |
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; |
31 |
import org.eclipse.gmf.codegen.gmfgen.GenNode; |
28 |
import org.eclipse.gmf.codegen.gmfgen.GenNode; |
32 |
import org.eclipse.gmf.codegen.gmfgen.GenPlugin; |
29 |
import org.eclipse.gmf.codegen.gmfgen.GenPlugin; |
33 |
import org.eclipse.gmf.gmfgraph.Canvas; |
|
|
34 |
import org.eclipse.gmf.gmfgraph.Compartment; |
35 |
import org.eclipse.gmf.gmfgraph.Connection; |
36 |
import org.eclipse.gmf.gmfgraph.Figure; |
37 |
import org.eclipse.gmf.gmfgraph.FigureGallery; |
38 |
import org.eclipse.gmf.gmfgraph.GMFGraphFactory; |
39 |
import org.eclipse.gmf.gmfgraph.Node; |
40 |
import org.eclipse.gmf.internal.codegen.GMFGenConfig; |
30 |
import org.eclipse.gmf.internal.codegen.GMFGenConfig; |
41 |
import org.eclipse.gmf.internal.common.reconcile.DefaultDecisionMaker; |
31 |
import org.eclipse.gmf.internal.common.reconcile.DefaultDecisionMaker; |
42 |
import org.eclipse.gmf.internal.common.reconcile.Reconciler; |
32 |
import org.eclipse.gmf.internal.common.reconcile.Reconciler; |
43 |
import org.eclipse.gmf.internal.common.reconcile.ReconcilerConfigBase; |
33 |
import org.eclipse.gmf.internal.common.reconcile.ReconcilerConfigBase; |
44 |
import org.eclipse.gmf.mappings.ChildReference; |
|
|
45 |
import org.eclipse.gmf.mappings.CompartmentMapping; |
46 |
import org.eclipse.gmf.mappings.GMFMapFactory; |
47 |
import org.eclipse.gmf.mappings.NodeMapping; |
48 |
import org.eclipse.gmf.tests.ConfiguredTestCase; |
34 |
import org.eclipse.gmf.tests.ConfiguredTestCase; |
|
|
35 |
import org.eclipse.gmf.tests.setup.CompartmentsSessionSetup; |
49 |
import org.eclipse.gmf.tests.setup.DiaDefSetup; |
36 |
import org.eclipse.gmf.tests.setup.DiaDefSetup; |
50 |
import org.eclipse.gmf.tests.setup.DiaDefSource; |
|
|
51 |
import org.eclipse.gmf.tests.setup.DiaGenSetup; |
37 |
import org.eclipse.gmf.tests.setup.DiaGenSetup; |
52 |
import org.eclipse.gmf.tests.setup.DomainModelSetup; |
|
|
53 |
import org.eclipse.gmf.tests.setup.DomainModelSource; |
54 |
import org.eclipse.gmf.tests.setup.MapDefSource; |
38 |
import org.eclipse.gmf.tests.setup.MapDefSource; |
55 |
import org.eclipse.gmf.tests.setup.MapSetup; |
39 |
import org.eclipse.gmf.tests.setup.MapSetup; |
56 |
import org.eclipse.gmf.tests.setup.ToolDefSetup; |
40 |
import org.eclipse.gmf.tests.setup.ToolDefSetup; |
57 |
import org.eclipse.gmf.tests.setup.ToolDefSource; |
|
|
58 |
import org.eclipse.gmf.tests.setup.DomainModelSource.NodeData; |
59 |
|
41 |
|
60 |
public class CodegenReconcileTest extends ConfiguredTestCase { |
42 |
public class CodegenReconcileTest extends ConfiguredTestCase { |
61 |
|
43 |
|
Lines 67-73
Link Here
|
67 |
|
49 |
|
68 |
protected void setUp() throws Exception { |
50 |
protected void setUp() throws Exception { |
69 |
super.setUp(); |
51 |
super.setUp(); |
70 |
MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup(null).init(), getSetup().getDomainModel(), new ToolDefSetup()); |
52 |
MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup().init(), getSetup().getDomainModel(), new ToolDefSetup()); |
71 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
53 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
72 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
54 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
73 |
} |
55 |
} |
Lines 140-244
Link Here
|
140 |
|
122 |
|
141 |
checkUserChange(new GenPluginChange()); |
123 |
checkUserChange(new GenPluginChange()); |
142 |
} |
124 |
} |
143 |
|
|
|
144 |
|
145 |
public void testReconcileCompartmentIsListlayout(){ |
146 |
class ConfigWithCompartments implements DiaDefSetup.Config { |
147 |
public void setupCanvasDef(Canvas canvasDef) { |
148 |
FigureGallery oneMoreGallery = GMFGraphFactory.eINSTANCE.createFigureGallery(); |
149 |
canvasDef.getFigures().add(oneMoreGallery); |
150 |
Figure compartmentFigure = GMFGraphFactory.eINSTANCE.createRectangle(); |
151 |
oneMoreGallery.getFigures().add(compartmentFigure); |
152 |
Compartment compartment = createCompartment(compartmentFigure, "CompartmentA", true, true); |
153 |
canvasDef.getCompartments().add(compartment); |
154 |
} |
155 |
|
156 |
public void setupLinkDef(Connection linkDef) { |
157 |
// |
158 |
} |
159 |
|
160 |
public void setupNodeDef(Node nodeDef) { |
161 |
// |
162 |
} |
163 |
|
164 |
private Compartment createCompartment(Figure figure, String name, boolean collapsible, boolean needsTitle){ |
165 |
Compartment result = GMFGraphFactory.eINSTANCE.createCompartment(); |
166 |
result.setCollapsible(true); |
167 |
result.setFigure(figure); |
168 |
result.setName(name); |
169 |
result.setNeedsTitle(needsTitle); |
170 |
return result; |
171 |
} |
172 |
} |
173 |
|
174 |
class DiaDefSetupWithCompartments extends DiaDefSetup { |
175 |
public DiaDefSetupWithCompartments(){ |
176 |
super(new ConfigWithCompartments()); |
177 |
} |
178 |
|
179 |
public Compartment getCompartment(){ |
180 |
return (Compartment)getCanvasDef().getCompartments().get(0); |
181 |
} |
182 |
} |
183 |
|
184 |
class DomainSetupWithChildren extends DomainModelSetup { |
185 |
private NodeData myChildOfA; |
186 |
|
187 |
public DomainModelSetup init() { |
188 |
DomainModelSetup result = super.init(); |
189 |
|
190 |
EClass childClass = EcoreFactory.eINSTANCE.createEClass(); |
191 |
childClass.setName("ChildOfA"); |
192 |
EAttribute childLabel = EcoreFactory.eINSTANCE.createEAttribute(); |
193 |
childLabel.setName("childLabel"); |
194 |
childLabel.setEType(EcorePackage.eINSTANCE.getEString()); |
195 |
childClass.getEStructuralFeatures().add(childLabel); |
196 |
result.getModel().getEClassifiers().add(childClass); |
197 |
|
198 |
EReference containment = EcoreFactory.eINSTANCE.createEReference(); |
199 |
containment.setContainment(true); |
200 |
containment.setName("childrenOfA"); |
201 |
containment.setEType(childClass); |
202 |
containment.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY); |
203 |
result.getNodeA().getEClass().getEStructuralFeatures().add(containment); |
204 |
|
205 |
myChildOfA = new NodeData(childClass, childLabel, containment); |
206 |
return result; |
207 |
} |
208 |
|
209 |
public NodeData getChildOfA() { |
210 |
return myChildOfA; |
211 |
} |
212 |
} |
213 |
|
214 |
class MapSetupWithCompartments extends MapSetup { |
215 |
public MapSetup init(DiaDefSource ddSource, DomainModelSource domainSource, ToolDefSource toolDef) { |
216 |
Assert.assertTrue(domainSource instanceof DomainSetupWithChildren); |
217 |
Assert.assertTrue(ddSource instanceof DiaDefSetupWithCompartments); |
218 |
|
219 |
DomainSetupWithChildren domainWithChildren = (DomainSetupWithChildren)domainSource; |
220 |
DiaDefSetupWithCompartments diaDefSetupWithCompartments = (DiaDefSetupWithCompartments)ddSource; |
221 |
Assert.assertNotNull(diaDefSetupWithCompartments.getCompartment()); |
222 |
|
223 |
MapSetup result = super.init(ddSource, domainSource, toolDef); |
224 |
|
225 |
NodeData childOfAData = domainWithChildren.getChildOfA(); |
226 |
NodeMapping childOfAMapping = createNodeMapping(ddSource.getNodeDef(), childOfAData.getEClass(), ddSource.getLabelDef(), childOfAData.getNameAttr(), childOfAData.getContainment(), false); |
227 |
|
228 |
ChildReference childOfAReference = GMFMapFactory.eINSTANCE.createChildReference(); |
229 |
childOfAReference.setOwnedChild(childOfAMapping); |
230 |
childOfAReference.setChildrenFeature(childOfAData.getContainment()); |
231 |
result.getNodeA().getChildren().add(childOfAReference); |
232 |
|
233 |
CompartmentMapping childOfACompartment = GMFMapFactory.eINSTANCE.createCompartmentMapping(); |
234 |
childOfACompartment.setCompartment(diaDefSetupWithCompartments.getCompartment()); |
235 |
childOfACompartment.getChildren().add(childOfAReference); |
236 |
result.getNodeA().getCompartments().add(childOfACompartment); |
237 |
|
238 |
return result; |
239 |
} |
240 |
} |
241 |
|
125 |
|
|
|
126 |
public void testReconcileCompartmentIsListlayout(){ |
242 |
class CompartmentChange extends Assert implements UserChange { |
127 |
class CompartmentChange extends Assert implements UserChange { |
243 |
private int myCompartmentsTotalCount; |
128 |
private int myCompartmentsTotalCount; |
244 |
private final EStructuralFeature myGenCompartmentFeature; |
129 |
private final EStructuralFeature myGenCompartmentFeature; |
Lines 294-306
Link Here
|
294 |
} |
179 |
} |
295 |
} |
180 |
} |
296 |
|
181 |
|
297 |
DiaDefSetupWithCompartments ddSource = new DiaDefSetupWithCompartments(); |
182 |
MapDefSource mapDefSource = CompartmentsSessionSetup.newInstance().getMapModel(); |
298 |
DomainSetupWithChildren domainSetup = new DomainSetupWithChildren(); |
|
|
299 |
MapSetupWithCompartments mapDefSource = new MapSetupWithCompartments(); |
300 |
mapDefSource.init(ddSource.init(), domainSetup.init(), new ToolDefSetup()); |
301 |
|
302 |
assertFalse(mapDefSource.getNodeA().getCompartments().isEmpty()); |
303 |
|
304 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
183 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
305 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
184 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
306 |
|
185 |
|
Lines 320-326
Link Here
|
320 |
} |
199 |
} |
321 |
|
200 |
|
322 |
public void testReconcileGenNodes() throws Exception { |
201 |
public void testReconcileGenNodes() throws Exception { |
323 |
MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup(null).init(), getSetup().getDomainModel(), new ToolDefSetup()); |
202 |
MapDefSource mapDefSource = new MapSetup().init(new DiaDefSetup().init(), getSetup().getDomainModel(), new ToolDefSetup()); |
324 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
203 |
DiaGenSetup diaGenSetup = new DiaGenSetup().init(mapDefSource); |
325 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
204 |
myEditorGen = diaGenSetup.getGenDiagram().getEditorGen(); |
326 |
|
205 |
|