]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/NewSymbol.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / NewSymbol.java
1 package org.simantics.modeling.ui.actions;\r
2 \r
3 import org.simantics.Simantics;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.WriteGraph;\r
6 import org.simantics.db.common.request.WriteRequest;\r
7 import org.simantics.db.exception.DatabaseException;\r
8 import org.simantics.db.layer0.adapter.ActionFactory;\r
9 import org.simantics.modeling.userComponent.ComponentTypeCommands;\r
10 import org.simantics.utils.ui.ErrorLogger;\r
11 \r
12 /**\r
13  * @author Tuukka Lehtonen\r
14  */\r
15 public class NewSymbol implements ActionFactory {\r
16 \r
17     @Override\r
18     public Runnable create(Object target) {\r
19         if (!(target instanceof Resource))\r
20             return null;\r
21         final Resource componentType = (Resource) target;\r
22         return new Runnable() {\r
23             @Override\r
24             public void run() {\r
25                 try {\r
26                     Simantics.getSession().syncRequest(new WriteRequest() {\r
27                         @Override\r
28                         public void perform(WriteGraph graph) throws DatabaseException {\r
29                             graph.markUndoPoint();\r
30                             ComponentTypeCommands.createSymbol(graph, componentType);\r
31                         }\r
32                     });\r
33                 } catch (DatabaseException e) {\r
34                     ErrorLogger.defaultLogError(e);\r
35                 }\r
36             }\r
37         };\r
38     }\r
39 \r
40 }\r