package mekhq.gui.model;
import java.awt.Color;
import java.awt.Component;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import mekhq.IconPackage;
import mekhq.campaign.Campaign;
import mekhq.campaign.personnel.Person;
import mekhq.gui.BasicInfo;
/**
* A table model for displaying doctors
*/
public class DocTableModel extends DataTableModel {
private static final long serialVersionUID = -6934834363013004894L;
private Campaign campaign;
public DocTableModel(Campaign c) {
columnNames = new String[] { "Doctors" };
data = new ArrayList<Person>();
campaign = c;
}
public Object getValueAt(int row, int col) {
return ((Person) data.get(row)).getDocDesc();
}
public Person getDoctorAt(int row) {
return (Person) data.get(row);
}
public Campaign getCampaign() {
return campaign;
}
public DocTableModel.Renderer getRenderer(IconPackage icons) {
return new DocTableModel.Renderer(icons);
}
public class Renderer extends BasicInfo implements TableCellRenderer {
public Renderer(IconPackage icons) {
super(icons);
}
private static final long serialVersionUID = -818080358678474607L;
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
Component c = this;
setOpaque(true);
setPortrait(getDoctorAt(row));
setText(getValueAt(row, column).toString(), "black");
//setToolTipText(getCampaign().getTargetFor(getDoctorAt(row), getDoctorAt(row)).getDesc());
if (isSelected) {
highlightBorder();
} else {
unhighlightBorder();
}
c.setBackground(new Color(220, 220, 220));
return c;
}
}
}