//initialises the Container
public void init() {
setLayout(new BorderLayout());
setScrollable(false);
cloneContactsArrayList=new ArrayList<Hashtable>();
contactsHash=new Vector<Hashtable>();
contactList = new List(createGenenericListCellRendererModelData());
contactList.setRenderer(new GenericListCellRenderer(ContactBookRenderer(), ContactBookRenderer()));
contactList.addActionListener(new ActionListener() {
/**
* deals with the contacts that are selected and/or deselected
*/
public void actionPerformed(ActionEvent evt) {
//code deals with selection of contacts and what should be done with them
}
});
searchTextField = new TextField();
searchTextField.setHint("Search Contacts");
searchTextField.addDataChangeListener(new DataChangedListener() {
public void dataChanged(int type, int index) {
//deals with searching the selected contacts
}
});
done = new Button("Done");
done.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//deals with what is to be done when user finishes their selection
}
});
back = new Button("Back");
back.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//deals with going back
});
buttons = new Container(new BoxLayout(BoxLayout.X_AXIS));
buttons.addComponent(done);
buttons.addComponent(back);
this.addComponent(BorderLayout.SOUTH, buttons);
this.addComponent(BorderLayout.NORTH, searchTextField);
this.addComponent(BorderLayout.CENTER, contactList);
}
/**
* this method creates the list renderer
*
* @return the renderer container
*/
public Container ContactBookRenderer() {
renderer = new Container(new BorderLayout());
name = new Label();
name.setFocusable(true);
name.setName("Name");
primaryPhoneNumber = new Label();
primaryPhoneNumber.setFocusable(true);
primaryPhoneNumber.setName("Number");
multiCheck = new CheckBox();
multiCheck.setFocusable(true);
multiCheck.setName("Selected");
normalMode = new Container(new BoxLayout(BoxLayout.Y_AXIS));
normalMode.addComponent(name);
normalMode.addComponent(primaryPhoneNumber);
renderer.addComponent(BorderLayout.WEST, multiCheck);
renderer.addComponent(BorderLayout.CENTER, normalMode);
return renderer;
}
/**
* this method creates a model for the list
*
* @return the model for the list renderer
*/
private Vector<Hashtable> createGenenericListCellRendererModelData() {
if(ContactsManager.getAllContacts().length>0){
allContacts = ContactsManager.getAllContacts();
contacts = new Hashtable[allContacts.length];
// ContactModel model=new ContactModel(allContacts);
phoneContact = new ContactsManager();
Contact people = new Contact();
for (int i = 0; i < allContacts.length; i++) {
people = ContactsManager.getContactById(allContacts[i]);
contacts[i] = new Hashtable();
if(people==null){
contacts[i].put("Name", "loading..");
contacts[i].put("Number", "loading..");
contacts[i].put("Selected", Boolean.FALSE);
}else{
contacts[i].put("Name", people.getDisplayName());
contacts[i].put("Number", people.getPhoneNumbers().get("mobile"));
contacts[i].put("Selected", Boolean.FALSE);
}
contactsHash.add(contacts[i]);
}
return contactsHash;
}else{
return new Vector<Hashtable>();
}
}