blob: 6167ace6c59420e512719fcef6e0125db42033f7 [file] [log] [blame]
package org.eclipse.emf.ecoretools.tests.diagram.ui.core.fixture;
import java.net.URL;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
public abstract class AbstractExistingDiagramTestFixture extends AbstractDiagramTestFixture {
private EObject rootModelEObject;
private Resource modelResource;
/**
* create the project
*/
protected void createProject() throws Exception {
IWorkspace workspace = null;
String aProjectName = getProjectName(); //$NON-NLS-1$
workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot wsroot = workspace.getRoot();
IProject project = wsroot.getProject(aProjectName);
IProjectDescription desc = workspace.newProjectDescription(project.getName());
IPath locationPath = Platform.getLocation();
locationPath = null;
desc.setLocation(locationPath);
if (!project.exists())
project.create(desc, null);
if (!project.isOpen())
project.open(null);
setProject(project);
}
/**
* create a diagramFile then open it
*/
protected void createDiagram() throws Exception {
URL modelFileURL = getSourceModelURL();
IFile modelIFile = getProject().getFile(getModelFileName());
modelIFile.create(modelFileURL.openStream(), true, new NullProgressMonitor());
URL diagramFileURL = getSourceDiagramURL();
IFile diagramIFile = getProject().getFile(getDiagramFileName());
diagramIFile.create(diagramFileURL.openStream(), true, new NullProgressMonitor());
setDiagramFile(diagramIFile);
openDiagram();
rootModelEObject = getDiagramEditPart().resolveSemanticElement();
modelResource = rootModelEObject.eResource();
}
public abstract String getModelFileName();
public abstract String getDiagramFileName();
protected abstract URL getSourceDiagramURL();
protected abstract URL getSourceModelURL();
public PreferencesHint getPreferencesHint() {
return PreferencesHint.USE_DEFAULTS;
}
public EObject getRootModelEObject() {
return rootModelEObject;
}
public Resource getModelResource() {
return modelResource;
}
public abstract String getProjectName();
@Override
protected void createShapesAndConnectors() throws Exception {
// nothing to do;
}
}