| /******************************************************************************* |
| * Copyright (c) 2001, 2006 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 |
| *******************************************************************************/ |
| package org.eclipse.ui.views.properties.tabbed; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.custom.CCombo; |
| import org.eclipse.swt.custom.CLabel; |
| import org.eclipse.swt.custom.CTabFolder; |
| import org.eclipse.swt.custom.CTabItem; |
| import org.eclipse.swt.custom.ScrolledComposite; |
| import org.eclipse.swt.layout.FormLayout; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.swt.widgets.Group; |
| import org.eclipse.swt.widgets.List; |
| import org.eclipse.ui.forms.widgets.FormToolkit; |
| |
| /** |
| * A FormToolkit customized for use by tabbed property sheet page. |
| * |
| * @author Anthony Hunter |
| */ |
| public class TabbedPropertySheetWidgetFactory |
| extends FormToolkit { |
| |
| /** |
| * private constructor. |
| */ |
| public TabbedPropertySheetWidgetFactory() { |
| super(Display.getCurrent()); |
| } |
| |
| /** |
| * Creates the tab folder as a part of the form. |
| * |
| * @param parent |
| * the composite parent. |
| * @param style |
| * the tab folder style. |
| * @return the tab folder |
| */ |
| public CTabFolder createTabFolder(Composite parent, int style) { |
| CTabFolder tabFolder = new CTabFolder(parent, style); |
| return tabFolder; |
| } |
| |
| /** |
| * Creates the tab item as a part of the tab folder. |
| * |
| * @param tabFolder |
| * the parent. |
| * @param style |
| * the tab folder style. |
| * @return the tab item. |
| */ |
| public CTabItem createTabItem(CTabFolder tabFolder, int style) { |
| CTabItem tabItem = new CTabItem(tabFolder, style); |
| return tabItem; |
| } |
| |
| /** |
| * Creates the list as a part of the form. |
| * |
| * @param parent |
| * the composite parent. |
| * @param style |
| * the list style. |
| * @return the list. |
| */ |
| public List createList(Composite parent, int style) { |
| List list = new org.eclipse.swt.widgets.List(parent, style); |
| return list; |
| } |
| |
| public Composite createComposite(Composite parent, int style) { |
| Composite c = super.createComposite(parent, style); |
| paintBordersFor(c); |
| return c; |
| } |
| |
| public Composite createComposite(Composite parent) { |
| Composite c = createComposite(parent, SWT.NONE); |
| return c; |
| } |
| |
| /** |
| * Creates a plain composite as a part of the form. |
| * |
| * @param parent |
| * the composite parent. |
| * @param style |
| * the composite style. |
| * @return the composite. |
| */ |
| public Composite createPlainComposite(Composite parent, int style) { |
| Composite c = super.createComposite(parent, style); |
| c.setBackground(parent.getBackground()); |
| paintBordersFor(c); |
| return c; |
| } |
| |
| /** |
| * Creates a scrolled composite as a part of the form. |
| * |
| * @param parent |
| * the composite parent. |
| * @param style |
| * the composite style. |
| * @return the composite. |
| */ |
| public ScrolledComposite createScrolledComposite(Composite parent, int style) { |
| ScrolledComposite scrolledComposite = new ScrolledComposite(parent, |
| style); |
| return scrolledComposite; |
| } |
| |
| /** |
| * Creates a combo box as a part of the form. |
| * |
| * @param parent |
| * the combo box parent. |
| * @param comboStyle |
| * the combo box style. |
| * @return the combo box. |
| */ |
| public CCombo createCCombo(Composite parent, int comboStyle) { |
| CCombo combo = new CCombo(parent, comboStyle); |
| adapt(combo, true, false); |
| // Bugzilla 145837 - workaround for no borders on Windows XP |
| if (getBorderStyle() == SWT.BORDER) { |
| combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); |
| } |
| return combo; |
| } |
| |
| /** |
| * Creates a combo box as a part of the form. |
| * |
| * @param parent |
| * the combo box parent. |
| * @return the combo box. |
| */ |
| public CCombo createCCombo(Composite parent) { |
| return createCCombo(parent, SWT.FLAT | SWT.READ_ONLY); |
| } |
| |
| /** |
| * Creates a group as a part of the form. |
| * |
| * @param parent |
| * the group parent. |
| * @param text |
| * the group title. |
| * @return the composite. |
| */ |
| public Group createGroup(Composite parent, String text) { |
| Group group = new Group(parent, SWT.SHADOW_NONE); |
| group.setText(text); |
| group.setBackground(getColors().getBackground()); |
| group.setForeground(getColors().getForeground()); |
| return group; |
| } |
| |
| /** |
| * Creates a flat form composite as a part of the form. |
| * |
| * @param parent |
| * the composite parent. |
| * @return the composite. |
| */ |
| public Composite createFlatFormComposite(Composite parent) { |
| Composite composite = createComposite(parent); |
| FormLayout layout = new FormLayout(); |
| layout.marginWidth = ITabbedPropertyConstants.HSPACE + 2; |
| layout.marginHeight = ITabbedPropertyConstants.VSPACE; |
| layout.spacing = ITabbedPropertyConstants.VMARGIN + 1; |
| composite.setLayout(layout); |
| return composite; |
| } |
| |
| /** |
| * Creates a label as a part of the form. |
| * |
| * @param parent |
| * the label parent. |
| * @param text |
| * the label text. |
| * @return the label. |
| */ |
| public CLabel createCLabel(Composite parent, String text) { |
| return createCLabel(parent, text, SWT.NONE); |
| } |
| |
| /** |
| * Creates a label as a part of the form. |
| * |
| * @param parent |
| * the label parent. |
| * @param text |
| * the label text. |
| * @param style |
| * the label style. |
| * @return the label. |
| */ |
| public CLabel createCLabel(Composite parent, String text, int style) { |
| final CLabel label = new CLabel(parent, style); |
| label.setBackground(parent.getBackground()); |
| label.setText(text); |
| return label; |
| } |
| |
| public void dispose() { |
| if (getColors() != null) { |
| super.dispose(); |
| } |
| } |
| } |