/******************************************************************************* * Copyright (c) 2014 Bruno Medeiros and other Contributors. * 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: * Bruno Medeiros - initial API and implementation *******************************************************************************/ package melnorme.util.swt.components.fields; import static melnorme.utilbox.core.CoreUtil.array; import org.eclipse.jface.layout.PixelConverter; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import melnorme.util.swt.SWTLayoutUtil; public class TextFieldExt extends TextFieldWidget { protected final int textLimit; public TextFieldExt(String labelText, int textLimit) { super(labelText, SWT.BORDER | SWT.SINGLE); this.textLimit = textLimit; } @Override protected Text createText(Composite parent) { Text text = super.createText(parent); text.setTextLimit(textLimit); return text; } @Override protected void createContents_layout() { SWTLayoutUtil.layoutControls(array(label, text), null, text); GridData textGD = (GridData) text.getLayoutData(); PixelConverter pixelConverter = new PixelConverter(text.getParent()); textGD.widthHint = pixelConverter.convertWidthInCharsToPixels(textLimit + 1); } }