KickJava   Java API By Example, From Geeks To Geeks.

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


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

6 package com.nightlabs.ipanema.person.edit.blockbased;
7
8 import org.apache.log4j.Logger;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.widgets.Composite;
11 import org.eclipse.swt.widgets.Control;
12
13 import com.nightlabs.ipanema.person.AbstractPersonDataField;
14 import com.nightlabs.ipanema.person.TextPersonDataField;
15 import com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditor;
16 import com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditorFactory;
17
18 /**
19  * Represents an editor for {@link TextPersonDataField} within a
20  * block based ExpandableBlocksPersonEditor.
21  *
22  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
23  */

24 public class TextPersonDataFieldEditor extends AbstractPersonDataFieldEditor {
25     private static Logger LOGGER = Logger.getLogger(TextPersonDataFieldEditor.class);
26     
27     public static class Factory extends AbstractPersonDataFieldEditorFactory {
28         /**
29          * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditorFactory#getTargetPersonDataFieldType()
30          */

31         public Class JavaDoc getTargetPersonDataFieldType() {
32             return TextPersonDataField.class;
33         }
34         /**
35          * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditorFactory#getEditorType()
36          */

37         public String JavaDoc getEditorType() {
38             return ExpandableBlocksPersonEditor.EDITORTYPE_BLOCK_BASED_EXPANDABLE;
39         }
40         /**
41          * @see com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditorFactory#getPersonDataFieldEditorClass()
42          */

43         public Class JavaDoc getPersonDataFieldEditorClass() {
44             return TextPersonDataFieldEditor.class;
45         }
46     }
47     
48     /**
49      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#getTargetPersonDataType()
50      */

51     public Class JavaDoc getTargetPersonDataType() {
52         return TextPersonDataField.class;
53     }
54
55     /**
56      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#getEditorType()
57      */

58     public String JavaDoc getEditorType() {
59         return ExpandableBlocksPersonEditor.EDITORTYPE_BLOCK_BASED_EXPANDABLE;
60     }
61
62     
63     private TextPersonDataFieldComposite composite;
64     /**
65      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#createControl(org.eclipse.swt.widgets.Composite)
66      */

67     public Control createControl(Composite parent) {
68         if (composite == null) {
69             composite = new TextPersonDataFieldComposite(this,parent,SWT.NONE,this);
70         }
71         composite.refresh();
72         return composite;
73     }
74     
75     /**
76      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#getControl()
77      */

78     public Control getControl() {
79         return composite;
80     }
81
82     private TextPersonDataField data;
83     /**
84      * @see com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditor#setData(com.nightlabs.ipanema.person.AbstractPersonDataField)
85      */

86     public void doSetData(AbstractPersonDataField data) {
87         if (! (data instanceof TextPersonDataField))
88             throw new IllegalArgumentException JavaDoc("Argument data should be of type "+TextPersonDataField.class.getName()+" but was "+data.getClass().getName());
89         this.data = (TextPersonDataField)data;
90         setChanged(false);
91         // TODO: refesh called twice ??
92
// if (composite != null)
93
// composite.refresh();
94
}
95     
96     public TextPersonDataField getData() {
97         return data;
98     }
99
100     /**
101      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#updatePerson()
102      */

103     public void updatePerson() {
104         data.setText(composite.getText());
105     }
106
107     /**
108      * @see com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditor#doRefresh(com.nightlabs.ipanema.person.AbstractPersonDataField)
109      */

110     public void doRefresh(AbstractPersonDataField data) {
111         setData(data);
112     }
113
114     /**
115      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#disposeControl()
116      */

117     public void disposeControl() {
118         composite.dispose();
119     }
120
121     /**
122      * @see com.nightlabs.ipanema.person.edit.PersonDataFieldEditor#refresh()
123      */

124     public void doRefresh() {
125         if (composite != null)
126             composite.refresh();
127     }
128
129 }
130
Popular Tags