KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > person > edit > blockbased > TextPersonDataFieldComposite


1 /*
2  * Created on Nov 26, 2004
3  * by alex
4  *
5  */

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 /**
19  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
20  */

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     /**
29      * Assumes to have a parent composite with GridLaout and
30      * adds it own GridData.
31      * @param editor
32      * @param parent
33      * @param style
34      */

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 JavaDoc("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     /**
67      * @see com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldComposite#refresh()
68      */

69     public void refresh() {
70 // fieldName.setText(editor.getPersonStructField().getFieldName().getText());
71
// TODO: reactivate above line
72
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 JavaDoc 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