1 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 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 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 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 |