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.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.edit.parts.PrimitiveType2EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PrimitiveType3EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PrimitiveTypeEditPart;
import org.eclipse.uml2.diagram.clazz.part.UMLPaletteFactory;
import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry;
public class PalettePrimitiveTypeNodeTest extends ClassDiagramCreationToolTest {
PaletteRoot myRoot = new PaletteRoot();
@Override
protected void setUp() throws Exception {
super.setUp();
new UMLPaletteFactory().fillPalette(myRoot);
}
public PalettePrimitiveTypeNodeTest(String name) {
super(name);
}
/**
* @generated
*/
public void testPrimitiveTypeOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
ToolEntry tool23 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(4);
createNodeByTool(tool23.createTool(), 200, 100);
IGraphicalEditPart editPart32 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(PrimitiveType2EditPart.VISUAL_ID));
assertNotNull(editPart32);
assertEquals("PrimitiveType", getMetaclassName(editPart32));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testPrimitiveTypeInFramePackage() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Package_2016"), 200, 100);
IGraphicalEditPart editPart33 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameEditPart.VISUAL_ID));
assertNotNull(editPart33);
assertEquals("Package", getMetaclassName(editPart33));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment13 = editPart33.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameContentsEditPart.VISUAL_ID));
assertNotNull(compartment13);
ToolEntry tool24 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(4);
//its impossible to create at (200, 100) -- see #249665
Rectangle bounds = editPart33.getFigure().getBounds();
createNodeByTool(tool24.createTool(), bounds.getCenter().x, bounds.getCenter().y);
IGraphicalEditPart editPart34 = compartment13.getChildBySemanticHint(UMLVisualIDRegistry.getType(PrimitiveType3EditPart.VISUAL_ID));
assertNotNull(editPart34);
assertEquals("PrimitiveType", getMetaclassName(editPart34));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testPrimitiveTypeInPackage() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Package_2002"), 200, 100);
IGraphicalEditPart editPart35 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Package2EditPart.VISUAL_ID));
assertNotNull(editPart35);
assertEquals("Package", getMetaclassName(editPart35));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment14 = editPart35.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageClassifiersEditPart.VISUAL_ID));
assertNotNull(compartment14);
ToolEntry tool25 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(4);
createNodeByTool(tool25.createTool(), 200, 100);
IGraphicalEditPart editPart36 = compartment14.getChildBySemanticHint(UMLVisualIDRegistry.getType(PrimitiveTypeEditPart.VISUAL_ID));
assertNotNull(editPart36);
assertEquals("PrimitiveType", getMetaclassName(editPart36));
getDiagramEditPart().getViewer().flush();
}
private static java.lang.String getMetaclassName(IGraphicalEditPart editPart) {
return editPart.getNotationView().getElement().eClass().getName();
}
}