KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on Nov 29, 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.layout.GridData;
11 import org.eclipse.swt.layout.GridLayout;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.ui.forms.events.ExpansionAdapter;
14 import org.eclipse.ui.forms.events.ExpansionEvent;
15 import org.eclipse.ui.forms.widgets.ExpandableComposite;
16 import org.eclipse.ui.forms.widgets.ScrolledForm;
17
18 import com.nightlabs.ipanema.person.PersonDataBlockGroup;
19 import com.nightlabs.ipanema.person.PersonStruct;
20 import com.nightlabs.ipanema.person.PersonStructCache;
21 import com.nightlabs.ipanema.person.edit.PersonDataFieldEditor;
22
23 /**
24  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
25  */

26 public class ExpandablePersonDataBlockGroupEditor
27 extends ExpandableComposite
28 implements PersonDataBlockEditorChangedListener
29 {
30     
31     private static final Logger LOGGER = Logger.getLogger(ExpandablePersonDataBlockGroupEditor.class);
32     
33     private PersonDataBlockGroupEditor blockGroupEditor;
34     
35     /**
36      * @param parent
37      * @param style
38      */

39     public ExpandablePersonDataBlockGroupEditor(
40             PersonDataBlockGroup blockGroup,
41             Composite parent
42     ) {
43         super(parent, SWT.NONE);
44         blockGroupEditor = new PersonDataBlockGroupEditor(blockGroup, this);
45         
46         GridLayout thisLayout = new GridLayout();
47         thisLayout.verticalSpacing = 0;
48         thisLayout.horizontalSpacing= 0;
49         setLayout(thisLayout);
50         
51         // TableWrapData thisLayoutData = new TableWrapData();
52
GridData thisLayoutData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
53         setLayoutData(thisLayoutData);
54         
55         setClient(blockGroupEditor);
56         
57         PersonStruct structure = PersonStructCache.getPersonStructure();
58         if (blockGroup.getPersonStructBlock(structure).getBlockName().getText() == null)
59             setText(blockGroup.getPersonStructBlock(structure).getPersonStructBlockID());
60         else
61             setText(blockGroup.getPersonStructBlock(structure).getBlockName().getText());
62         
63         addExpansionListener(new ExpansionAdapter() {
64             public void expansionStateChanged(ExpansionEvent e) {
65                 if (ExpandablePersonDataBlockGroupEditor.this.owner != null)
66                     ExpandablePersonDataBlockGroupEditor.this.owner.reflow(true);
67             }
68         });
69         
70     }
71
72     public void personDataBlockEditorChanged(PersonDataBlockEditor dataBlockEditor, PersonDataFieldEditor dataFieldEditor) {
73         blockGroupEditor.personDataBlockEditorChanged(dataBlockEditor, dataFieldEditor);
74     }
75     
76     public void updatePerson() {
77         blockGroupEditor.updatePerson();
78     }
79     
80     public synchronized void addPersonDataBlockEditorChangedListener(PersonDataBlockEditorChangedListener listener) {
81         blockGroupEditor.addPersonDataBlockEditorChangedListener(listener);
82     }
83     public synchronized void removePersonDataBlockEditorChangedListener(PersonDataBlockEditorChangedListener listener) {
84         blockGroupEditor.removePersonDataBlockEditorChangedListener(listener);
85     }
86     
87     public void refresh(PersonDataBlockGroup blockGroup) {
88     }
89     
90     private ScrolledForm owner = null;
91     
92     public void setOwner(ScrolledForm owner) {
93         this.owner = owner;
94     }
95     
96 }
97
Popular Tags