+++ /dev/null
-/*******************************************************************************\r
- * Copyright (c) 2007- VTT Technical Research Centre of Finland.\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.proconf.g3d.views;\r
-\r
-import org.eclipse.jface.viewers.ISelection;\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.Control;\r
-import org.eclipse.ui.ISelectionListener;\r
-import org.eclipse.ui.IWorkbenchPart;\r
-import org.eclipse.ui.forms.events.ExpansionAdapter;\r
-import org.eclipse.ui.forms.events.ExpansionEvent;\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.simantics.proconf.ui.workbench.GraphAccessViewPart;\r
-import org.simantics.utils.ui.jface.BaseSelectionProvider;\r
-\r
-public abstract class SinglePageResourceView extends GraphAccessViewPart{\r
- protected Composite parent;\r
- private ScrolledForm form;\r
- private BaseSelectionProvider defaultInputSelectionProvider = new BaseSelectionProvider();\r
- protected FormToolkit toolkit;\r
- protected ISelectionListener pageSelectionListener;\r
- \r
- @Override\r
- public void createPartControl(Composite parent) {\r
- super.createPartControl(parent);\r
- this.parent = parent;\r
-\r
- toolkit = new FormToolkit(parent.getDisplay());\r
- form = getToolkit().createScrolledForm(parent);\r
-\r
- GridLayout layout = new GridLayout(2, false);\r
- form.getBody().setLayout(layout);\r
- form.getBody().setLayoutData(\r
- new GridData(GridData.FILL, GridData.FILL, true, true));\r
-\r
- getViewSite().setSelectionProvider(defaultInputSelectionProvider);\r
-\r
- // createWidgets();\r
-\r
- form.setText(getFormText());\r
-\r
- hookPageSelection();\r
-\r
- }\r
- \r
- \r
- /**\r
- * Receives selection changes\r
- * \r
- * @param part\r
- * @param selection\r
- */\r
- protected void pageSelectionChanged(IWorkbenchPart part, ISelection selection) {\r
- \r
- }\r
- \r
- \r
- \r
- \r
- \r
- protected abstract String getFormText();\r
- \r
- protected abstract void createWidgets();\r
- \r
- @Override\r
- public void setFocus() {\r
- //System.out.println("FormTypeEditorBase.setFocus(): Input = " + getInput());\r
- ScrolledForm form = getActiveForm();\r
- if (form != null) {\r
- form.setFocus();\r
- }\r
- }\r
- \r
- public FormToolkit getToolkit() {\r
- return toolkit;\r
- }\r
- \r
- public ScrolledForm getActiveForm() {\r
- return form;\r
- }\r
- \r
- public void clearForm() {\r
- for (Control c : form.getBody().getChildren())\r
- c.dispose();\r
- \r
- }\r
- \r
- protected Composite getBody() {\r
- return form.getBody();\r
- }\r
- \r
- public Composite newGridSection(\r
- int formColumns,\r
- int childColumns,\r
- boolean equalWidth,\r
- boolean grabVertical,\r
- String text,\r
- String description) \r
- {\r
- return newGridSection(getBody(), formColumns, childColumns, equalWidth, grabVertical, text, description);\r
- }\r
-\r
- public Composite newGridSection(\r
- Composite parent,\r
- int formColumns,\r
- int childColumns,\r
- boolean equalWidth,\r
- boolean grabVertical,\r
- String text,\r
- String description)\r
- {\r
- FormToolkit toolkit = getToolkit();\r
- \r
- Section section = toolkit.createSection(parent,\r
- Section.DESCRIPTION | Section.TWISTIE | Section.TITLE_BAR | Section.EXPANDED);\r
- section.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, grabVertical, formColumns, 1));\r
- section.addExpansionListener(new ExpansionAdapter() {\r
- public void expansionStateChanged(ExpansionEvent e) {\r
- //System.out.println("SinglePageTypeEditor: expansionStateChanged " + e);\r
- //reflow(true);\r
- }\r
- });\r
- section.setText(text);\r
- section.setDescription(description);\r
- Composite sectionClient = toolkit.createComposite(section);\r
- sectionClient.setLayout(new GridLayout(childColumns, equalWidth));\r
- sectionClient.setLayoutData(new GridData());\r
- section.setClient(sectionClient);\r
- return sectionClient;\r
- }\r
- \r
- public void dispose() {\r
- if (pageSelectionListener != null)\r
- getSite().getPage().removePostSelectionListener(pageSelectionListener);\r
- \r
- super.dispose();\r
- }\r
- \r
- private void hookPageSelection() {\r
- pageSelectionListener = new ISelectionListener() {\r
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {\r
- if (part == SinglePageResourceView.this)\r
- return;\r
- pageSelectionChanged(part, selection);\r
- }\r
- };\r
- getSite().getPage().addPostSelectionListener(pageSelectionListener);\r
- ISelection sel = getSite().getPage().getSelection();\r
- IWorkbenchPart wb = getSite().getPage().getActivePart();\r
- pageSelectionChanged(wb, sel);\r
- }\r
- \r
-}\r