// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/data/Address.java
// public class Address {
// 
// 	private String street;
// 
// 	private String streetNr;
// 
// 	private String zipCode;
// 
// 	private String city;
// 
// 	public String getStreet() {
// 		return street;
// 	}
// 
// 	public void setStreet(String street) {
// 		this.street = street;
// 	}
// 
// 	public String getStreetNr() {
// 		return streetNr;
// 	}
// 
// 	public void setStreetNr(String streetNr) {
// 		this.streetNr = streetNr;
// 	}
// 
// 	public String getZipCode() {
// 		return zipCode;
// 	}
// 
// 	public void setZipCode(String zipCode) {
// 		this.zipCode = zipCode;
// 	}
// 
// 	public String getCity() {
// 		return city;
// 	}
// 
// 	public void setCity(String city) {
// 		this.city = city;
// 	}
// 
// }
// 
// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/data/Person.java
// public class Person {
// 
// 	private String firstname;
// 
// 	private String lastname;
// 
// 	private Address address;
// 
// 	public String getFirstname() {
// 		return firstname;
// 	}
// 
// 	public void setFirstname(String firstname) {
// 		this.firstname = firstname;
// 	}
// 
// 	public String getLastname() {
// 		return lastname;
// 	}
// 
// 	public void setLastname(String lastname) {
// 		this.lastname = lastname;
// 	}
// 
// 	public Address getAddress() {
// 		return address;
// 	}
// 
// 	public void setAddress(Address address) {
// 		this.address = address;
// 	}
// 
// }
// 
// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/model/list/ListAdapterListModel.java
// public class ListAdapterListModel<E> extends AbstractListModel<E> {
// 
// 	/**
// 	 *
// 	 */
// 	private static final long serialVersionUID = -3348705533107354297L;
// 
// 	private List<E> list = new ArrayList<E>();
// 
// 	public void setList(List<E> list) {
// 		this.list.clear();
// 		this.list.addAll(list);
// 		fireListDataChanged();
// 	}
// 
// 	public void clear() {
// 		this.list.clear();
// 		fireListDataChanged();
// 	}
// 
// 	private void fireListDataChanged() {
// 		fireContentsChanged(this, 0, Math.max(list.size() - 1, 0));
// 	}
// 
// 	public void addAll(List<E> elements) {
// 		if (this.list.addAll(elements)) {
// 			fireIntervalAdded(elements.size());
// 		}
// 	}
// 
// 	protected void fireIntervalAdded(int elementCOunt) {
// 		int index0 = list.size() - elementCOunt;
// 		fireIntervalAdded(this, Math.max(0, index0),
// 				Math.max(0, list.size() - 1));
// 	}
// 
// 	/**
// 	 * Returns the list that this {@link ListAdapterListModel} is backed by.
// 	 *
// 	 * @return
// 	 */
// 	public List<E> getList() {
// 		return Collections.unmodifiableList(list);
// 	}
// 
// 	public int getSize() {
// 		return list.size();
// 	}
// 
// 	public E getElementAt(int index) {
// 		E elementAt = list.get(index);
// 		return elementAt;
// 	}
// 
// 	public int indexOf(E element) {
// 		return list.indexOf(element);
// 	}
// 
// }


import java.util.ArrayList;
import java.util.List;
import javax.swing.BoundedRangeModel;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.SwingWorker;
import com.link_intersystems.blog.mvc.data.Address;
import com.link_intersystems.blog.mvc.data.Person;
import com.link_intersystems.blog.mvc.model.list.ListAdapterListModel;
		person1.setLastname("Smith");
		Address address1 = new Address();
		address1.setCity("San Francisco");
		address1.setZipCode("CA 94114");
		address1.setStreet("Jersey St");
		address1.setStreetNr("222");
		person1.setAddress(address1);
		persons.add(person1);
		publish(person1);

		// Simulate progress
		sleepAWhile();

		Person person2 = new Person();
		person2.setFirstname("John");
		person2.setLastname("Wilson");
		Address address2 = new Address();
		address2.setStreet("Carbernet Ave");
		address2.setStreetNr("6934");
		address2.setCity("Newark");
		address2.setZipCode("CA 94560");
		person2.setAddress(address2);
		persons.add(person2);
		publish(person2);

		// Simulate progress
		sleepAWhile();

		Person person3 = new Person();
		person3.setFirstname("Roland");
// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/data/Address.java
// public class Address {
// 
// 	private String street;
// 
// 	private String streetNr;
// 
// 	private String zipCode;
// 
// 	private String city;
// 
// 	public String getStreet() {
// 		return street;
// 	}
// 
// 	public void setStreet(String street) {
// 		this.street = street;
// 	}
// 
// 	public String getStreetNr() {
// 		return streetNr;
// 	}
// 
// 	public void setStreetNr(String streetNr) {
// 		this.streetNr = streetNr;
// 	}
// 
// 	public String getZipCode() {
// 		return zipCode;
// 	}
// 
// 	public void setZipCode(String zipCode) {
// 		this.zipCode = zipCode;
// 	}
// 
// 	public String getCity() {
// 		return city;
// 	}
// 
// 	public void setCity(String city) {
// 		this.city = city;
// 	}
// 
// }
// 
// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/data/Person.java
// public class Person {
// 
// 	private String firstname;
// 
// 	private String lastname;
// 
// 	private Address address;
// 
// 	public String getFirstname() {
// 		return firstname;
// 	}
// 
// 	public void setFirstname(String firstname) {
// 		this.firstname = firstname;
// 	}
// 
// 	public String getLastname() {
// 		return lastname;
// 	}
// 
// 	public void setLastname(String lastname) {
// 		this.lastname = lastname;
// 	}
// 
// 	public Address getAddress() {
// 		return address;
// 	}
// 
// 	public void setAddress(Address address) {
// 		this.address = address;
// 	}
// 
// }
// 
// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/model/list/ListAdapterListModel.java
// public class ListAdapterListModel<E> extends AbstractListModel<E> {
// 
// 	/**
// 	 *
// 	 */
// 	private static final long serialVersionUID = -3348705533107354297L;
// 
// 	private List<E> list = new ArrayList<E>();
// 
// 	public void setList(List<E> list) {
// 		this.list.clear();
// 		this.list.addAll(list);
// 		fireListDataChanged();
// 	}
// 
// 	public void clear() {
// 		this.list.clear();
// 		fireListDataChanged();
// 	}
// 
// 	private void fireListDataChanged() {
// 		fireContentsChanged(this, 0, Math.max(list.size() - 1, 0));
// 	}
// 
// 	public void addAll(List<E> elements) {
// 		if (this.list.addAll(elements)) {
// 			fireIntervalAdded(elements.size());
// 		}
// 	}
// 
// 	protected void fireIntervalAdded(int elementCOunt) {
// 		int index0 = list.size() - elementCOunt;
// 		fireIntervalAdded(this, Math.max(0, index0),
// 				Math.max(0, list.size() - 1));
// 	}
// 
// 	/**
// 	 * Returns the list that this {@link ListAdapterListModel} is backed by.
// 	 *
// 	 * @return
// 	 */
// 	public List<E> getList() {
// 		return Collections.unmodifiableList(list);
// 	}
// 
// 	public int getSize() {
// 		return list.size();
// 	}
// 
// 	public E getElementAt(int index) {
// 		E elementAt = list.get(index);
// 		return elementAt;
// 	}
// 
// 	public int indexOf(E element) {
// 		return list.indexOf(element);
// 	}
// 
// }


// Path: mvc-with-java-swing/src/main/java/com/link_intersystems/blog/mvc/controller/LoadPersonsWorker.java
import java.util.ArrayList;
import java.util.List;
import javax.swing.BoundedRangeModel;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.SwingWorker;
import com.link_intersystems.blog.mvc.data.Address;
import com.link_intersystems.blog.mvc.data.Person;
import com.link_intersystems.blog.mvc.model.list.ListAdapterListModel;

		person1.setLastname("Smith");
		Address address1 = new Address();
		address1.setCity("San Francisco");
		address1.setZipCode("CA 94114");
		address1.setStreet("Jersey St");
		address1.setStreetNr("222");
		person1.setAddress(address1);
		persons.add(person1);
		publish(person1);

		// Simulate progress
		sleepAWhile();

		Person person2 = new Person();
		person2.setFirstname("John");
		person2.setLastname("Wilson");
		Address address2 = new Address();
		address2.setStreet("Carbernet Ave");
		address2.setStreetNr("6934");
		address2.setCity("Newark");
		address2.setZipCode("CA 94560");
		person2.setAddress(address2);
		persons.add(person2);
		publish(person2);

		// Simulate progress
		sleepAWhile();

		Person person3 = new Person();
		person3.setFirstname("Roland");
		person3.setLastname("Anderson");