1 package org.simantics.modeling;
\r
3 import java.util.UUID;
\r
5 import org.simantics.Simantics;
\r
6 import org.simantics.databoard.Bindings;
\r
7 import org.simantics.db.Resource;
\r
8 import org.simantics.db.Session;
\r
9 import org.simantics.db.WriteGraph;
\r
10 import org.simantics.db.common.request.WriteRequest;
\r
11 import org.simantics.db.exception.DatabaseException;
\r
12 import org.simantics.db.layer0.util.Layer0Utils;
\r
13 import org.simantics.db.service.VirtualGraphSupport;
\r
14 import org.simantics.layer0.Layer0;
\r
15 import org.simantics.project.exception.ProjectException;
\r
16 import org.simantics.project.features.AbstractProjectFeature;
\r
18 public class ProjectSCLFeature extends AbstractProjectFeature {
\r
21 public void configure() throws ProjectException {
\r
25 final Session session = getSession();
\r
26 final VirtualGraphSupport support = session.getService(VirtualGraphSupport.class);
\r
27 support.getWorkspacePersistent("documentation");
\r
29 Simantics.getSession().syncRequest(new WriteRequest() {
\r
32 public void perform(WriteGraph graph) throws DatabaseException {
\r
34 Resource project = Simantics.getProjectResource();
\r
35 Resource commandSession = Layer0Utils.getPossibleChild(graph, project, "__scl__");
\r
36 if(commandSession == null) {
\r
37 Layer0 L0 = Layer0.getInstance(graph);
\r
38 ModelingResources MOD = ModelingResources.getInstance(graph);
\r
39 commandSession = graph.newResource();
\r
40 graph.claim(commandSession, L0.InstanceOf, MOD.SCLCommandSession);
\r
41 graph.claimLiteral(commandSession, L0.HasName, L0.NameOf, L0.String, "__scl__", Bindings.STRING);
\r
42 graph.claim(project, L0.ConsistsOf, commandSession);
\r
49 } catch (DatabaseException e) {
\r
51 throw new ProjectException(e);
\r
58 public void deconfigure() throws ProjectException {
\r