]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet.ui/src/org/simantics/spreadsheet/ui/editor/SpreadsheetEditor.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.spreadsheet.ui / src / org / simantics / spreadsheet / ui / editor / SpreadsheetEditor.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.spreadsheet.ui.editor;\r
13 \r
14 import java.util.Collections;\r
15 \r
16 import org.eclipse.swt.SWT;\r
17 import org.eclipse.swt.layout.GridData;\r
18 import org.eclipse.swt.widgets.Composite;\r
19 import org.eclipse.ui.contexts.IContextService;\r
20 import org.simantics.db.ReadGraph;\r
21 import org.simantics.db.exception.DatabaseException;\r
22 import org.simantics.db.layer0.variable.Variable;\r
23 import org.simantics.db.request.Read;\r
24 import org.simantics.selectionview.StandardPropertyPage;\r
25 import org.simantics.spreadsheet.graph.GraphUI;\r
26 import org.simantics.spreadsheet.resource.SpreadsheetResource;\r
27 import org.simantics.spreadsheet.ui.Spreadsheet;\r
28 import org.simantics.ui.workbench.IPropertyPage;\r
29 import org.simantics.ui.workbench.ResourceEditorPart2;\r
30 import org.simantics.utils.ui.LayoutUtils;\r
31 import org.simantics.utils.ui.jface.ActiveSelectionProvider;\r
32 \r
33 public class SpreadsheetEditor extends ResourceEditorPart2 {\r
34 \r
35     public static final boolean EXCEL = true;\r
36     public static final String EDITOR_ID = "org.simantics.spreadsheet.ui.editor";\r
37 \r
38     private Spreadsheet spreadsheet;\r
39 //    private SimpleContainerTableModel tableModel;\r
40     private final ActiveSelectionProvider selectionProvider = new ActiveSelectionProvider();\r
41     //private ExcelLink excelLink;\r
42     private GraphUI ui;\r
43 \r
44     public Spreadsheet getSpreadsheet() {\r
45         return spreadsheet;\r
46     }\r
47 \r
48     @Override\r
49     public void createPartControl(Composite parent) {\r
50 \r
51         // Create UI\r
52         parent.setLayout(LayoutUtils.createNoBorderGridLayout(1));\r
53         parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));\r
54 \r
55         ui = new GraphUI(getSession());\r
56 \r
57         try {\r
58 \r
59                 Variable variable = getSession().syncRequest(new Read<Variable>() {\r
60 \r
61                         @Override\r
62                         public Variable perform(ReadGraph graph) throws DatabaseException {\r
63                                 \r
64 //                    String modelURI = getResourceInput2().getModelURI();\r
65 //                    String rvi = getResourceInput2().getRVI();\r
66 //                    Resource model = graph.getResource(modelURI);\r
67 //                                      Resource config = getInputResource();\r
68 ////                                    String configName = URIStringUtils.escape((String)graph.getPossibleRelatedValue(config, b.HasName, Bindings.STRING));\r
69 ////                                    Resource model = StructuralVariables.getModel(graph, config);\r
70 //                    Resource realization = graph.getPossibleObject(model, b.HasBaseRealization);\r
71 //                    Variable base = graph.adapt(realization, Variable.class);\r
72 //                    return base.browse(graph, rvi);\r
73                     return null;\r
74                                 \r
75                         }\r
76 \r
77                 });\r
78 \r
79                 spreadsheet = new Spreadsheet(parent, SWT.NONE, ui, selectionProvider);\r
80                 spreadsheet.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));\r
81 \r
82             ui.load(variable, spreadsheet.getClientInterface());\r
83         } catch (DatabaseException e) {\r
84             e.printStackTrace();\r
85         }\r
86 \r
87         spreadsheet.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
88         spreadsheet.defaultInitializeUI();\r
89 \r
90         getSite().setSelectionProvider(selectionProvider);\r
91 \r
92         IContextService contexts = (IContextService)getSite().getService(IContextService.class);\r
93         contexts.activateContext("org.simantics.spreadsheet.ui.context");\r
94 \r
95     }\r
96 \r
97     @Override\r
98     public void setFocus() {\r
99         if (spreadsheet != null)\r
100             spreadsheet.setFocus();\r
101     }\r
102 \r
103     @Override\r
104     public Object getAdapter(Class adapter) {\r
105         if (adapter == IPropertyPage.class)\r
106             return new StandardPropertyPage(getSite(), Collections.singleton(SpreadsheetResource.URIs.BrowseContext));\r
107         if (adapter == GraphUI.class)\r
108             return ui;\r
109         if (adapter == Spreadsheet.class)\r
110             return getSpreadsheet();\r
111         return null;\r
112     }\r
113 \r
114     @Override\r
115     public void dispose() {\r
116 \r
117 //        if(EXCEL)\r
118 //            excelLink.dispose();\r
119         \r
120 //        backend.dispose();\r
121 \r
122 //        tableModel.dispose();\r
123 \r
124         super.dispose();\r
125 \r
126     }\r
127 \r
128 }\r