package jadex.bdi.examples.blocksworld;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.DefaultListModel;
/**
* A list model representing a collection of blocks
* on a table or in a bucket.
*/
public class BlocksListModel extends DefaultListModel
{
/**
* Create a list model for the given table.
* @param table The table.
*/
public BlocksListModel(Table table)
{
// Add initial blocks.
for(int i=0; i<table.blocks.size(); i++)
addElement(table.blocks.get(i));
// Add listener top handle changes in content.
table.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent pce)
{
if(pce.getPropertyName().equals("blocks"))
{
if(pce.getOldValue()!=null)
{
removeElement(pce.getOldValue());
}
if(pce.getNewValue()!=null)
{
addElement(pce.getNewValue());
}
}
}
});
}
}