package org.javabuilders.swing.samples; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.Calendar; import java.util.LinkedList; import java.util.List; import javax.swing.JList; import javax.swing.JPanel; import org.javabuilders.swing.SwingJavaBuilder; import org.javabuilders.swing.samples.resources.Person; import org.javabuilders.swing.samples.resources.PersonDialog; import org.jdesktop.observablecollections.ObservableCollections; public class ListBindingPanel extends SamplePanel { private PropertyChangeSupport support = new PropertyChangeSupport(this); private List<Person> people = ObservableCollections.observableList(new LinkedList<Person>()); private JList list; private String listStatus = ""; public ListBindingPanel() throws Exception { super(); Calendar date = Calendar.getInstance(); date.set(Calendar.YEAR, 1970); people.add(new Person("John","Doe", date)); people.add(new Person("Jan","Doenowvsky", date)); people.add(new Person("Jazz","Doezilla", date)); SwingJavaBuilder.build(this); } public void addPropertyChangeListener(PropertyChangeListener listener) { if (support != null) { support.addPropertyChangeListener(listener); } } public void removePropertyChangeListener(PropertyChangeListener listener) { if (support != null) { support.removePropertyChangeListener(listener); } } /** * @return the people */ public List<Person> getPeople() { return people; } @SuppressWarnings("unused") private void addPerson() { PersonDialog dialog = new PersonDialog(); dialog.setVisible(true); if (dialog.getPerson().getFirstName() != null) { people.add(dialog.getPerson()); } } @SuppressWarnings("unused") private void deleteFromList() { Person person = (Person) list.getSelectedValue(); people.remove(person); } /** * @return the listSelected */ public String getListStatus() { return listStatus; } /** * @param status the listSelected to set */ public void setListStatus(String status) { String old = this.listStatus; this.listStatus = status; support.firePropertyChange("listStatus", old, this.listStatus); } private void listSelectedNotification() { setListStatus("List selected on : " + Calendar.getInstance().getTime()); } }