package org.eclipse.uml2.diagram.clazz.tests.tool;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
import org.eclipse.uml2.diagram.clazz.edit.parts.DataType2EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.DataType3EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.DataTypeEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Package2EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageAsFrameContentsEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageAsFrameEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageClassifiersEditPart;
import org.eclipse.uml2.diagram.clazz.part.UMLPaletteFactory;
import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry;
public class PaletteDataTypeNodeTest extends ClassDiagramCreationToolTest {
PaletteRoot myRoot = new PaletteRoot();
@Override
protected void setUp() throws Exception {
super.setUp();
new UMLPaletteFactory().fillPalette(myRoot);
}
public PaletteDataTypeNodeTest(String name) {
super(name);
}
/**
* @generated
*/
public void testDataTypeOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
ToolEntry tool20 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(3);
createNodeByTool(tool20.createTool(), 200, 100);
IGraphicalEditPart editPart27 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(DataType2EditPart.VISUAL_ID));
assertNotNull(editPart27);
assertEquals("DataType", getMetaclassName(editPart27));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testDataTypeInFramePackage() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Package_2016"), 200, 100);
IGraphicalEditPart editPart28 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameEditPart.VISUAL_ID));
assertNotNull(editPart28);
assertEquals("Package", getMetaclassName(editPart28));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment11 = editPart28.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameContentsEditPart.VISUAL_ID));
assertNotNull(compartment11);
ToolEntry tool21 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(3);
//its impossible to create at (200, 100) -- see #249665
Rectangle bounds = editPart28.getFigure().getBounds();
createNodeByTool(tool21.createTool(), bounds.getCenter().x, bounds.getCenter().y);
IGraphicalEditPart editPart29 = compartment11.getChildBySemanticHint(UMLVisualIDRegistry.getType(DataType3EditPart.VISUAL_ID));
assertNotNull(editPart29);
assertEquals("DataType", getMetaclassName(editPart29));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testDataTypeInPackage() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Package_2002"), 200, 100);
IGraphicalEditPart editPart30 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Package2EditPart.VISUAL_ID));
assertNotNull(editPart30);
assertEquals("Package", getMetaclassName(editPart30));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment12 = editPart30.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageClassifiersEditPart.VISUAL_ID));
assertNotNull(compartment12);
ToolEntry tool22 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(3);
createNodeByTool(tool22.createTool(), 200, 100);
IGraphicalEditPart editPart31 = compartment12.getChildBySemanticHint(UMLVisualIDRegistry.getType(DataTypeEditPart.VISUAL_ID));
assertNotNull(editPart31);
assertEquals("DataType", getMetaclassName(editPart31));
getDiagramEditPart().getViewer().flush();
}
private static java.lang.String getMetaclassName(IGraphicalEditPart editPart) {
return editPart.getNotationView().getElement().eClass().getName();
}
}