package com.amazonaws.eclipse.core.ui.wizards;
import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.jface.fieldassist.FieldDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.SelectionListener;
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.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
public class WizardWidgetFactory {
public static ControlDecoration newControlDecoration(Control control, String message) {
ControlDecoration decoration = new ControlDecoration(control, SWT.LEFT | SWT.TOP);
decoration.setDescriptionText(message);
FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
decoration.setImage(fieldDecoration.getImage());
return decoration;
}
public static Group newGroup(Composite parent, String text) {
return newGroup(parent, text, 1);
}
public static Group newGroup(Composite parent, String text, int colspan) {
return newGroup(parent, text, colspan, 1);
}
public static Group newGroup(Composite parent, String text, int colspan, int cols) {
Group group = new Group(parent, SWT.NONE);
group.setText(text);
GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
gridData.horizontalSpan = colspan;
group.setLayoutData(gridData);
group.setLayout(new GridLayout(cols, false));
return group;
}
public static SashForm newSashForm(Composite parent, int colspan, int cols) {
SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL);
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
gridData.horizontalSpan = colspan;
gridData.widthHint = 300;
gridData.heightHint = 200;
sashForm.setLayoutData(gridData);
sashForm.setLayout(new GridLayout(cols, false));
return sashForm;
}
public static Text newText(Composite parent) {
return newText(parent, "");
}
public static Text newText(Composite parent, String value) {
return newText(parent, value, 1);
}
public static Text newText(Composite parent, String value, int colspan) {
Text text = new Text(parent, SWT.BORDER);
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
gridData.horizontalSpan = colspan;
text.setLayoutData(gridData);
text.setText(value);
return text;
}
public static Label newLabel(Composite parent, String text) {
return newLabel(parent, text, 1);
}
public static Label newFillingLabel(Composite parent, String text) {
return newFillingLabel(parent, text, 1);
}
public static Label newFillingLabel(Composite parent, String text, int colspan) {
Label label = new Label(parent, SWT.WRAP);
label.setText(text);
GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
gridData.horizontalSpan = colspan;
gridData.widthHint = 100;
label.setLayoutData(gridData);
return label;
}
public static Label newLabel(Composite parent, String text, int colspan) {
Label label = new Label(parent, SWT.WRAP);
label.setText(text);
GridData gridData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gridData.horizontalSpan = colspan;
label.setLayoutData(gridData);
return label;
}
public static Link newLink(Composite composite, Listener linkListener, String linkText, int colspan) {
Link link = new Link(composite, SWT.WRAP);
link.setText(linkText);
link.addListener(SWT.Selection, linkListener);
GridData data = new GridData(SWT.FILL, SWT.TOP, true, false);
data.horizontalSpan = colspan;
data.widthHint = 100;
link.setLayoutData(data);
return link;
}
public static Combo newCombo(Composite parent) {
return newCombo(parent, 1);
}
public static List newList(Composite parent) {
return newList(parent, 1);
}
public static Combo newCombo(Composite parent, int colspan) {
Combo combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
gridData.horizontalSpan = colspan;
combo.setLayoutData(gridData);
return combo;
}
public static ComboViewer newComboViewer(Composite parent) {
return newComboViewer(parent, 1);
}
public static ComboViewer newComboViewer(Composite parent, int colspan) {
ComboViewer comboViewer = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
gridData.horizontalSpan = colspan;
comboViewer.getCombo().setLayoutData(gridData);
return comboViewer;
}
public static Button newCheckbox(Composite parent, String text, int colspan) {
Button button = new Button(parent, SWT.CHECK);
button.setText(text);
GridData gridData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gridData.horizontalSpan = colspan;
button.setLayoutData(gridData);
return button;
}
public static Button newRadioButton(Composite parent, String text, int colspan,
boolean selected, SelectionListener selectionListener) {
Button radioButton = new Button(parent, SWT.RADIO);
radioButton.setText(text);
GridData gridData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gridData.horizontalSpan = colspan;
radioButton.setLayoutData(gridData);
radioButton.addSelectionListener(selectionListener);
radioButton.setSelection(selected);
return radioButton;
}
public static Button newPushButton(Composite parent, String text) {
return newPushButton(parent, text, 1);
}
public static Button newPushButton(Composite parent, String text, int colspan) {
Button pushButton = new Button(parent, SWT.PUSH);
pushButton.setText(text);
GridData gridData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gridData.horizontalSpan = colspan;
pushButton.setLayoutData(gridData);
return pushButton;
}
public static List newList(Composite parent, int colspan) {
List list = new List(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
gridData.horizontalSpan = colspan;
gridData.verticalSpan = 1;
gridData.heightHint = 150;
list.setLayoutData(gridData);
return list;
}
}