package org.oddjob.monitor.view;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.event.TableModelEvent;
import javax.swing.table.AbstractTableModel;
/**
* Model for a table to display properties.
*
* @author Rob Gordon
*/
public class PropertyTableModel extends AbstractTableModel {
private static final long serialVersionUID = 20051109;
/** The keys */
private List<String> keys = new ArrayList<String>();
/** The props. */
private List<String> values = new ArrayList<String>();
private final String colNames[] = { "Name", "Value" };
public void update(Map<String, String> props) {
keys = new ArrayList<String>(props.keySet());
values = new ArrayList<String>(props.values());
fireTableChanged(new TableModelEvent(this));
}
/**
* @see javax.swing.table.TableModel#getRowCount()
*/
public int getRowCount() {
return keys.size();
}
/**
* @see javax.swing.table.TableModel#getColumnCount()
*/
public int getColumnCount() {
return 2;
}
/**
* @see javax.swing.table.TableModel#getColumnName(int)
*/
public String getColumnName(int columnIndex) {
return colNames[columnIndex];
}
/**
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
public Object getValueAt(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return keys.get(rowIndex);
}
else {
return values.get(rowIndex);
}
}
}