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;
import mekhq.gui.CampaignGUI;
import mekhq.gui.ITechWorkPanel;
/**
* A table model for displaying work items
*/
public class TechTableModel extends DataTableModel {
private static final long serialVersionUID = 2738333372316332962L;
private CampaignGUI tab;
private ITechWorkPanel panel;
public TechTableModel(CampaignGUI tab, ITechWorkPanel panel) {
columnNames = new String[] { "Techs" };
data = new ArrayList<Person>();
this.tab = tab;
this.panel = panel;
}
@Override
public Object getValueAt(int row, int col) {
return getTechAt(row);
}
public Person getTechAt(int row) {
return (Person) data.get(row);
}
public Campaign getCampaign() {
return tab.getCampaign();
}
public TechTableModel.Renderer getRenderer(IconPackage icons) {
return new TechTableModel.Renderer(icons);
}
public class Renderer extends BasicInfo implements TableCellRenderer {
public Renderer(IconPackage icons) {
super(icons);
}
private static final long serialVersionUID = -4951696376098422679L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
Component c = this;
int actualRow = table.convertRowIndexToModel(row);
setOpaque(true);
setPortrait(getTechAt(actualRow));
setText(getTechAt(actualRow).getTechDesc(getCampaign().isOvertimeAllowed(), panel.getSelectedTask()),
"black");
if (isSelected) {
highlightBorder();
} else {
unhighlightBorder();
}
c.setBackground(new Color(220, 220, 220));
return c;
}
}
}