/* * Deragon Informatique inc. Copyright 2003. * @author Hans Deragon * Created on 2003-04-21 * * This code is released under the LGPL license. For text of the license, * see http://www.gnu.org/licenses/lgpl.html */ package biz.deragon.swt.examples; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import biz.deragon.swt.layout.FormLayoutColumn; import biz.deragon.swt.models.NumberModel; import biz.deragon.swt.models.StringModel; import biz.deragon.swt.widgets.WText; import biz.deragon.swt.widgets.WidgetWithModel; /** * @author Hans Deragon */ public class TextFields extends ApplicationWindow { private StringModel mStringModelEmpty = null; private StringModel mStringModel1 = null; private StringModel mStringModel2 = null; private NumberModel mNumberModelEmpty = null; private NumberModel mNumberModelDouble1 = null; private NumberModel mNumberModelDouble2 = null; private NumberModel mNumberModelInt1 = null; public TextFields(Shell parent) { super(parent); mStringModelEmpty = new StringModel(); mStringModelEmpty.setTextLimit(10); mStringModel1 = new StringModel("Text"); mStringModel1.setTextLimit(11); // Patterns do not work yet. mStringModel2 = new StringModel("(514) 123-4567"); mStringModel2.setPattern("\\(\\d{3}\\) \\d{3}-\\d{4}"); mNumberModelEmpty = new NumberModel(); mNumberModelEmpty.setTextLimit(10); mNumberModelDouble1 = new NumberModel(1234); mNumberModelDouble1.setTextLimit(4); mNumberModelDouble1.setPrecision(4); mNumberModelDouble2 = new NumberModel(5678); mNumberModelDouble2.setTextLimit(12); mNumberModelDouble2.setPattern("000.##"); mNumberModelInt1 = new NumberModel(1234); mNumberModelInt1.setTextLimit(6); mNumberModelInt1.setType(NumberModel.INTEGER); } // protected Point getInitialSize() // { // return getShell().computeSize(640, 480, true); // } public Control createContents(Composite parent2) { Composite parent = new Composite(parent2, SWT.NULL); FillLayout layout = new FillLayout(); parent.setLayout(layout); makeColumn(parent, All.ORIGINAL); makeColumn(parent, All.COPY); return parent2; } private void makeColumn(Composite parent, int type) { WText widget; WidgetWithModel.setDefaultShowChange(true); Composite cmp = new Composite(parent, SWT.BORDER); FormLayout layout = new FormLayout(); layout.marginHeight = 5; layout.marginWidth = 5; cmp.setLayout(layout); FormLayoutColumn flCol = new FormLayoutColumn(cmp, 0, 10, 5, 5); String titleLabel; if (type == All.ORIGINAL) titleLabel = "Original fields"; else titleLabel = "Mirror fields"; Label header = new Label(cmp, SWT.NULL); header.setText(titleLabel); Font font = new Font(parent.getDisplay(), "Arial", 14, SWT.BOLD); header.setFont(font); flCol.setHeader(header); Text text1 = new Text(cmp, SWT.BORDER); text1.setTextLimit(10); flCol.add("An SWT Text (no model):", text1); widget = new WText(cmp, SWT.BORDER, mStringModelEmpty); flCol.add("An empty text field:", widget); widget = new WText(cmp, SWT.BORDER, mStringModel1); flCol.add("A text field with default text:", widget); // widget = new WText(cmp, SWT.BORDER, mStringModel2); // flCol.add("A text field with regexp pattern:", widget); widget = new WText(cmp, SWT.BORDER, mNumberModelEmpty); flCol.add("A empty number field:", widget); widget = new WText(cmp, SWT.BORDER, mNumberModelDouble1); widget.setPreferredWidth(10); flCol.add("A number field (1234):", widget); widget = new WText(cmp, SWT.BORDER, mNumberModelDouble2); flCol.add("A number field (5678):", widget); widget = new WText(cmp, SWT.BORDER, mNumberModelInt1); flCol.add("An integer field (1234):", widget); flCol.layout(); } public static void main(String[] args) { TextFields window = new TextFields(null); window.setBlockOnOpen(true); window.open(); } }