]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/SaveSpreadsheetStateDialog.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / SaveSpreadsheetStateDialog.java
index a9b1679afff360bb762c6561de011a58f4cd0b3a..3b6232a2ac1222794db8bb802f911e0da428004f 100644 (file)
-package org.simantics.spreadsheet.graph;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import org.eclipse.jface.layout.GridDataFactory;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Combo;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.ui.IWorkbenchSite;\r
-import org.simantics.Simantics;\r
-import org.simantics.browsing.ui.BuiltinKeys;\r
-import org.simantics.browsing.ui.NodeContext;\r
-import org.simantics.browsing.ui.graph.impl.SessionContextInputSource;\r
-import org.simantics.browsing.ui.swt.GraphExplorerDialog2;\r
-import org.simantics.browsing.ui.swt.widgets.GraphExplorerComposite;\r
-import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.request.PossibleIndexRoot;\r
-import org.simantics.db.common.request.UniqueRead;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.request.IsLinkedTo;\r
-import org.simantics.db.layer0.util.Layer0Utils;\r
-import org.simantics.db.management.ISessionContext;\r
-import org.simantics.utils.datastructures.Pair;\r
-\r
-public class SaveSpreadsheetStateDialog extends GraphExplorerDialog2 {\r
-\r
-    private static final String SELECT_CUSTOM = "Select custom..";\r
-    \r
-    private Combo parentSelector;\r
-    private Pair<String, Resource>[] pairs;\r
-    private String[] parents;\r
-\r
-    private Text stateName;\r
-\r
-    private String currentItem;\r
-    private String currentStateName;\r
-    \r
-    private List<Resource> result;\r
-    \r
-    public SaveSpreadsheetStateDialog(IWorkbenchSite site, String title, Pair<String, Resource>[] pairs) {\r
-        super(site, title);\r
-        this.pairs = pairs;\r
-        \r
-        Resource book = pairs[0].second;\r
-        Resource context = pairs[1].second;\r
-        \r
-        try {\r
-            result = Simantics.getSession().syncRequest(new UniqueRead<List<Resource>>() {\r
-\r
-                @Override\r
-                public List<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                    Resource bookINdex = graph.syncRequest(new PossibleIndexRoot(book));\r
-                    Resource contextIndex = graph.syncRequest(new PossibleIndexRoot(context)); \r
-                    \r
-                    List<Resource> result = new ArrayList<>();\r
-                    Set<Resource> indexRoots = Layer0Utils.listIndexRoots(graph);\r
-                    for (Resource indexRoot : indexRoots) {\r
-                        if (graph.syncRequest(new IsLinkedTo(indexRoot, bookINdex)) && graph.syncRequest(new IsLinkedTo(indexRoot, contextIndex))) {\r
-                            result.add(indexRoot);\r
-                        }\r
-                    }\r
-                    return result;\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            e.printStackTrace();\r
-        }\r
-        \r
-        String[] newParents = new String[pairs.length + 1];\r
-        for (int i = 0; i < pairs.length; i++) {\r
-            newParents[i] = pairs[i].first;\r
-        }\r
-        newParents[pairs.length] = SELECT_CUSTOM;\r
-        this.parents = newParents;\r
-    }\r
-\r
-    @Override\r
-    public Set<String> getBrowseContexts() {\r
-        return Collections.singleton("http://www.simantics.org/Project-1.2/ProjectBrowseContext");\r
-    }\r
-    \r
-    @Override\r
-    protected SessionContextInputSource getInputSource() {\r
-        return super.getInputSource();\r
-    }\r
-\r
-    @Override\r
-    protected void createControls(Composite body, ISessionContext context, WidgetSupport support) {\r
-        \r
-        Composite upperComposite = new Composite(body, SWT.NONE);\r
-        GridLayout layout = new GridLayout(2, false);\r
-        upperComposite.setLayout(layout);\r
-        GridDataFactory.fillDefaults().grab(true, true).applyTo(upperComposite);\r
-        \r
-        Composite explorerComposite = new Composite(body, SWT.NONE);\r
-        explorerComposite.setLayout(new GridLayout());\r
-        GridDataFactory.fillDefaults().grab(true, true).applyTo(explorerComposite);\r
-        \r
-        Label parentLabel = new Label(upperComposite, SWT.NONE);\r
-        parentLabel.setText("Select parent: ");\r
-        \r
-        parentSelector = new Combo(upperComposite, SWT.READ_ONLY);\r
-        parentSelector.setItems(parents);\r
-        parentSelector.select(0);\r
-        \r
-        GridDataFactory.fillDefaults().grab(true, false).applyTo(parentSelector);\r
-        \r
-        parentSelector.addSelectionListener(new SelectionAdapter() {\r
-            \r
-            @Override\r
-            public void widgetSelected(SelectionEvent e) {\r
-                hideOrShowGE();\r
-            }\r
-            \r
-            @Override\r
-            public void widgetDefaultSelected(SelectionEvent e) {\r
-                widgetSelected(e);\r
-            }\r
-        });\r
-        \r
-        Label stateNameLabel = new Label(upperComposite, SWT.NONE);\r
-        stateNameLabel.setText("Name of the state: ");\r
-        GridDataFactory.fillDefaults().grab(false, false).applyTo(stateNameLabel);\r
-        \r
-        stateName = new Text(upperComposite, SWT.NONE);\r
-        \r
-        stateName.addModifyListener(new ModifyListener() {\r
-            \r
-            @Override\r
-            public void modifyText(ModifyEvent e) {\r
-                currentStateName = stateName.getText();\r
-            }\r
-        });\r
-        \r
-        GridDataFactory.fillDefaults().grab(true, false).applyTo(stateName);\r
-        \r
-        super.createControls(explorerComposite, context, support);\r
-        \r
-        hideOrShowGE();\r
-    }\r
-\r
-    private void hideOrShowGE() {\r
-        int selection = parentSelector.getSelectionIndex();\r
-        currentItem = parentSelector.getItem(selection);\r
-        \r
-        GraphExplorerComposite composite = getGraphExplorerComposite();\r
-        GridData data = (GridData) composite.getLayoutData();\r
-        \r
-        if (currentItem.equals(SELECT_CUSTOM))\r
-            data.exclude = false;\r
-        else\r
-            data.exclude = true;\r
-        \r
-         \r
-        composite.setLayoutData(data);\r
-        composite.setVisible(!data.exclude);\r
-        composite.getParent().pack();\r
-        composite.getParent().layout();\r
-        composite.getParent().getParent().pack();\r
-        composite.getParent().getParent().layout();\r
-        composite.getParent().getParent().getParent().getParent().getParent();\r
-        composite.getShell().pack();\r
-        composite.getShell().layout();\r
-//        explorerComposite.pack();\r
-//        explorerComposite.getShell().layout(false);\r
-    }\r
-    \r
-    \r
-    \r
-    @Override\r
-    public Object[] getSelection() {\r
-        if (currentItem.equals(SELECT_CUSTOM)) {\r
-            Object[] selection = super.getSelection();\r
-            NodeContext context = (NodeContext)selection[0];\r
-            Object obj = context.getConstant(BuiltinKeys.INPUT);\r
-            return new Object[] { Pair.make(obj, currentStateName) };\r
-        } else {\r
-            for (int i = 0; i < pairs.length; i++) {\r
-                Pair<String, Resource> p = pairs[i];\r
-                if (p.first.equals(currentItem)) {\r
-                    return new Object[] {Pair.make(p.second, currentStateName) };\r
-                }\r
-            }\r
-        }\r
-        return null;\r
-    }\r
-    \r
-}\r
+package org.simantics.spreadsheet.graph;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchSite;
+import org.simantics.Simantics;
+import org.simantics.browsing.ui.BuiltinKeys;
+import org.simantics.browsing.ui.NodeContext;
+import org.simantics.browsing.ui.graph.impl.SessionContextInputSource;
+import org.simantics.browsing.ui.swt.GraphExplorerDialog2;
+import org.simantics.browsing.ui.swt.widgets.GraphExplorerComposite;
+import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.request.PossibleIndexRoot;
+import org.simantics.db.common.request.UniqueRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.request.IsLinkedTo;
+import org.simantics.db.layer0.util.Layer0Utils;
+import org.simantics.db.management.ISessionContext;
+import org.simantics.utils.datastructures.Pair;
+
+public class SaveSpreadsheetStateDialog extends GraphExplorerDialog2 {
+
+    private static final String SELECT_CUSTOM = "Select custom..";
+    
+    private Combo parentSelector;
+    private Pair<String, Resource>[] pairs;
+    private String[] parents;
+
+    private Text stateName;
+
+    private String currentItem;
+    private String currentStateName;
+    
+    private List<Resource> result;
+    
+    public SaveSpreadsheetStateDialog(IWorkbenchSite site, String title, Pair<String, Resource>[] pairs) {
+        super(site, title);
+        this.pairs = pairs;
+        
+        Resource book = pairs[0].second;
+        Resource context = pairs[1].second;
+        
+        try {
+            result = Simantics.getSession().syncRequest(new UniqueRead<List<Resource>>() {
+
+                @Override
+                public List<Resource> perform(ReadGraph graph) throws DatabaseException {
+                    Resource bookINdex = graph.syncRequest(new PossibleIndexRoot(book));
+                    Resource contextIndex = graph.syncRequest(new PossibleIndexRoot(context)); 
+                    
+                    List<Resource> result = new ArrayList<>();
+                    Set<Resource> indexRoots = Layer0Utils.listIndexRoots(graph);
+                    for (Resource indexRoot : indexRoots) {
+                        if (graph.syncRequest(new IsLinkedTo(indexRoot, bookINdex)) && graph.syncRequest(new IsLinkedTo(indexRoot, contextIndex))) {
+                            result.add(indexRoot);
+                        }
+                    }
+                    return result;
+                }
+            });
+        } catch (DatabaseException e) {
+            e.printStackTrace();
+        }
+        
+        String[] newParents = new String[pairs.length + 1];
+        for (int i = 0; i < pairs.length; i++) {
+            newParents[i] = pairs[i].first;
+        }
+        newParents[pairs.length] = SELECT_CUSTOM;
+        this.parents = newParents;
+    }
+
+    @Override
+    public Set<String> getBrowseContexts() {
+        return Collections.singleton("http://www.simantics.org/Project-1.2/ProjectBrowseContext");
+    }
+    
+    @Override
+    protected SessionContextInputSource getInputSource() {
+        return super.getInputSource();
+    }
+
+    @Override
+    protected void createControls(Composite body, ISessionContext context, WidgetSupport support) {
+        
+        Composite upperComposite = new Composite(body, SWT.NONE);
+        GridLayout layout = new GridLayout(2, false);
+        upperComposite.setLayout(layout);
+        GridDataFactory.fillDefaults().grab(true, true).applyTo(upperComposite);
+        
+        Composite explorerComposite = new Composite(body, SWT.NONE);
+        explorerComposite.setLayout(new GridLayout());
+        GridDataFactory.fillDefaults().grab(true, true).applyTo(explorerComposite);
+        
+        Label parentLabel = new Label(upperComposite, SWT.NONE);
+        parentLabel.setText("Select parent: ");
+        
+        parentSelector = new Combo(upperComposite, SWT.READ_ONLY);
+        parentSelector.setItems(parents);
+        parentSelector.select(0);
+        
+        GridDataFactory.fillDefaults().grab(true, false).applyTo(parentSelector);
+        
+        parentSelector.addSelectionListener(new SelectionAdapter() {
+            
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                hideOrShowGE();
+            }
+            
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                widgetSelected(e);
+            }
+        });
+        
+        Label stateNameLabel = new Label(upperComposite, SWT.NONE);
+        stateNameLabel.setText("Name of the state: ");
+        GridDataFactory.fillDefaults().grab(false, false).applyTo(stateNameLabel);
+        
+        stateName = new Text(upperComposite, SWT.NONE);
+        
+        stateName.addModifyListener(new ModifyListener() {
+            
+            @Override
+            public void modifyText(ModifyEvent e) {
+                currentStateName = stateName.getText();
+            }
+        });
+        
+        GridDataFactory.fillDefaults().grab(true, false).applyTo(stateName);
+        
+        super.createControls(explorerComposite, context, support);
+        
+        hideOrShowGE();
+    }
+
+    private void hideOrShowGE() {
+        int selection = parentSelector.getSelectionIndex();
+        currentItem = parentSelector.getItem(selection);
+        
+        GraphExplorerComposite composite = getGraphExplorerComposite();
+        GridData data = (GridData) composite.getLayoutData();
+        
+        if (currentItem.equals(SELECT_CUSTOM))
+            data.exclude = false;
+        else
+            data.exclude = true;
+        
+         
+        composite.setLayoutData(data);
+        composite.setVisible(!data.exclude);
+        composite.getParent().pack();
+        composite.getParent().layout();
+        composite.getParent().getParent().pack();
+        composite.getParent().getParent().layout();
+        composite.getParent().getParent().getParent().getParent().getParent();
+        composite.getShell().pack();
+        composite.getShell().layout();
+//        explorerComposite.pack();
+//        explorerComposite.getShell().layout(false);
+    }
+    
+    
+    
+    @Override
+    public Object[] getSelection() {
+        if (currentItem.equals(SELECT_CUSTOM)) {
+            Object[] selection = super.getSelection();
+            NodeContext context = (NodeContext)selection[0];
+            Object obj = context.getConstant(BuiltinKeys.INPUT);
+            return new Object[] { Pair.make(obj, currentStateName) };
+        } else {
+            for (int i = 0; i < pairs.length; i++) {
+                Pair<String, Resource> p = pairs[i];
+                if (p.first.equals(currentItem)) {
+                    return new Object[] {Pair.make(p.second, currentStateName) };
+                }
+            }
+        }
+        return null;
+    }
+    
+}