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