]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.editors/src/org/simantics/editors/Browser.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.editors / src / org / simantics / editors / Browser.java
index af9e2cf1a3b6e3366f1b238659fb495df13f829c..7e44ebb6fb319c171e8f55673911feedbec2d2fc 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.editors;\r
-\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.jface.resource.JFaceResources;\r
-import org.eclipse.jface.resource.LocalResourceManager;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.browser.LocationEvent;\r
-import org.eclipse.swt.browser.LocationListener;\r
-import org.eclipse.swt.browser.ProgressEvent;\r
-import org.eclipse.swt.browser.ProgressListener;\r
-import org.eclipse.swt.browser.StatusTextEvent;\r
-import org.eclipse.swt.browser.StatusTextListener;\r
-import org.eclipse.swt.graphics.Image;\r
-import org.eclipse.swt.layout.FillLayout;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Event;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Listener;\r
-import org.eclipse.swt.widgets.ProgressBar;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.swt.widgets.ToolBar;\r
-import org.eclipse.swt.widgets.ToolItem;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.IEditorSite;\r
-import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.part.EditorPart;\r
-\r
-/**\r
- * Web Browser\r
- * Visiblity of controls (back, forward, url, ...) can be configured with the BrowserInput\r
- * \r
- * @author Marko Luukkainen <Marko.Luukkainen@vtt.fi>\r
- *\r
- */\r
-public class Browser extends EditorPart {\r
-\r
-    public static final String ID = "org.simantics.editors.browser";\r
-\r
-    org.eclipse.swt.browser.Browser browser;\r
-    ToolBar toolbar;\r
-    LocalResourceManager resourceManager;\r
-\r
-    private final ImageDescriptor BACK_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_left.png");\r
-    private final ImageDescriptor FORWARD_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_right.png");\r
-    private final ImageDescriptor STOP_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/stop.png");\r
-    private final ImageDescriptor REFRESH_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_rotate_clockwise.png");\r
-\r
-    private Shell fsShell;\r
-\r
-    public Browser() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void doSave(IProgressMonitor monitor) {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void doSaveAs() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void init(IEditorSite site, IEditorInput input)\r
-    throws PartInitException {\r
-        if (!(input instanceof BrowserInput))\r
-            throw new PartInitException("Input must be instance of BrowserInput");\r
-        setSite(site);\r
-        setInput(input);\r
-\r
-        // Set initial part name according to the name given by IEditorInput\r
-        setPartName(getEditorInput().getName());\r
-    }\r
-\r
-    @Override\r
-    public boolean isDirty() {\r
-        return false;\r
-    }\r
-\r
-    @Override\r
-    public boolean isSaveAsAllowed() {\r
-        return false;\r
-    }\r
-\r
-    @Override\r
-    public void createPartControl(Composite parent) {\r
-        resourceManager = new LocalResourceManager(JFaceResources.getResources(), parent);\r
-        Image backImage = resourceManager.createImage(BACK_IMAGE);\r
-        Image forwardImage = resourceManager.createImage(FORWARD_IMAGE);\r
-        Image stopImage = resourceManager.createImage(STOP_IMAGE);\r
-        Image refreshImage = resourceManager.createImage(REFRESH_IMAGE);\r
-\r
-        // http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet128.java\r
-        BrowserInput input = (BrowserInput)getEditorInput();\r
-        boolean fullscreen = input.isFullscreen();\r
-        if (fullscreen) {\r
-            fsShell = new Shell(parent.getDisplay());\r
-\r
-            fsShell.setLayout(new GridLayout(1,false));\r
-            fsShell.setLayout(new FillLayout());\r
-            parent = new Composite(fsShell,SWT.NONE);\r
-            fsShell.open();\r
-            fsShell.setFullScreen(true);\r
-            parent.setLayout(new FillLayout());\r
-        }\r
-\r
-        String url = input.getUrl().toString();\r
-        boolean showControls = input.isShowControls();\r
-        if (showControls) {\r
-            Composite composite = new Composite(parent, SWT.NONE);\r
-            GridLayout gridLayout = new GridLayout();\r
-            gridLayout.numColumns = 3;\r
-            composite.setLayout(gridLayout);\r
-            toolbar = new ToolBar(composite, SWT.NONE);\r
-            ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);\r
-            itemBack.setText("Back");\r
-            itemBack.setImage(backImage);\r
-            ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);\r
-            itemForward.setText("Forward");\r
-            itemForward.setImage(forwardImage);\r
-            ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);\r
-            itemStop.setText("Stop");\r
-            itemStop.setImage(stopImage);\r
-            ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);\r
-            itemRefresh.setText("Refresh");\r
-            itemRefresh.setImage(refreshImage);\r
-            // ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);\r
-            // itemGo.setText("Go");\r
-\r
-            GridData data = new GridData();\r
-            data.grabExcessHorizontalSpace = true;\r
-            data.grabExcessVerticalSpace = false;\r
-            data.horizontalAlignment = SWT.FILL;\r
-            data.verticalAlignment = SWT.CENTER;\r
-            data.horizontalSpan = 3;\r
-            toolbar.setLayoutData(data);\r
-\r
-            Label labelAddress = new Label(composite, SWT.NONE);\r
-            labelAddress.setText("Address");\r
-\r
-            final Text location = new Text(composite, SWT.BORDER);\r
-            data = new GridData();\r
-            data.horizontalAlignment = GridData.FILL;\r
-            data.horizontalSpan = 2;\r
-            data.grabExcessHorizontalSpace = true;\r
-            location.setLayoutData(data);\r
-\r
-            browser = new org.eclipse.swt.browser.Browser(composite, input.getBrowserStyle());\r
-\r
-            data = new GridData();\r
-            data.grabExcessHorizontalSpace = true;\r
-            data.grabExcessVerticalSpace = true;\r
-            data.horizontalAlignment = SWT.FILL;\r
-            data.verticalAlignment = SWT.FILL;\r
-            data.horizontalSpan = 3;\r
-            browser.setLayoutData(data);\r
-\r
-            final Label statusl = new Label(composite, SWT.NONE);\r
-            data = new GridData(GridData.FILL_HORIZONTAL);\r
-            data.horizontalSpan = 2;\r
-            statusl.setLayoutData(data);\r
-\r
-            final ProgressBar progressBar = new ProgressBar(composite, SWT.NONE);\r
-            data = new GridData();\r
-            data.horizontalAlignment = GridData.END;\r
-            progressBar.setLayoutData(data);\r
-\r
-            browser.addProgressListener(new ProgressListener() {\r
-                @Override\r
-                public void changed(ProgressEvent event) {\r
-                    if (event.total == 0)\r
-                        return;\r
-                    int ratio = event.current * 100 / event.total;\r
-                    progressBar.setSelection(ratio);\r
-                }\r
-\r
-                @Override\r
-                public void completed(ProgressEvent event) {\r
-                    progressBar.setSelection(0);\r
-                }\r
-            });\r
-            browser.addStatusTextListener(new StatusTextListener() {\r
-                @Override\r
-                public void changed(StatusTextEvent event) {\r
-                    statusl.setText(event.text);\r
-                }\r
-            });\r
-            browser.addLocationListener(new LocationListener() {\r
-                @Override\r
-                public void changed(LocationEvent event) {\r
-                    if (event.top)\r
-                        location.setText(event.location);\r
-                    scheduleSetPartName();\r
-                }\r
-\r
-                @Override\r
-                public void changing(LocationEvent event) {\r
-                }\r
-            });\r
-\r
-            Listener listener = new Listener() {\r
-                @Override\r
-                public void handleEvent(Event event) {\r
-                    ToolItem item = (ToolItem) event.widget;\r
-                    String string = item.getText();\r
-                    if (string.equals("Back"))\r
-                        browser.back();\r
-                    else if (string.equals("Forward"))\r
-                        browser.forward();\r
-                    else if (string.equals("Stop"))\r
-                        browser.stop();\r
-                    else if (string.equals("Refresh"))\r
-                        browser.refresh();\r
-                    // else if (string.equals("Go"))\r
-                    // browser.setUrl(location.getText());\r
-                }\r
-            };\r
-\r
-            itemBack.addListener(SWT.Selection, listener);\r
-            itemForward.addListener(SWT.Selection, listener);\r
-            itemStop.addListener(SWT.Selection, listener);\r
-            itemRefresh.addListener(SWT.Selection, listener);\r
-        } else { // !showControls\r
-            browser = new org.eclipse.swt.browser.Browser(parent, input.getBrowserStyle());\r
-            browser.addLocationListener(new LocationListener() {\r
-                @Override\r
-                public void changed(LocationEvent event) {\r
-                    scheduleSetPartName();\r
-                }\r
-                @Override\r
-                public void changing(LocationEvent event) {\r
-                }\r
-            });\r
-        }\r
-\r
-        browser.setUrl(url);\r
-\r
-        if (fullscreen) {\r
-            fsShell.layout(true, true);\r
-        }\r
-    }\r
-\r
-    protected void scheduleSetPartName() {\r
-        browser.getDisplay().asyncExec(new Runnable() {\r
-            @Override\r
-            public void run() {\r
-                if (browser.isDisposed())\r
-                    return;\r
-                String name = getEditorInput().getName();\r
-                setPartName(name);\r
-            }\r
-        });\r
-    }\r
-\r
-    @Override\r
-    public void setFocus() {\r
-        browser.setFocus();\r
-    }\r
-\r
-    @Override\r
-    public void dispose() {\r
-        if (fsShell != null)\r
-            fsShell.dispose();\r
-        super.dispose();\r
-    }\r
-\r
-    public org.eclipse.swt.browser.Browser getBrowser() {\r
-        return browser;\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.editors;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.resource.LocalResourceManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.LocationEvent;
+import org.eclipse.swt.browser.LocationListener;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.browser.StatusTextEvent;
+import org.eclipse.swt.browser.StatusTextListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+
+/**
+ * Web Browser
+ * Visiblity of controls (back, forward, url, ...) can be configured with the BrowserInput
+ * 
+ * @author Marko Luukkainen <Marko.Luukkainen@vtt.fi>
+ *
+ */
+public class Browser extends EditorPart {
+
+    public static final String ID = "org.simantics.editors.browser";
+
+    org.eclipse.swt.browser.Browser browser;
+    ToolBar toolbar;
+    LocalResourceManager resourceManager;
+
+    private final ImageDescriptor BACK_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_left.png");
+    private final ImageDescriptor FORWARD_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_right.png");
+    private final ImageDescriptor STOP_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/stop.png");
+    private final ImageDescriptor REFRESH_IMAGE = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/browser/arrow_rotate_clockwise.png");
+
+    private Shell fsShell;
+
+    public Browser() {
+
+    }
+
+    @Override
+    public void doSave(IProgressMonitor monitor) {
+
+    }
+
+    @Override
+    public void doSaveAs() {
+
+    }
+
+    @Override
+    public void init(IEditorSite site, IEditorInput input)
+    throws PartInitException {
+        if (!(input instanceof BrowserInput))
+            throw new PartInitException("Input must be instance of BrowserInput");
+        setSite(site);
+        setInput(input);
+
+        // Set initial part name according to the name given by IEditorInput
+        setPartName(getEditorInput().getName());
+    }
+
+    @Override
+    public boolean isDirty() {
+        return false;
+    }
+
+    @Override
+    public boolean isSaveAsAllowed() {
+        return false;
+    }
+
+    @Override
+    public void createPartControl(Composite parent) {
+        resourceManager = new LocalResourceManager(JFaceResources.getResources(), parent);
+        Image backImage = resourceManager.createImage(BACK_IMAGE);
+        Image forwardImage = resourceManager.createImage(FORWARD_IMAGE);
+        Image stopImage = resourceManager.createImage(STOP_IMAGE);
+        Image refreshImage = resourceManager.createImage(REFRESH_IMAGE);
+
+        // http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet128.java
+        BrowserInput input = (BrowserInput)getEditorInput();
+        boolean fullscreen = input.isFullscreen();
+        if (fullscreen) {
+            fsShell = new Shell(parent.getDisplay());
+
+            fsShell.setLayout(new GridLayout(1,false));
+            fsShell.setLayout(new FillLayout());
+            parent = new Composite(fsShell,SWT.NONE);
+            fsShell.open();
+            fsShell.setFullScreen(true);
+            parent.setLayout(new FillLayout());
+        }
+
+        String url = input.getUrl().toString();
+        boolean showControls = input.isShowControls();
+        if (showControls) {
+            Composite composite = new Composite(parent, SWT.NONE);
+            GridLayout gridLayout = new GridLayout();
+            gridLayout.numColumns = 3;
+            composite.setLayout(gridLayout);
+            toolbar = new ToolBar(composite, SWT.NONE);
+            ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
+            itemBack.setText("Back");
+            itemBack.setImage(backImage);
+            ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
+            itemForward.setText("Forward");
+            itemForward.setImage(forwardImage);
+            ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
+            itemStop.setText("Stop");
+            itemStop.setImage(stopImage);
+            ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
+            itemRefresh.setText("Refresh");
+            itemRefresh.setImage(refreshImage);
+            // ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
+            // itemGo.setText("Go");
+
+            GridData data = new GridData();
+            data.grabExcessHorizontalSpace = true;
+            data.grabExcessVerticalSpace = false;
+            data.horizontalAlignment = SWT.FILL;
+            data.verticalAlignment = SWT.CENTER;
+            data.horizontalSpan = 3;
+            toolbar.setLayoutData(data);
+
+            Label labelAddress = new Label(composite, SWT.NONE);
+            labelAddress.setText("Address");
+
+            final Text location = new Text(composite, SWT.BORDER);
+            data = new GridData();
+            data.horizontalAlignment = GridData.FILL;
+            data.horizontalSpan = 2;
+            data.grabExcessHorizontalSpace = true;
+            location.setLayoutData(data);
+
+            browser = new org.eclipse.swt.browser.Browser(composite, input.getBrowserStyle());
+
+            data = new GridData();
+            data.grabExcessHorizontalSpace = true;
+            data.grabExcessVerticalSpace = true;
+            data.horizontalAlignment = SWT.FILL;
+            data.verticalAlignment = SWT.FILL;
+            data.horizontalSpan = 3;
+            browser.setLayoutData(data);
+
+            final Label statusl = new Label(composite, SWT.NONE);
+            data = new GridData(GridData.FILL_HORIZONTAL);
+            data.horizontalSpan = 2;
+            statusl.setLayoutData(data);
+
+            final ProgressBar progressBar = new ProgressBar(composite, SWT.NONE);
+            data = new GridData();
+            data.horizontalAlignment = GridData.END;
+            progressBar.setLayoutData(data);
+
+            browser.addProgressListener(new ProgressListener() {
+                @Override
+                public void changed(ProgressEvent event) {
+                    if (event.total == 0)
+                        return;
+                    int ratio = event.current * 100 / event.total;
+                    progressBar.setSelection(ratio);
+                }
+
+                @Override
+                public void completed(ProgressEvent event) {
+                    progressBar.setSelection(0);
+                }
+            });
+            browser.addStatusTextListener(new StatusTextListener() {
+                @Override
+                public void changed(StatusTextEvent event) {
+                    statusl.setText(event.text);
+                }
+            });
+            browser.addLocationListener(new LocationListener() {
+                @Override
+                public void changed(LocationEvent event) {
+                    if (event.top)
+                        location.setText(event.location);
+                    scheduleSetPartName();
+                }
+
+                @Override
+                public void changing(LocationEvent event) {
+                }
+            });
+
+            Listener listener = new Listener() {
+                @Override
+                public void handleEvent(Event event) {
+                    ToolItem item = (ToolItem) event.widget;
+                    String string = item.getText();
+                    if (string.equals("Back"))
+                        browser.back();
+                    else if (string.equals("Forward"))
+                        browser.forward();
+                    else if (string.equals("Stop"))
+                        browser.stop();
+                    else if (string.equals("Refresh"))
+                        browser.refresh();
+                    // else if (string.equals("Go"))
+                    // browser.setUrl(location.getText());
+                }
+            };
+
+            itemBack.addListener(SWT.Selection, listener);
+            itemForward.addListener(SWT.Selection, listener);
+            itemStop.addListener(SWT.Selection, listener);
+            itemRefresh.addListener(SWT.Selection, listener);
+        } else { // !showControls
+            browser = new org.eclipse.swt.browser.Browser(parent, input.getBrowserStyle());
+            browser.addLocationListener(new LocationListener() {
+                @Override
+                public void changed(LocationEvent event) {
+                    scheduleSetPartName();
+                }
+                @Override
+                public void changing(LocationEvent event) {
+                }
+            });
+        }
+
+        browser.setUrl(url);
+
+        if (fullscreen) {
+            fsShell.layout(true, true);
+        }
+    }
+
+    protected void scheduleSetPartName() {
+        browser.getDisplay().asyncExec(new Runnable() {
+            @Override
+            public void run() {
+                if (browser.isDisposed())
+                    return;
+                String name = getEditorInput().getName();
+                setPartName(name);
+            }
+        });
+    }
+
+    @Override
+    public void setFocus() {
+        browser.setFocus();
+    }
+
+    @Override
+    public void dispose() {
+        if (fsShell != null)
+            fsShell.dispose();
+        super.dispose();
+    }
+
+    public org.eclipse.swt.browser.Browser getBrowser() {
+        return browser;
+    }
+
+}