package org.javabuilders.swing.test.resources; import java.beans.PropertyChangeListener; import java.util.LinkedList; import java.util.List; import javax.swing.JPanel; import javax.swing.event.SwingPropertyChangeSupport; import org.javabuilders.BuildResult; import org.javabuilders.swing.SwingJavaBuilder; import org.javabuilders.swing.test.issues.resources.Book; import org.jdesktop.observablecollections.ObservableCollections; public class AuthorsPanel extends JPanel { private List<Author> authorsList = ObservableCollections.observableList(new LinkedList<Author>()); private Author author; private Book book; private SwingPropertyChangeSupport support = new SwingPropertyChangeSupport(this); public BuildResult result = null; public AuthorsPanel() { authorsList.add(new Author("Charles", "Darwin", "The evolution of species")); authorsList.add(new Author("Carl", "Sagan", "Cosmos","Contact")); authorsList.add(new Author("Bertrand", "Russell", "The Analysis of Mind","Mysticism and Logic and Other Essays","Proposed Roads To Freedom")); authorsList.add(new Author("Isaac","Asimov", "Foundation","Foundation and Empire")); result = SwingJavaBuilder.build(this); } public void addPropertyChangeListener(PropertyChangeListener listener) { support.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { support.removePropertyChangeListener(listener); } /** * @return the authors List */ public List<Author> getAuthors() { return authorsList; } /** * @return the author */ public Author getAuthor() { return author; } /** * @param author the author to set */ public void setAuthor(Author author) { Author old = this.author; this.author = author; support.firePropertyChange("author", old, author); } /** * @return the book */ public Book getBook() { return book; } /** * @param book the book to set */ public void setBook(Book book) { Book oldValue = this.book; this.book = book; support.firePropertyChange("books", oldValue, book); } }