KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on Jan 5, 2005
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.SelectionEvent;
10 import org.eclipse.swt.events.SelectionListener;
11 import org.eclipse.swt.layout.GridData;
12 import org.eclipse.swt.widgets.Button;
13 import org.eclipse.swt.widgets.Composite;
14 import org.eclipse.swt.widgets.Control;
15
16 import com.nightlabs.ipanema.base.IpanemaBasePlugin;
17 import com.nightlabs.ipanema.person.Person;
18 import com.nightlabs.ipanema.person.PersonStruct;
19 import com.nightlabs.ipanema.person.PersonStructCache;
20 import com.nightlabs.ipanema.person.TextPersonDataField;
21 import com.nightlabs.ipanema.person.edit.PersonDataFieldEditor;
22 import com.nightlabs.rcp.composite.LabeledTextComposite;
23 import com.nightlabs.rcp.exceptionhandler.ExceptionHandlerRegistry;
24
25 /**
26  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
27  */

28 public class PersonPersonalDataWizardPage extends PersonDataBlockWizardPage implements PersonDataBlockEditorChangedListener{
29
30     private LabeledTextComposite displayName;
31     private Button autoCreateDisplayName;
32     /**
33      * @param pageName
34      */

35     public PersonPersonalDataWizardPage(String JavaDoc pageName, String JavaDoc title, Person person) {
36         super(pageName,title,person,PersonStruct.PERSONALDATA);
37     }
38
39     /**
40      *
41      * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
42      */

43     public Control createPageContents(Composite parent) {
44         createWrapper(parent);
45         
46         displayName = new LabeledTextComposite(wrapperComp, IpanemaBasePlugin.getResourceString("person.edit.wizard.pages.PersonalDataPage.labels.displayName"), SWT.NONE);
47         GridData displayNameGD = new GridData();
48 // displayNameGD.grabExcessHorizontalSpace = true;
49
displayNameGD.horizontalAlignment = GridData.FILL;
50 // displayNameGD.widthHint = 200;
51
displayNameGD.grabExcessHorizontalSpace = true;
52         displayName.setLayoutData(displayNameGD);
53         
54         autoCreateDisplayName = new Button(wrapperComp, SWT.CHECK);
55         GridData autoCreateDisplayNameGD = new GridData();
56 // autoCreateDisplayNameGD.grabExcessHorizontalSpace = true;
57
// autoCreateDisplayNameGD.horizontalAlignment = GridData.FILL;
58
autoCreateDisplayName.setLayoutData(autoCreateDisplayNameGD);
59         autoCreateDisplayName.setText(IpanemaBasePlugin.getResourceString("person.edit.wizard.pages.PersonalDataPage.labels.autoCreateDisplayName"));
60         autoCreateDisplayName.addSelectionListener(
61             new SelectionListener() {
62
63                 public void widgetSelected(SelectionEvent arg0) {
64                     displayName.getTextControl().setEnabled(!autoCreateDisplayName.getSelection());
65                 }
66                 public void widgetDefaultSelected(SelectionEvent arg0) {
67                 }
68             }
69         );
70         autoCreateDisplayName.setSelection(true);
71         displayName.getTextControl().setEnabled(false);
72         
73         Composite dummy = new Composite(wrapperComp,SWT.NONE);
74         GridData dummyGD = new GridData();
75         dummyGD.heightHint = 10;
76         dummy.setLayoutData(dummyGD);
77         
78         setPersonDataBlockEditorColumnHint(1);
79         createPersonDataBlockEditors();
80         getPersonDataBlockEditor().addPersonDataBlockEditorChangedListener(this);
81         pageChanged();
82         return wrapperComp;
83     }
84
85     protected void pageChanged() {
86         try {
87             updatePerson();
88             TextPersonDataField name = (TextPersonDataField)getPersonDataBlock().getPersonDataField(PersonStruct.PERSONALDATA_NAME);
89             TextPersonDataField firstName = (TextPersonDataField)getPersonDataBlock().getPersonDataField(PersonStruct.PERSONALDATA_FIRSTNAME);
90             displayName.getTextControl().setText(getPerson().getPersonDisplayName());
91
92             if (firstName.isEmpty())
93                 updateStatus(IpanemaBasePlugin.getResourceString("person.edit.wizard.pages.PersonalDataPage.errormessage.specifyFirstName"));
94             else if (name.isEmpty())
95                 updateStatus(IpanemaBasePlugin.getResourceString("person.edit.wizard.pages.PersonalDataPage.errormessage.specifyName"));
96             else
97                 updateStatus(null);
98         } catch (Throwable JavaDoc t) {
99             ExceptionHandlerRegistry.syncHandleException(t);
100         }
101     }
102     /**
103      * @see com.nightlabs.ipanema.person.edit.blockbased.PersonDataBlockEditorChangedListener#personDataBlockEditorChanged(com.nightlabs.ipanema.person.edit.PersonDataBlockEditor, com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditor)
104      */

105     public void personDataBlockEditorChanged(PersonDataBlockEditor dataBlockEditor, PersonDataFieldEditor dataFieldEditor) {
106         pageChanged();
107     }
108     
109     
110     /**
111      * Overrides and additionally sets displayName and autoCreateDisplayName.
112      *
113      * @see com.nightlabs.ipanema.person.edit.blockbased.PersonCompoundDataBlockWizardPage#updatePerson()
114      */

115     public void updatePerson() {
116         super.updatePerson();
117         getPerson().setAutoGenerateDisplayName(autoCreateDisplayName.getSelection());
118         getPerson().setPersonDisplayName(displayName.getTextControl().getText(), PersonStructCache.getPersonStructure());
119     }
120     
121     
122 }
123
Popular Tags