package org.eclipse.uml2.diagram.clazz.tests.wholediagram;
import java.net.URL;
import java.util.Collections;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.uml2.diagram.clazz.edit.parts.Package4EditPart;
import org.eclipse.uml2.diagram.clazz.edit.parts.PackageEditPart;
import org.eclipse.uml2.diagram.clazz.part.UMLDiagramEditor;
import org.eclipse.uml2.diagram.clazz.part.UMLDiagramEditorPlugin;
import org.eclipse.uml2.diagram.common.wholediagram.TestWholeDiagram;
import org.eclipse.uml2.diagram.common.wholediagram.UMLInitDiagramFacade;
import org.eclipse.uml2.diagram.common.wholediagram.DiagramCompareSession.ViewFilter;
import org.osgi.framework.Bundle;
public class TestWholeClassDiagram extends TestWholeDiagram {
public TestWholeClassDiagram(String modelFileName, String diagramFileName) {
super(modelFileName, diagramFileName);
}
@Override
protected UMLInitDiagramFacade getInitDiagramFacade(IFile modelFile, IFile diagramFile) {
return new UMLInitDiagramFacade(modelFile, diagramFile, UMLDiagramEditor.ID) {
@Override
protected Diagram createDiagramView(EObject modelRoot) {
return ViewService.createDiagram(modelRoot, PackageEditPart.MODEL_ID, UMLDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
}
};
}
@Override
protected URL findFileInTestPlugin(String fileName) {
return FileLocator.find(UML_TEST_BUNDLE, new Path(EXAMPLE_FOLDER).append(fileName), Collections.EMPTY_MAP);
}
@Override
protected ViewFilter createViewFilter() {
return IGNORE_NOTES_LABELS_AND_HEADER;
}
private final static Bundle UML_TEST_BUNDLE = Platform.getBundle("org.eclipse.uml2.diagram.clazz.tests");
private final static String EXAMPLE_FOLDER = "examples/";
private static final ByViewTypeFilter IGNORE_NOTES_LABELS_AND_HEADER = new ByViewTypeFilter(){
@Override
protected boolean ignoreVisualId(int visualId) {
return super.ignoreVisualId(visualId) || Package4EditPart.VISUAL_ID == visualId;
}
};
}