Skip to content
Snippets Groups Projects
Commit d67f99c5 authored by Fabian Wiesner's avatar Fabian Wiesner
Browse files

Added ModelServiceCHILD

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@10728 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent e63088a5
No related branches found
No related tags found
No related merge requests found
Do it
\ No newline at end of file
package edu.kit.ipd.descartes.mm.applicationlevel.repository.compositediagram.diagram;
import java.io.IOException;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.graphiti.dt.IDiagramTypeProvider;
import org.eclipse.graphiti.mm.pictograms.Diagram;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.Repository;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryFactory;
/**
* @author Katharina
*
*/
public class CompositediagramModelServiceCHILD extends CompositediagramModelService {
protected CompositediagramModelServiceCHILD(IDiagramTypeProvider dtp) {
super(dtp);
// TODO Auto-generated constructor stub
}
/**
* Creates the domain model element and store it in the file. Overwrite to set required properties on creation.
*/
public Repository createModel(Repository model, URI modelURI) {
final Diagram diagram = dtp.getDiagram();
try {
createModelResourceAndAddModel(model, modelURI);
peService.setPropertyValue(diagram, PROPERTY_URI, EcoreUtil.getURI(model).toString());
// link the diagram with the model element
dtp.getFeatureProvider().link(diagram, model);
return model;
} catch (CoreException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
protected void createModelResourceAndAddModel(final Repository model, final URI modelURI) throws CoreException, IOException {
final Diagram diagram = dtp.getDiagram();
URI uri = modelURI;//TODO: vorher diagram URI
uri = uri.trimFragment();
uri = uri.trimFileExtension();
uri = uri.appendFileExtension(FILE_EXTENSION);
ResourceSet rSet = diagram.eResource().getResourceSet();
final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IResource file = workspaceRoot.findMember(uri.toPlatformString(true));
if (file == null || !file.exists()) {
Resource resource = rSet.createResource(uri);
resource.setTrackingModification(true);
resource.getContents().add(model);
} else {
final Resource resource = rSet.getResource(uri, true);
resource.getContents().add(model);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment