]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/tools/DiagramToolViewPart.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / diagramEditor / tools / DiagramToolViewPart.java
index c415050d5ee2ff3072206a7c3e2f89326a16f219..efde4f59f6a41f2bc9ba67245dcfd07558596b24 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.modeling.ui.diagramEditor.tools;\r
-\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.eclipse.jface.layout.GridLayoutFactory;\r
-import org.eclipse.jface.resource.JFaceResources;\r
-import org.eclipse.jface.resource.LocalResourceManager;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.FillLayout;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.ToolBar;\r
-import org.eclipse.ui.ISelectionListener;\r
-import org.eclipse.ui.IWorkbenchPart;\r
-import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.forms.widgets.FormToolkit;\r
-import org.eclipse.ui.forms.widgets.ScrolledForm;\r
-import org.eclipse.ui.forms.widgets.Section;\r
-import org.eclipse.ui.part.ViewPart;\r
-import org.simantics.modeling.ui.diagramEditor.DiagramEditor;\r
-import org.simantics.utils.ui.workbench.WorkbenchUtils;\r
-\r
-public class DiagramToolViewPart extends ViewPart {\r
-\r
-    private Composite parent;\r
-\r
-    private final List<DiagramTools> tools = new ArrayList<DiagramTools>();\r
-    private final Map<DiagramTools,Composite> toolComposites = new HashMap<DiagramTools, Composite>();\r
-\r
-    private ISelectionListener listener;\r
-\r
-    protected LocalResourceManager resourceManager;\r
-\r
-    protected FormToolkit formToolkit;\r
-\r
-    protected ScrolledForm mainForm;\r
-\r
-    public DiagramToolViewPart() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void createPartControl(Composite parent) {\r
-        this.parent = parent;\r
-        this.parent.setLayout(new FillLayout());\r
-        //this.parent.setLayout(new GridLayout(1, true));\r
-\r
-        listener = new ISelectionListener() {\r
-\r
-            @Override\r
-            public void selectionChanged(IWorkbenchPart part, ISelection selection) {\r
-                // FIXME: selection logic must be improved.\r
-                // We want to disable tools, if selection does not come from DiagramEditor, or its outline\r
-                if (!(part instanceof DiagramEditor)) {\r
-                    return;\r
-                }\r
-                for (DiagramTools t : tools) {\r
-                    t.setSelection(selection);\r
-                }\r
-\r
-            }\r
-        };\r
-        getSite().getPage().addPostSelectionListener(listener);\r
-\r
-        resourceManager = new LocalResourceManager(JFaceResources.getResources(parent.getDisplay()), parent);\r
-\r
-        formToolkit = new FormToolkit(parent.getDisplay());\r
-        formToolkit.adapt(parent);\r
-        mainForm = formToolkit.createScrolledForm(parent);\r
-        mainForm.getBody().setLayout(GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(true).margins(0, 5).spacing(1,1).create());\r
-        formToolkit.decorateFormHeading(mainForm.getForm());\r
-        mainForm.setText("Tools");\r
-\r
-        // Default set of tools.\r
-        openTool(new AlignTools());\r
-    }\r
-\r
-    @Override\r
-    public void setFocus() {\r
-        parent.setFocus();\r
-\r
-    }\r
-\r
-    public void openTool(final DiagramTools tool) {\r
-        // Allow opening tool only once.\r
-        for (DiagramTools t : tools) {\r
-            if (t.getClass().equals(tool.getClass()))\r
-                return;\r
-        }\r
-\r
-        Section group = formToolkit.createSection(mainForm.getBody(), Section.TITLE_BAR | Section.TWISTIE);\r
-        group.setText(tool.getName());\r
-        GridData data = new GridData(SWT.FILL, SWT.TOP, true, false);\r
-        group.setLayoutData(data);\r
-        Composite composite = formToolkit.createComposite(group);\r
-\r
-        tool.createContols(composite, formToolkit, resourceManager);\r
-        group.setClient(composite);\r
-\r
-        ToolBar toolBar = new ToolBar(group, SWT.NO_FOCUS | SWT.FLAT);\r
-//        ToolItem closeButton = new ToolItem(toolBar, SWT.PUSH);\r
-//        closeButton.setToolTipText("Close " + tool.getName() + " Tools");\r
-//        closeButton.setImage(resourceManager.createImage(ImageDescriptor.createFromURL(Activator.getDefault().getBundle().getResource("icons/silk/cross.png"))));\r
-        group.setTextClient(toolBar);\r
-\r
-        group.setExpanded(true);\r
-\r
-//        closeButton.addSelectionListener(new SelectionAdapter() {\r
-//            @Override\r
-//            public void widgetSelected(SelectionEvent e) {\r
-//                closeTool(tool);\r
-//            }\r
-//        });\r
-\r
-        tools.add(tool);\r
-        toolComposites.put(tool, group);\r
-        parent.layout(true, true);\r
-\r
-        tool.setSelection(getSite().getPage().getSelection());\r
-\r
-    }\r
-\r
-    private void closeTool(DiagramTools tool) {\r
-        tool.dispose();\r
-        tools.remove(tool);\r
-        toolComposites.remove(tool).dispose();\r
-    }\r
-\r
-    @Override\r
-    public void dispose() {\r
-        List<DiagramTools> tls = new ArrayList<DiagramTools>();\r
-        tls.addAll(tools);\r
-        for (DiagramTools t : tls) {\r
-            closeTool(t);\r
-        }\r
-        getSite().getPage().removePostSelectionListener(listener);\r
-        listener = null;\r
-        formToolkit.dispose();\r
-        super.dispose();\r
-    }\r
-\r
-    public static void open(DiagramTools tool) throws PartInitException {\r
-        DiagramToolViewPart wp = (DiagramToolViewPart)WorkbenchUtils.showView("org.simantics.modeling.ui.diagramtool");\r
-        wp.openTool(tool);\r
-    }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.modeling.ui.diagramEditor.tools;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.resource.LocalResourceManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.part.ViewPart;
+import org.simantics.modeling.ui.diagramEditor.DiagramEditor;
+import org.simantics.utils.ui.workbench.WorkbenchUtils;
+
+public class DiagramToolViewPart extends ViewPart {
+
+    private Composite parent;
+
+    private final List<DiagramTools> tools = new ArrayList<DiagramTools>();
+    private final Map<DiagramTools,Composite> toolComposites = new HashMap<DiagramTools, Composite>();
+
+    private ISelectionListener listener;
+
+    protected LocalResourceManager resourceManager;
+
+    protected FormToolkit formToolkit;
+
+    protected ScrolledForm mainForm;
+
+    public DiagramToolViewPart() {
+
+    }
+
+    @Override
+    public void createPartControl(Composite parent) {
+        this.parent = parent;
+        this.parent.setLayout(new FillLayout());
+        //this.parent.setLayout(new GridLayout(1, true));
+
+        listener = new ISelectionListener() {
+
+            @Override
+            public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+                // FIXME: selection logic must be improved.
+                // We want to disable tools, if selection does not come from DiagramEditor, or its outline
+                if (!(part instanceof DiagramEditor)) {
+                    return;
+                }
+                for (DiagramTools t : tools) {
+                    t.setSelection(selection);
+                }
+
+            }
+        };
+        getSite().getPage().addPostSelectionListener(listener);
+
+        resourceManager = new LocalResourceManager(JFaceResources.getResources(parent.getDisplay()), parent);
+
+        formToolkit = new FormToolkit(parent.getDisplay());
+        formToolkit.adapt(parent);
+        mainForm = formToolkit.createScrolledForm(parent);
+        mainForm.getBody().setLayout(GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(true).margins(0, 5).spacing(1,1).create());
+        formToolkit.decorateFormHeading(mainForm.getForm());
+        mainForm.setText("Tools");
+
+        // Default set of tools.
+        openTool(new AlignTools());
+    }
+
+    @Override
+    public void setFocus() {
+        parent.setFocus();
+
+    }
+
+    public void openTool(final DiagramTools tool) {
+        // Allow opening tool only once.
+        for (DiagramTools t : tools) {
+            if (t.getClass().equals(tool.getClass()))
+                return;
+        }
+
+        Section group = formToolkit.createSection(mainForm.getBody(), Section.TITLE_BAR | Section.TWISTIE);
+        group.setText(tool.getName());
+        GridData data = new GridData(SWT.FILL, SWT.TOP, true, false);
+        group.setLayoutData(data);
+        Composite composite = formToolkit.createComposite(group);
+
+        tool.createContols(composite, formToolkit, resourceManager);
+        group.setClient(composite);
+
+        ToolBar toolBar = new ToolBar(group, SWT.NO_FOCUS | SWT.FLAT);
+//        ToolItem closeButton = new ToolItem(toolBar, SWT.PUSH);
+//        closeButton.setToolTipText("Close " + tool.getName() + " Tools");
+//        closeButton.setImage(resourceManager.createImage(ImageDescriptor.createFromURL(Activator.getDefault().getBundle().getResource("icons/silk/cross.png"))));
+        group.setTextClient(toolBar);
+
+        group.setExpanded(true);
+
+//        closeButton.addSelectionListener(new SelectionAdapter() {
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//                closeTool(tool);
+//            }
+//        });
+
+        tools.add(tool);
+        toolComposites.put(tool, group);
+        parent.layout(true, true);
+
+        tool.setSelection(getSite().getPage().getSelection());
+
+    }
+
+    private void closeTool(DiagramTools tool) {
+        tool.dispose();
+        tools.remove(tool);
+        toolComposites.remove(tool).dispose();
+    }
+
+    @Override
+    public void dispose() {
+        List<DiagramTools> tls = new ArrayList<DiagramTools>();
+        tls.addAll(tools);
+        for (DiagramTools t : tls) {
+            closeTool(t);
+        }
+        getSite().getPage().removePostSelectionListener(listener);
+        listener = null;
+        formToolkit.dispose();
+        super.dispose();
+    }
+
+    public static void open(DiagramTools tool) throws PartInitException {
+        DiagramToolViewPart wp = (DiagramToolViewPart)WorkbenchUtils.showView("org.simantics.modeling.ui.diagramtool");
+        wp.openTool(tool);
+    }
+
+}