]> gerrit.simantics Code Review - simantics/3d.git/blob - org.simantics.g3d.csg/src/org/simantics/g3d/csg/handler/NewCSGModelHandler.java
668f7bfc61024e06d11fba913d60b962baec5806
[simantics/3d.git] / org.simantics.g3d.csg / src / org / simantics / g3d / csg / handler / NewCSGModelHandler.java
1 package org.simantics.g3d.csg.handler;
2
3 import org.eclipse.core.commands.AbstractHandler;
4 import org.eclipse.core.commands.ExecutionEvent;
5 import org.eclipse.core.commands.ExecutionException;
6 import org.simantics.Simantics;
7 import org.simantics.db.Resource;
8 import org.simantics.db.WriteGraph;
9 import org.simantics.db.common.request.WriteRequest;
10 import org.simantics.db.common.utils.NameUtils;
11 import org.simantics.db.exception.DatabaseException;
12 import org.simantics.g3d.csg.model.ModelUtil;
13 import org.simantics.layer0.Layer0;
14
15 public class NewCSGModelHandler extends AbstractHandler {
16         
17         private final String defaultName = "CSG Model";
18         
19         
20         @Override
21         public Object execute(ExecutionEvent event) throws ExecutionException {
22                 final Resource library = Simantics.getProject().get();
23
24                 Simantics.getSession().asyncRequest(new WriteRequest() {
25                         
26                         @Override
27                         public void perform(WriteGraph graph) throws DatabaseException {
28                                 Layer0 l0 = Layer0.getInstance(graph);
29                                 
30                                 String name = NameUtils.findFreshName(graph, defaultName, library, l0.ConsistsOf, "%s%d");
31                                 
32                                 Resource model = ModelUtil.createCSGModel(graph, name);
33                                 graph.claim(library, l0.ConsistsOf, model);
34                                 
35                         }
36                 });
37                 return null;
38         }
39
40 }