]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/TabbedPageSelectionProvider.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.browsing.ui.swt / src / org / simantics / browsing / ui / swt / TabbedPageSelectionProvider.java
index f5da3126bdbd4adb8e7147367635423b1a2f273d..b3659fff0c15048f075d62ca5d1a82c00b88f800 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.browsing.ui.swt;\r
-\r
-/*******************************************************************************\r
- * Copyright (c) 2000, 2007 IBM Corporation and others.\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
- *     IBM Corporation - initial API and implementation\r
- *******************************************************************************/\r
-\r
-import org.eclipse.core.runtime.Assert;\r
-import org.eclipse.core.runtime.ListenerList;\r
-import org.eclipse.core.runtime.SafeRunner;\r
-import org.eclipse.jface.util.SafeRunnable;\r
-import org.eclipse.jface.viewers.IPostSelectionProvider;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.jface.viewers.ISelectionChangedListener;\r
-import org.eclipse.jface.viewers.ISelectionProvider;\r
-import org.eclipse.jface.viewers.SelectionChangedEvent;\r
-import org.eclipse.jface.viewers.StructuredSelection;\r
-import org.eclipse.ui.IEditorPart;\r
-\r
-/**\r
- * Manages the current selection in a multi-page editor by tracking the active\r
- * nested editor within the multi-page editor. When the selection changes,\r
- * notifications are sent to all registered listeners.\r
- * <p>\r
- * This class may be instantiated; it is not intended to be subclassed.\r
- * The base implementation of <code>MultiPageEditor.init</code> creates\r
- * an instance of this class.\r
- * </p>\r
- */\r
-public class TabbedPageSelectionProvider implements IPostSelectionProvider {\r
-\r
-    /**\r
-     * Registered selection changed listeners (element type:\r
-     * <code>ISelectionChangedListener</code>).\r
-     */\r
-    private final ListenerList listeners = new ListenerList();\r
-\r
-    /**\r
-     * Registered post selection changed listeners.\r
-     */\r
-    private final ListenerList postListeners = new ListenerList();\r
-\r
-    /**\r
-     * The multi-page editor.\r
-     */\r
-    private final TabbedPropertyPage multiPageEditor;\r
-\r
-    /**\r
-     * Creates a selection provider for the given multi-page editor.\r
-     *\r
-     * @param multiPageEditor the multi-page editor\r
-     */\r
-    public TabbedPageSelectionProvider(TabbedPropertyPage multiPageEditor) {\r
-        Assert.isNotNull(multiPageEditor);\r
-        this.multiPageEditor = multiPageEditor;\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * Method declared on <code>ISelectionProvider</code>.\r
-     */\r
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {\r
-        listeners.add(listener);\r
-    }\r
-\r
-    /**\r
-     * Adds a listener for post selection changes in this multi page selection provider.\r
-     *\r
-     * @param listener a selection changed listener\r
-     * @since 3.2\r
-     */\r
-    public void addPostSelectionChangedListener(ISelectionChangedListener listener) {\r
-        postListeners.add(listener);\r
-    }\r
-\r
-    /**\r
-     * Notifies all registered selection changed listeners that the editor's\r
-     * selection has changed. Only listeners registered at the time this method is\r
-     * called are notified.\r
-     *\r
-     * @param event the selection changed event\r
-     */\r
-    public void fireSelectionChanged(final SelectionChangedEvent event) {\r
-        Object[] listeners = this.listeners.getListeners();\r
-        fireEventChange(event, listeners);\r
-    }\r
-\r
-    /**\r
-     * Notifies all post selection changed listeners that the editor's\r
-     * selection has changed.\r
-     * \r
-     * @param event the event to propogate.\r
-     * @since 3.2\r
-     */\r
-    public void firePostSelectionChanged(final SelectionChangedEvent event) {\r
-        Object[] listeners = postListeners.getListeners();\r
-        fireEventChange(event, listeners);\r
-    }\r
-\r
-    private void fireEventChange(final SelectionChangedEvent event, Object[] listeners) {\r
-        for (int i = 0; i < listeners.length; ++i) {\r
-            final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];\r
-            SafeRunner.run(new SafeRunnable() {\r
-                public void run() {\r
-                    l.selectionChanged(event);\r
-                }\r
-            });\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Returns the multi-page editor.\r
-     * @return the multi-page editor.\r
-     */\r
-    public TabbedPropertyPage getMultiPageEditor() {\r
-        return multiPageEditor;\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * Method declared on <code>ISelectionProvider</code>.\r
-     */\r
-    public ISelection getSelection() {\r
-        IEditorPart activeEditor = multiPageEditor.getActiveEditor();\r
-        if (activeEditor != null) {\r
-            ISelectionProvider selectionProvider = activeEditor.getSite()\r
-            .getSelectionProvider();\r
-            if (selectionProvider != null) {\r
-                return selectionProvider.getSelection();\r
-            }\r
-        }\r
-        return StructuredSelection.EMPTY;\r
-    }\r
-\r
-    /* (non-JavaDoc)\r
-     * Method declaed on <code>ISelectionProvider</code>.\r
-     */\r
-    public void removeSelectionChangedListener(\r
-            ISelectionChangedListener listener) {\r
-        listeners.remove(listener);\r
-    }\r
-\r
-    /**\r
-     * Removes a listener for post selection changes in this multi page selection provider.\r
-     *\r
-     * @param listener a selection changed listener\r
-     * @since 3.2\r
-     */\r
-    public void removePostSelectionChangedListener(ISelectionChangedListener listener) {\r
-        postListeners.remove(listener);\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * Method declared on <code>ISelectionProvider</code>.\r
-     */\r
-    public void setSelection(ISelection selection) {\r
-        IEditorPart activeEditor = multiPageEditor.getActiveEditor();\r
-        if (activeEditor != null) {\r
-            ISelectionProvider selectionProvider = activeEditor.getSite()\r
-            .getSelectionProvider();\r
-            if (selectionProvider != null) {\r
-                selectionProvider.setSelection(selection);\r
-            }\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.browsing.ui.swt;
+
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.jface.util.SafeRunnable;
+import org.eclipse.jface.viewers.IPostSelectionProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * Manages the current selection in a multi-page editor by tracking the active
+ * nested editor within the multi-page editor. When the selection changes,
+ * notifications are sent to all registered listeners.
+ * <p>
+ * This class may be instantiated; it is not intended to be subclassed.
+ * The base implementation of <code>MultiPageEditor.init</code> creates
+ * an instance of this class.
+ * </p>
+ */
+public class TabbedPageSelectionProvider implements IPostSelectionProvider {
+
+    /**
+     * Registered selection changed listeners (element type:
+     * <code>ISelectionChangedListener</code>).
+     */
+    private final ListenerList listeners = new ListenerList();
+
+    /**
+     * Registered post selection changed listeners.
+     */
+    private final ListenerList postListeners = new ListenerList();
+
+    /**
+     * The multi-page editor.
+     */
+    private final TabbedPropertyPage multiPageEditor;
+
+    /**
+     * Creates a selection provider for the given multi-page editor.
+     *
+     * @param multiPageEditor the multi-page editor
+     */
+    public TabbedPageSelectionProvider(TabbedPropertyPage multiPageEditor) {
+        Assert.isNotNull(multiPageEditor);
+        this.multiPageEditor = multiPageEditor;
+    }
+
+    /* (non-Javadoc)
+     * Method declared on <code>ISelectionProvider</code>.
+     */
+    public void addSelectionChangedListener(ISelectionChangedListener listener) {
+        listeners.add(listener);
+    }
+
+    /**
+     * Adds a listener for post selection changes in this multi page selection provider.
+     *
+     * @param listener a selection changed listener
+     * @since 3.2
+     */
+    public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
+        postListeners.add(listener);
+    }
+
+    /**
+     * Notifies all registered selection changed listeners that the editor's
+     * selection has changed. Only listeners registered at the time this method is
+     * called are notified.
+     *
+     * @param event the selection changed event
+     */
+    public void fireSelectionChanged(final SelectionChangedEvent event) {
+        Object[] listeners = this.listeners.getListeners();
+        fireEventChange(event, listeners);
+    }
+
+    /**
+     * Notifies all post selection changed listeners that the editor's
+     * selection has changed.
+     * 
+     * @param event the event to propogate.
+     * @since 3.2
+     */
+    public void firePostSelectionChanged(final SelectionChangedEvent event) {
+        Object[] listeners = postListeners.getListeners();
+        fireEventChange(event, listeners);
+    }
+
+    private void fireEventChange(final SelectionChangedEvent event, Object[] listeners) {
+        for (int i = 0; i < listeners.length; ++i) {
+            final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
+            SafeRunner.run(new SafeRunnable() {
+                public void run() {
+                    l.selectionChanged(event);
+                }
+            });
+        }
+    }
+
+    /**
+     * Returns the multi-page editor.
+     * @return the multi-page editor.
+     */
+    public TabbedPropertyPage getMultiPageEditor() {
+        return multiPageEditor;
+    }
+
+    /* (non-Javadoc)
+     * Method declared on <code>ISelectionProvider</code>.
+     */
+    public ISelection getSelection() {
+        IEditorPart activeEditor = multiPageEditor.getActiveEditor();
+        if (activeEditor != null) {
+            ISelectionProvider selectionProvider = activeEditor.getSite()
+            .getSelectionProvider();
+            if (selectionProvider != null) {
+                return selectionProvider.getSelection();
+            }
+        }
+        return StructuredSelection.EMPTY;
+    }
+
+    /* (non-JavaDoc)
+     * Method declaed on <code>ISelectionProvider</code>.
+     */
+    public void removeSelectionChangedListener(
+            ISelectionChangedListener listener) {
+        listeners.remove(listener);
+    }
+
+    /**
+     * Removes a listener for post selection changes in this multi page selection provider.
+     *
+     * @param listener a selection changed listener
+     * @since 3.2
+     */
+    public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
+        postListeners.remove(listener);
+    }
+
+    /* (non-Javadoc)
+     * Method declared on <code>ISelectionProvider</code>.
+     */
+    public void setSelection(ISelection selection) {
+        IEditorPart activeEditor = multiPageEditor.getActiveEditor();
+        if (activeEditor != null) {
+            ISelectionProvider selectionProvider = activeEditor.getSite()
+            .getSelectionProvider();
+            if (selectionProvider != null) {
+                selectionProvider.setSelection(selection);
+            }
+        }
+    }
+}