package com.robotoworks.mechanoid.ui.wizard.fields;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
public class TextField {
private Label mLabel;
private Text mTextField;
public Text getTextField() {
return mTextField;
}
public TextField(Composite parent, String labelText) {
this(parent, labelText, true);
}
public TextField(Composite parent, String labelText, boolean fillRemainingColumns) {
mLabel = new Label(parent, SWT.NONE);
mLabel.setText(labelText);
mLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
mLabel.setFont(parent.getFont());
mTextField = new Text(parent, SWT.BORDER);
mTextField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
mTextField.setFont(parent.getFont());
mTextField.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
onTextChanged(e);
}
});
addDummyFillerLabel(parent, fillRemainingColumns);
}
protected void addDummyFillerLabel(Composite parent, boolean fillRemainingColumns) {
//
// Fill any excess columns with a dummy label
//
if(parent.getLayout() instanceof GridLayout && fillRemainingColumns) {
GridLayout grid = (GridLayout) parent.getLayout();
int remainingColumns = grid.numColumns - 2;
Label dummy = new Label(parent, SWT.NONE);
GridData dummyData = new GridData(SWT.FILL, SWT.CENTER, false, false);
dummyData.horizontalSpan = remainingColumns > 1 ? remainingColumns : 1;
dummy.setLayoutData(dummyData);
}
}
protected void onTextChanged(ModifyEvent e) {
}
}