]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.charts/src/org/simantics/charts/editor/PropertiesAction.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.charts / src / org / simantics / charts / editor / PropertiesAction.java
1 package org.simantics.charts.editor;\r
2 \r
3 import org.eclipse.jface.action.Action;\r
4 import org.eclipse.swt.widgets.Control;\r
5 import org.eclipse.swt.widgets.Shell;\r
6 import org.simantics.charts.ontology.ChartResource;\r
7 import org.simantics.charts.ui.ChartDoubleClickHandler;\r
8 import org.simantics.db.ReadGraph;\r
9 import org.simantics.db.Resource;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 import org.simantics.db.request.Read;\r
12 import org.simantics.ui.SimanticsUI;\r
13 \r
14 /**\r
15  * @author Tuukka Lehtonen\r
16  */\r
17 public class PropertiesAction extends Action {\r
18 \r
19     private Control  control;\r
20     private Resource component;\r
21 \r
22     public PropertiesAction(String name, Control control, Resource component) {\r
23         super(name);\r
24         this.control = control;\r
25         this.component = component;\r
26     }\r
27 \r
28     @Override\r
29     public void run() {\r
30         final Shell shell = control.getShell();\r
31         SimanticsUI.getSession().asyncRequest(new Read<Object>() {\r
32                         @Override\r
33                         public Object perform(ReadGraph graph) throws DatabaseException {\r
34                                 ChartResource CHART = ChartResource.getInstance(graph);\r
35                                 if ( graph.isInstanceOf(component, CHART.Chart_Item) ) {\r
36                                         ChartDoubleClickHandler.openChartItemPropertiesDialog(graph, component, shell.getDisplay());\r
37                                 } else\r
38                                 if ( graph.isInstanceOf(component, CHART.Chart) ) {\r
39                                         ChartDoubleClickHandler.openChartPropertiesDialog(graph, component, shell.getDisplay());\r
40                                 } \r
41                                 return null;\r
42                         }});\r
43     }\r
44 \r
45 }