KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on Jan 25, 2005
3  * by alex
4  *
5  */

6 package com.nightlabs.ipanema.person.edit.blockbased;
7
8 import java.util.ArrayList JavaDoc;
9 import java.util.Iterator JavaDoc;
10 import java.util.LinkedList JavaDoc;
11 import java.util.List JavaDoc;
12
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.layout.GridData;
15 import org.eclipse.swt.layout.GridLayout;
16 import org.eclipse.swt.widgets.Composite;
17 import org.eclipse.swt.widgets.Control;
18
19 import com.nightlabs.ipanema.person.Person;
20 import com.nightlabs.ipanema.person.edit.PersonEditor;
21 import com.nightlabs.ipanema.person.id.PersonStructBlockID;
22 import com.nightlabs.rcp.composite.TightWrapperComposite;
23
24 /**
25  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
26  *
27  */

28 public class FullDataBlockCoverageComposite extends Composite {
29
30
31     private int numColumns;
32     /**
33      */

34     public FullDataBlockCoverageComposite(Composite parent, int style, String JavaDoc editorScope, Person person) {
35         super(parent, style);
36         this.numColumns = 1;
37         PersonStructBlockID[] fullCoverageBlockIDs = PersonEditorStructBlockRegistry.getSharedInstance().computeRemainingBlockKeys(editorScope);
38         createPersonEditors();
39         List JavaDoc[] splitBlockIDs = new List JavaDoc[numColumns];
40         for (int i=0; i<numColumns; i++) {
41             splitBlockIDs[i] = new ArrayList JavaDoc();
42         }
43         for (int i=0; i<fullCoverageBlockIDs.length; i++){
44             splitBlockIDs[i % numColumns].add(fullCoverageBlockIDs[i]);
45         }
46         
47         GridLayout thisLayout = new GridLayout();
48         thisLayout.numColumns = numColumns;
49         thisLayout.makeColumnsEqualWidth = true;
50         this.setLayout(thisLayout);
51         
52         this.setLayoutData(new GridData(GridData.FILL_BOTH));
53         
54         for (int i=0; i<numColumns; i++) {
55             TightWrapperComposite wrapper = new TightWrapperComposite(this,SWT.BORDER,true);
56             BlockBasedPersonEditor personEditor = (BlockBasedPersonEditor)personEditors.get(i);
57             personEditor.setPerson(person);
58             personEditor.setEditorDomain(editorScope,"#FullDatBlockCoverageComposite"+i);
59             personEditor.setEditorPersonStructBlockList(splitBlockIDs[i]);
60             Control personEditorControl = personEditor.createControl(wrapper,true);
61             GridData editorControlGD = new GridData(GridData.FILL_BOTH);
62             personEditorControl.setLayoutData(editorControlGD);
63         }
64             
65     }
66     
67     private List JavaDoc personEditors = new LinkedList JavaDoc();
68     
69     private void createPersonEditors() {
70         personEditors.clear();
71         for (int i=0; i<numColumns; i++) {
72             personEditors.add(new BlockBasedPersonEditor());
73         }
74     }
75     
76     public void updatePerson() {
77         for (Iterator JavaDoc iter = personEditors.iterator(); iter.hasNext();) {
78             PersonEditor editor = (PersonEditor) iter.next();
79             editor.updatePerson();
80         }
81     }
82     
83     
84 }
85
Popular Tags