package com.dubture.composer.ui.utils; import org.eclipse.swt.SWT; 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.Text; import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.FormToolkit; public class WidgetFactory { protected FormToolkit toolkit; public WidgetFactory(FormToolkit toolkit) { this.toolkit = toolkit; } private static WidgetFactory builder(FormToolkit toolkit) { return new WidgetFactory(toolkit); } // ---- Button public Button createButton(Composite parent) { return createButton(parent, SWT.DEFAULT); } public static Button createButton(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createButton(parent); } public Button createButton(Composite parent, int style) { if (toolkit == null) { return new Button(parent, style); } else { return toolkit.createButton(parent, "", style); } } public static Button createButton(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createButton(parent, style); } // ---- Label public Label createLabel(Composite parent) { return createLabel(parent, SWT.NONE); } public static Label createLabel(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createLabel(parent); } public Label createLabel(Composite parent, int style) { if (toolkit == null) { return new Label(parent, style); } else { return toolkit.createLabel(parent, "", style); } } public static Label createLabel(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createLabel(parent, style); } // ---- Composite public Composite createComposite(Composite parent) { return createComposite(parent, SWT.NONE); } public static Composite createComposite(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createComposite(parent); } public Composite createComposite(Composite parent, int style) { if (toolkit == null) { return new Composite(parent, style); } else { return toolkit.createComposite(parent, style); } } public static Composite createComposite(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createComposite(parent, style); } // ---- ExpandableComposite public ExpandableComposite createExpandableComposite(Composite parent) { return createExpandableComposite(parent, SWT.NONE); } public static ExpandableComposite createExpandableComposite(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createExpandableComposite(parent); } public ExpandableComposite createExpandableComposite(Composite parent, int style) { if (toolkit == null) { return new ExpandableComposite(parent, style); } else { return toolkit.createExpandableComposite(parent, style); } } public static ExpandableComposite createExpandableComposite(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createExpandableComposite(parent, style); } public ExpandableComposite createExpandableComposite(Composite parent, int style, int expansionStyle) { if (toolkit == null) { return new ExpandableComposite(parent, style, expansionStyle); } else { ExpandableComposite ec = new ExpandableComposite(parent, style | toolkit.getOrientation(), expansionStyle); ec.setMenu(parent.getMenu()); toolkit.adapt(ec, true, true); return ec; } } // ---- Text public Text createText(Composite parent) { return createText(parent, SWT.DEFAULT); } public static Text createText(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createText(parent); } public Text createText(Composite parent, int style) { if (toolkit == null) { return new Text(parent, style); } else { return toolkit.createText(parent, "", style); } } public static Text createText(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createText(parent, style); } // ---- ComboBox public Combo createCombo(Composite parent) { return createCombo(parent, SWT.BORDER); } public static Combo createCombo(FormToolkit toolkit, Composite parent) { return WidgetFactory.builder(toolkit).createCombo(parent); } public Combo createCombo(Composite parent, int style) { if (toolkit == null) { return new Combo(parent, style); } else { Combo combo = new Combo(parent, style); toolkit.adapt(combo, false, false); return combo; } } public static Combo createCombo(FormToolkit toolkit, Composite parent, int style) { return WidgetFactory.builder(toolkit).createCombo(parent, style); } }