1 6 package com.nightlabs.ipanema.person.edit.blockbased; 7 8 import org.eclipse.swt.SWT; 9 import org.eclipse.swt.events.ModifyListener; 10 import org.eclipse.swt.layout.GridData; 11 import org.eclipse.swt.layout.GridLayout; 12 import org.eclipse.swt.widgets.Composite; 13 import org.eclipse.swt.widgets.Label; 14 import org.eclipse.swt.widgets.Text; 15 16 import com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldComposite; 17 18 21 public class TextPersonDataFieldComposite extends AbstractPersonDataFieldComposite { 22 23 private Label fieldName; 24 private Text fieldText; 25 private TextPersonDataFieldEditor editor; 26 private ModifyListener modifyListener; 27 28 35 public TextPersonDataFieldComposite(TextPersonDataFieldEditor editor, Composite parent, int style, ModifyListener modListener) { 36 super(parent, style); 37 if (!(parent.getLayout() instanceof GridLayout)) 38 throw new IllegalArgumentException ("Parent should have a GridLayout!"); 39 40 this.editor = editor; 41 42 GridLayout layout = new GridLayout(); 43 setLayout(layout); 44 layout.horizontalSpacing = 0; 45 layout.verticalSpacing = 0; 46 layout.marginHeight = 0; 47 layout.marginWidth = 0; 48 GridData gridData = new GridData(GridData.FILL_BOTH); 49 setLayoutData(gridData); 50 51 fieldName = new Label(this,SWT.PUSH); 52 GridData nameData = new GridData(GridData.FILL_HORIZONTAL); 53 nameData.grabExcessHorizontalSpace = true; 54 fieldName.setLayoutData(nameData); 55 56 fieldText = new Text(this, SWT.PUSH | SWT.BORDER | SWT.SINGLE); 57 GridData textData = new GridData(GridData.FILL_HORIZONTAL); 58 textData.grabExcessHorizontalSpace = true; 59 fieldText.setEditable(true); 60 fieldText.setEnabled(true); 61 fieldText.setLayoutData(textData); 62 this.modifyListener = modListener; 63 fieldText.addModifyListener(modifyListener); 64 } 65 66 69 public void refresh() { 70 fieldName.setText(editor.getPersonStructField().getPersonStructFieldID()); 73 if (editor.getData().getText() == null) 74 fieldText.setText(""); 75 else 76 fieldText.setText(editor.getData().getText()); 77 } 78 79 public String getText() { 80 return fieldText.getText(); 81 } 82 83 84 85 public void dispose() { 86 fieldText.removeModifyListener(modifyListener); 87 super.dispose(); 88 } 89 } 90 | Popular Tags |