-/*******************************************************************************\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.diagram.layer;\r
-\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.swt.widgets.Composite;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.IWorkbenchPage;\r
-import org.eclipse.ui.IWorkbenchPart;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.eclipse.ui.part.IContributedContentsView;\r
-import org.eclipse.ui.part.IPage;\r
-import org.eclipse.ui.part.IPageBookViewPage;\r
-import org.eclipse.ui.part.IPageSite;\r
-import org.eclipse.ui.part.MessagePage;\r
-import org.eclipse.ui.part.PageBook;\r
-import org.eclipse.ui.part.PageBookView;\r
-\r
-public class LayersView extends PageBookView implements ISelectionProvider, ISelectionChangedListener {\r
-\r
- /**\r
- * The plugin prefix.\r
- */\r
- public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$\r
-\r
- /**\r
- * Help context id used for the content outline view\r
- * (value <code>"org.eclipse.ui.content_outline_context"</code>).\r
- */\r
- public static final String LAYERS_VIEW_HELP_CONTEXT_ID = PREFIX + "layers_context";//$NON-NLS-1$\r
-\r
- /**\r
- * Message to show on the default page.\r
- */\r
- private String defaultText = Messages.LayersView_noLayers; \r
-\r
- /**\r
- * Creates a content outline view with no content outline pages.\r
- */\r
- public LayersView() {\r
- super();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on ISelectionProvider.\r
- */\r
- public void addSelectionChangedListener(ISelectionChangedListener listener) {\r
- getSelectionProvider().addSelectionChangedListener(listener);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on PageBookView.\r
- */\r
- protected IPage createDefaultPage(PageBook book) {\r
- MessagePage page = new MessagePage();\r
- initPage(page);\r
- page.createControl(book);\r
- page.setMessage(defaultText);\r
- return page;\r
- }\r
-\r
- /**\r
- * The <code>PageBookView</code> implementation of this <code>IWorkbenchPart</code>\r
- * method creates a <code>PageBook</code> control with its default page showing.\r
- */\r
- public void createPartControl(Composite parent) {\r
- super.createPartControl(parent);\r
- PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook(),\r
- LAYERS_VIEW_HELP_CONTEXT_ID);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on PageBookView.\r
- */\r
- protected PageRec doCreatePage(IWorkbenchPart part) {\r
- // Try to get an outline page.\r
- ILayersViewPage page = (ILayersViewPage)part.getAdapter(ILayersViewPage.class);\r
- if (page != null) {\r
- if (page instanceof IPageBookViewPage) {\r
- initPage((IPageBookViewPage) page);\r
- }\r
- page.createControl(getPageBook());\r
- return new PageRec(part, page);\r
- }\r
- // There is no content outline\r
- return null;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on PageBookView.\r
- */\r
- protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {\r
- ILayersViewPage page = (ILayersViewPage) rec.page;\r
- page.dispose();\r
- rec.dispose();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on IAdaptable.\r
- */\r
- @SuppressWarnings("rawtypes")\r
- public Object getAdapter(Class key) {\r
- if (key == IContributedContentsView.class) {\r
- return new IContributedContentsView() {\r
- public IWorkbenchPart getContributingPart() {\r
- return getContributingEditor();\r
- }\r
- };\r
- }\r
- return super.getAdapter(key);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on PageBookView.\r
- */\r
- protected IWorkbenchPart getBootstrapPart() {\r
- IWorkbenchPage page = getSite().getPage();\r
- if (page != null) {\r
- return page.getActiveEditor();\r
- }\r
-\r
- return null;\r
- }\r
-\r
- /**\r
- * Returns the editor which contributed the current \r
- * page to this view.\r
- *\r
- * @return the editor which contributed the current page\r
- * or <code>null</code> if no editor contributed the current page\r
- */\r
- private IWorkbenchPart getContributingEditor() {\r
- return getCurrentContributingPart();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on ISelectionProvider.\r
- */\r
- public ISelection getSelection() {\r
- // get the selection from the selection provider\r
- return getSelectionProvider().getSelection();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on PageBookView.\r
- * We only want to track editors.\r
- */\r
- protected boolean isImportant(IWorkbenchPart part) {\r
- //We only care about editors\r
- return (part instanceof IEditorPart);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on IViewPart.\r
- * Treat this the same as part activation.\r
- */\r
- public void partBroughtToTop(IWorkbenchPart part) {\r
- partActivated(part);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on ISelectionProvider.\r
- */\r
- public void removeSelectionChangedListener(\r
- ISelectionChangedListener listener) {\r
- getSelectionProvider().removeSelectionChangedListener(listener);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on ISelectionChangedListener.\r
- */\r
- public void selectionChanged(SelectionChangedEvent event) {\r
- getSelectionProvider().selectionChanged(event);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * Method declared on ISelectionProvider.\r
- */\r
- public void setSelection(ISelection selection) {\r
- getSelectionProvider().setSelection(selection);\r
- }\r
-\r
- /**\r
- * The <code>ContentOutline</code> implementation of this <code>PageBookView</code> method\r
- * extends the behavior of its parent to use the current page as a selection provider.\r
- * \r
- * @param pageRec the page record containing the page to show\r
- */\r
- protected void showPageRec(PageRec pageRec) {\r
- IPageSite pageSite = getPageSite(pageRec.page);\r
- ISelectionProvider provider = pageSite.getSelectionProvider();\r
- if (provider == null && (pageRec.page instanceof ILayersViewPage)) {\r
- // This means that the page did not set a provider during its initialization \r
- // so for backward compatibility we will set the page itself as the provider.\r
- pageSite.setSelectionProvider((ILayersViewPage) pageRec.page);\r
- }\r
- super.showPageRec(pageRec);\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.diagram.layer;
+
+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.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.IContributedContentsView;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.ui.part.IPageBookViewPage;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.part.MessagePage;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.ui.part.PageBookView;
+
+public class LayersView extends PageBookView implements ISelectionProvider, ISelectionChangedListener {
+
+ /**
+ * The plugin prefix.
+ */
+ public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
+
+ /**
+ * Help context id used for the content outline view
+ * (value <code>"org.eclipse.ui.content_outline_context"</code>).
+ */
+ public static final String LAYERS_VIEW_HELP_CONTEXT_ID = PREFIX + "layers_context";//$NON-NLS-1$
+
+ /**
+ * Message to show on the default page.
+ */
+ private String defaultText = Messages.LayersView_noLayers;
+
+ /**
+ * Creates a content outline view with no content outline pages.
+ */
+ public LayersView() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * Method declared on ISelectionProvider.
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ getSelectionProvider().addSelectionChangedListener(listener);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on PageBookView.
+ */
+ protected IPage createDefaultPage(PageBook book) {
+ MessagePage page = new MessagePage();
+ initPage(page);
+ page.createControl(book);
+ page.setMessage(defaultText);
+ return page;
+ }
+
+ /**
+ * The <code>PageBookView</code> implementation of this <code>IWorkbenchPart</code>
+ * method creates a <code>PageBook</code> control with its default page showing.
+ */
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook(),
+ LAYERS_VIEW_HELP_CONTEXT_ID);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on PageBookView.
+ */
+ protected PageRec doCreatePage(IWorkbenchPart part) {
+ // Try to get an outline page.
+ ILayersViewPage page = (ILayersViewPage)part.getAdapter(ILayersViewPage.class);
+ if (page != null) {
+ if (page instanceof IPageBookViewPage) {
+ initPage((IPageBookViewPage) page);
+ }
+ page.createControl(getPageBook());
+ return new PageRec(part, page);
+ }
+ // There is no content outline
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * Method declared on PageBookView.
+ */
+ protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {
+ ILayersViewPage page = (ILayersViewPage) rec.page;
+ page.dispose();
+ rec.dispose();
+ }
+
+ /* (non-Javadoc)
+ * Method declared on IAdaptable.
+ */
+ @SuppressWarnings("rawtypes")
+ public Object getAdapter(Class key) {
+ if (key == IContributedContentsView.class) {
+ return new IContributedContentsView() {
+ public IWorkbenchPart getContributingPart() {
+ return getContributingEditor();
+ }
+ };
+ }
+ return super.getAdapter(key);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on PageBookView.
+ */
+ protected IWorkbenchPart getBootstrapPart() {
+ IWorkbenchPage page = getSite().getPage();
+ if (page != null) {
+ return page.getActiveEditor();
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the editor which contributed the current
+ * page to this view.
+ *
+ * @return the editor which contributed the current page
+ * or <code>null</code> if no editor contributed the current page
+ */
+ private IWorkbenchPart getContributingEditor() {
+ return getCurrentContributingPart();
+ }
+
+ /* (non-Javadoc)
+ * Method declared on ISelectionProvider.
+ */
+ public ISelection getSelection() {
+ // get the selection from the selection provider
+ return getSelectionProvider().getSelection();
+ }
+
+ /* (non-Javadoc)
+ * Method declared on PageBookView.
+ * We only want to track editors.
+ */
+ protected boolean isImportant(IWorkbenchPart part) {
+ //We only care about editors
+ return (part instanceof IEditorPart);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on IViewPart.
+ * Treat this the same as part activation.
+ */
+ public void partBroughtToTop(IWorkbenchPart part) {
+ partActivated(part);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on ISelectionProvider.
+ */
+ public void removeSelectionChangedListener(
+ ISelectionChangedListener listener) {
+ getSelectionProvider().removeSelectionChangedListener(listener);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on ISelectionChangedListener.
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ getSelectionProvider().selectionChanged(event);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on ISelectionProvider.
+ */
+ public void setSelection(ISelection selection) {
+ getSelectionProvider().setSelection(selection);
+ }
+
+ /**
+ * The <code>ContentOutline</code> implementation of this <code>PageBookView</code> method
+ * extends the behavior of its parent to use the current page as a selection provider.
+ *
+ * @param pageRec the page record containing the page to show
+ */
+ protected void showPageRec(PageRec pageRec) {
+ IPageSite pageSite = getPageSite(pageRec.page);
+ ISelectionProvider provider = pageSite.getSelectionProvider();
+ if (provider == null && (pageRec.page instanceof ILayersViewPage)) {
+ // This means that the page did not set a provider during its initialization
+ // so for backward compatibility we will set the page itself as the provider.
+ pageSite.setSelectionProvider((ILayersViewPage) pageRec.page);
+ }
+ super.showPageRec(pageRec);
+ }
+}