package edu.ualberta.med.biobank.widgets; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import edu.ualberta.med.biobank.gui.common.widgets.BgcBaseText; import edu.ualberta.med.biobank.gui.common.widgets.BgcBaseWidget; public class ComboAndQuantityWidget extends BgcBaseWidget { private Combo valuesCombo; private BgcBaseText quantitiesText; public ComboAndQuantityWidget(Composite parent, int style) { super(parent, style | SWT.BORDER); GridLayout layout = new GridLayout(3, false); layout.horizontalSpacing = 10; setLayout(layout); setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); valuesCombo = new Combo(this, SWT.NONE); Label l = new Label(this, SWT.NONE); l.setText(Messages.ComboAndQuantityWidget_qunatity_label); quantitiesText = new BgcBaseText(this, SWT.NONE); } public void addValues(String[] values) { for (String value : values) { valuesCombo.add(value); } } public void setText(String value, int quantity) { valuesCombo.setText(value); quantitiesText.setText(String.format("%d", quantity)); //$NON-NLS-1$ } public String getText() { if ((valuesCombo.getText().length() != 1) || (valuesCombo.getText().length() != 1)) return null; return valuesCombo.getText() + " " + quantitiesText.getText(); //$NON-NLS-1$ } public void addSelectionListener(SelectionListener listener) { valuesCombo.addSelectionListener(listener); } public void addModifyListener(ModifyListener listener) { valuesCombo.addModifyListener(listener); quantitiesText.addModifyListener(listener); } }