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.Class2EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Class3EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Class4EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Class5EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.ClassClassesEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.Interface2EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.InterfaceClassesEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageAsFrameContentsEditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageAsFrameEditPart;
import org.eclipse.uml2.diagram.clazz.part.UMLPaletteFactory;
import org.eclipse.uml2.diagram.clazz.part.UMLVisualIDRegistry;
public class PaletteClassNodeTest extends ClassDiagramCreationToolTest {
PaletteRoot myRoot = new PaletteRoot();
@Override
protected void setUp() throws Exception {
super.setUp();
new UMLPaletteFactory().fillPalette(myRoot);
}
public PaletteClassNodeTest(String name) {
super(name);
}
/**
* @generated
*/
public void testClassOnDiagram() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
ToolEntry tool6 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0);
createNodeByTool(tool6.createTool(), 200, 100);
IGraphicalEditPart editPart7 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class2EditPart.VISUAL_ID));
assertNotNull(editPart7);
assertEquals("Class", getMetaclassName(editPart7));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testClassInClass() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
ToolEntry tool7 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0);
createNodeByTool(tool7.createTool(), 200, 100);
IGraphicalEditPart editPart8 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class2EditPart.VISUAL_ID));
assertNotNull(editPart8);
assertEquals("Class", getMetaclassName(editPart8));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment4 = editPart8.getChildBySemanticHint(UMLVisualIDRegistry.getType(ClassClassesEditPart.VISUAL_ID));
assertNotNull(compartment4);
ToolEntry tool8 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0);
createNodeByTool(tool8.createTool(), 200, 100);
IGraphicalEditPart editPart9 = compartment4.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class3EditPart.VISUAL_ID));
assertNotNull(editPart9);
assertEquals("Class", getMetaclassName(editPart9));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testClassInInterface() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Interface_2013"), 200, 100);
IGraphicalEditPart editPart10 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(Interface2EditPart.VISUAL_ID));
assertNotNull(editPart10);
assertEquals("Interface", getMetaclassName(editPart10));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment5 = editPart10.getChildBySemanticHint(UMLVisualIDRegistry.getType(InterfaceClassesEditPart.VISUAL_ID));
assertNotNull(compartment5);
ToolEntry tool9 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0);
createNodeByTool(tool9.createTool(), 200, 100);
IGraphicalEditPart editPart11 = compartment5.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class4EditPart.VISUAL_ID));
assertNotNull(editPart11);
assertEquals("Class", getMetaclassName(editPart11));
getDiagramEditPart().getViewer().flush();
}
/**
* @generated
*/
public void testClassInFramePackage() {
IGraphicalEditPart diagramEditPart = getDiagramEditPart();
createNodeByTool(ElementTypeRegistry.getInstance().getType("org.eclipse.uml2.diagram.clazz.Package_2016"), 200, 100);
IGraphicalEditPart editPart12 = diagramEditPart.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameEditPart.VISUAL_ID));
assertNotNull(editPart12);
assertEquals("Package", getMetaclassName(editPart12));
getDiagramEditPart().getViewer().flush();
IGraphicalEditPart compartment6 = editPart12.getChildBySemanticHint(UMLVisualIDRegistry.getType(PackageAsFrameContentsEditPart.VISUAL_ID));
assertNotNull(compartment6);
ToolEntry tool10 = (ToolEntry) ((PaletteContainer) myRoot.getChildren().get(0)).getChildren().get(0);
//its impossible to create at (200, 100) -- see #249665
Rectangle bounds = editPart12.getFigure().getBounds();
createNodeByTool(tool10.createTool(), bounds.getCenter().x, bounds.getCenter().y);
IGraphicalEditPart editPart13 = compartment6.getChildBySemanticHint(UMLVisualIDRegistry.getType(Class5EditPart.VISUAL_ID));
assertNotNull(editPart13);
assertEquals("Class", getMetaclassName(editPart13));
getDiagramEditPart().getViewer().flush();
}
private static java.lang.String getMetaclassName(IGraphicalEditPart editPart) {
return editPart.getNotationView().getElement().eClass().getName();
}
}