blob: 31ed2c09f47a5b2260bbe3ef37e4617906da1f78 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 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 implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.properties;
import org.eclipse.epf.authoring.ui.AuthoringUIImages;
import org.eclipse.epf.authoring.ui.AuthoringUIResources;
import org.eclipse.epf.authoring.ui.forms.BaseFormPage;
import org.eclipse.epf.authoring.ui.forms.MethodFormToolkit;
import org.eclipse.epf.authoring.ui.richtext.IMethodRichText;
import org.eclipse.epf.authoring.ui.util.RichTextImageLinkContainer;
import org.eclipse.epf.uma.MethodElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ImageHyperlink;
import org.eclipse.ui.forms.widgets.Section;
/**
* The UI util class tailored for properties view for process authoring
*
* @author Shilpa Toraskar
* @author Kelvin Low
* @since 1.0
*/
public class FormUI {
private static final int DEFAULT_WIDTH = 300;
private static Label _createLabel(FormToolkit toolkit, Composite parent,
String str, int gridDataStyle, int horizontalSpan) {
Label label = toolkit.createLabel(parent, str);
GridData gridData = new GridData(gridDataStyle);
gridData.horizontalSpan = horizontalSpan;
label.setLayoutData(gridData);
return label;
}
public static Label createLabel(FormToolkit toolkit, Composite parent,
String str) {
// make horizonatalSpan 1
return _createLabel(toolkit, parent, str, GridData.BEGINNING, 1);
}
public static Label createLabel(FormToolkit toolkit, Composite parent,
String str, int horizontalSpan) {
// make horizonatalSpan 2
return _createLabel(toolkit, parent, str, GridData.BEGINNING,
horizontalSpan);
}
private static Text _createText(FormToolkit toolkit, Composite parent,
int textStyle, int gridDataStyle, int height, int width,
int horizontalSpan) {
Text control = toolkit.createText(parent, "", textStyle); //$NON-NLS-1$
GridData gridData = new GridData(gridDataStyle);
gridData.heightHint = height;
gridData.widthHint = width;
gridData.horizontalSpan = horizontalSpan;
control.setLayoutData(gridData);
return control;
}
public static Text createText(FormToolkit toolkit, Composite parent) {
return _createText(toolkit, parent, SWT.SINGLE | SWT.WRAP,
GridData.FILL_HORIZONTAL, SWT.DEFAULT, DEFAULT_WIDTH,
SWT.DEFAULT);
}
public static Text createText(FormToolkit toolkit, Composite parent,
int height) {
return _createText(toolkit, parent, SWT.MULTI | SWT.WRAP,
GridData.FILL_HORIZONTAL, height, DEFAULT_WIDTH, SWT.DEFAULT);
}
public static Text createText(FormToolkit toolkit, Composite parent,
int height, int horizontalSpan) {
return _createText(toolkit, parent, SWT.SINGLE | SWT.WRAP,
GridData.FILL_HORIZONTAL, height, DEFAULT_WIDTH, horizontalSpan);
}
private static IMethodRichText _createRichText(FormToolkit toolkit,
Composite parent, int height, int width, String path,
MethodElement methodElement, Label label) {
IMethodRichText control = MethodFormToolkit.createRichText(toolkit,
parent,
"", SWT.MULTI | SWT.WRAP | SWT.V_SCROLL, path, methodElement, label); //$NON-NLS-1$
GridData gridData = new GridData(GridData.FILL_HORIZONTAL
| GridData.FILL_VERTICAL);
gridData.heightHint = height;
gridData.widthHint = width;
control.setLayoutData(gridData);
return control;
}
public static RichTextImageLinkContainer createRichTextWithLink(FormToolkit toolkit,
Composite parent, int height, String path,
MethodElement methodElement, String labelText) {
ImageHyperlink link = createImageHyperLink(toolkit, parent, AuthoringUIImages.IMG_COLLAPSED,
AuthoringUIResources.openRTE);
link.setData("Title", labelText); //$NON-NLS-1$
Label decoratedLabel = BaseFormPage.createDecoratedLabel(toolkit, parent, labelText);
((GridData)decoratedLabel.getLayoutData()).verticalAlignment = SWT.CENTER;
IMethodRichText control = _createRichText(toolkit, parent, height, DEFAULT_WIDTH, path,
methodElement, decoratedLabel);
link.setHref(control);
return new RichTextImageLinkContainer(control, link, decoratedLabel);
}
public static ImageHyperlink createImageHyperLink(FormToolkit toolkit,
Composite parent, Image image, String toolTip) {
ImageHyperlink link = toolkit.createImageHyperlink(parent, SWT.LEFT
| SWT.TOP);
GridData gridData = new GridData(GridData.BEGINNING);
link.setLayoutData(gridData);
link.setImage(image);
link.setToolTipText(toolTip);
return link;
}
public static Section createSection(FormToolkit toolkit, Composite parent,
String title, String description) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION
| Section.TWISTIE | Section.EXPANDED);
GridData gd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(gd);
section.setText(title);
section.setDescription(description);
toolkit.createCompositeSeparator(section);
section.setLayout(new GridLayout());
return section;
}
public static Section createSection(FormToolkit toolkit, Composite parent,
String title, String description, int gdStyle) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION
| Section.TWISTIE | Section.EXPANDED);
GridData gd = new GridData(gdStyle);
section.setLayoutData(gd);
section.setText(title);
section.setDescription(description);
toolkit.createCompositeSeparator(section);
section.setLayout(new GridLayout());
return section;
}
public static Composite createComposite(FormToolkit toolkit,
Section section, int numOfColumns, boolean expanded) {
Composite composite = toolkit.createComposite(section);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
composite.setLayout(new GridLayout(numOfColumns, false));
if (!expanded)
section.setClient(composite);
else
composite.setVisible(false);
return composite;
}
public static Composite createComposite(FormToolkit toolkit,
Composite parent, int gridStyle) {
Composite pane = toolkit.createComposite(parent, SWT.NONE);
GridData gridData = new GridData(gridStyle);
pane.setLayoutData(gridData);
pane.setLayout(new GridLayout());
return pane;
}
public static Composite createComposite(FormToolkit toolkit,
Composite parent, int gridStyle, int numOfColumns,
boolean equalSizeColumn) {
Composite pane = toolkit.createComposite(parent, SWT.NONE);
GridData gridData = new GridData(gridStyle);
gridData.horizontalSpan = numOfColumns;
pane.setLayoutData(gridData);
GridLayout layout = new GridLayout(numOfColumns, equalSizeColumn);
layout.marginBottom = 0;
layout.marginHeight = 0;
layout.marginLeft = 0;
layout.marginRight = 0;
layout.marginWidth = 0;
pane.setLayout(layout);
return pane;
}
private static Button _createButton(FormToolkit toolkit, Composite parent,
String buttonStr, int style, int horizontalSpan) {
Button control = toolkit.createButton(parent, buttonStr, style);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = horizontalSpan;
control.setLayoutData(gridData);
return control;
}
private static Button _createButton(FormToolkit toolkit, Composite parent,
String buttonStr, int style) {
Button control = toolkit.createButton(parent, buttonStr, style);
control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
return control;
}
private static Combo _createCombo(FormToolkit toolkit, Composite parent,
int style, int horizontalSpan) {
Combo combo = new Combo(parent, style);
GridData gridData = new GridData(GridData.BEGINNING);
gridData.horizontalSpan = horizontalSpan;
combo.setLayoutData(gridData);
return combo;
}
public static Combo createCombo(FormToolkit toolkit, Composite parent,
int horizontalSpan) {
return _createCombo(toolkit, parent, SWT.SINGLE | SWT.FLAT
| SWT.READ_ONLY, horizontalSpan);
}
public static Button createButton(FormToolkit toolkit, Composite parent,
String buttonStr) {
return _createButton(toolkit, parent, buttonStr, SWT.NONE);
}
public static Button createButton(FormToolkit toolkit, Composite parent,
int style, int horizontalSpan) {
return _createButton(toolkit, parent, "", style, horizontalSpan); //$NON-NLS-1$
}
public static Button createCheckButton(FormToolkit toolkit, Composite parent, int horizontalSpan)
{
Button control = toolkit.createButton(parent, "", SWT.CHECK); //$NON-NLS-1$
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL);
gridData.horizontalSpan = horizontalSpan;
control.setLayoutData(gridData);
return control;
}
private static Table _createTable(FormToolkit toolkit, Composite parent,
int tableStyle, int gridStyle, int height, int width,
int verticalSpan, int horizontalSpan) {
Table table = toolkit.createTable(parent, tableStyle);
GridData gridData = new GridData(gridStyle);
gridData.heightHint = height;
gridData.widthHint = width;
gridData.verticalSpan = verticalSpan;
gridData.horizontalSpan = horizontalSpan;
table.setLayoutData(gridData);
return table;
}
public static Table createTable(FormToolkit toolkit, Composite parent) {
return _createTable(toolkit, parent, SWT.MULTI, GridData.FILL_BOTH,
200, 200, 1, 1);
}
public static Table createTable(FormToolkit toolkit, Composite parent,
int height) {
return _createTable(toolkit, parent, SWT.MULTI, GridData.FILL_BOTH,
height, 200, 1, 1);
}
}