Resource[] resources = Resource.values();
final int fontSize = g.getFont().getLineHeight();
final int resourceNumber = resources.length;
final int tableHeight = resourceNumber * fontSize + fontSize;
final int cellPadding = 2;
Font font = FontHelper.getDefaultFont();
// Draw the table
// Vertical lines
int dx = this.ox;
int dy = this.oy;
g.setColor(Color.black);
g.drawLine(dx, dy, dx, dy + tableHeight);
dx += this.columnWidth;
g.drawLine(dx, dy, dx, dy + tableHeight);
dx += this.columnWidth;
g.drawLine(dx, dy, dx, dy + tableHeight);
dx += this.columnWidth;
g.drawLine(dx, dy, dx, dy + tableHeight);
dx = this.ox + this.width; // Adjustment
g.drawLine(dx, dy, dx, dy + tableHeight);
// Horizontal lines
dx = this.ox;
dy = this.oy;
g.drawLine(dx, dy, dx + this.width, dy);
font.drawString(dx + cellPadding, dy, I18n.getFirstToUpper("resource"));
dx += this.columnWidth;
font.drawString(dx + cellPadding, dy, I18n.getFirstToUpper("resource.price"));
dx += this.columnWidth;
font.drawString(dx + cellPadding, dy, I18n.getFirstToUpper("resource.income"));
dx += this.columnWidth;
font.drawString(dx + cellPadding, dy, I18n.getFirstToUpper("resource.store"));
dx = this.ox;
dy += fontSize;
String temp;
for (Resource r : resources) {
font.drawString(dx + cellPadding, dy, r.getI18n());
g.drawLine(dx, dy, dx + this.width, dy);
// Cost
dx += this.columnWidth;
temp = this.basicData.getUpgradeCost().get(r).toString();
font.drawString(dx + cellPadding, dy, temp);
// Production
dx += this.columnWidth;
temp = this.basicData.getProduction().get(r).toString();
temp += " -> " + this.compareData.getProduction().get(r).toString();
font.drawString(dx + cellPadding, dy, temp);
// Store
dx += this.columnWidth;
temp = this.basicData.getStoreCapacity().get(r).toString();
temp += "->" + this.compareData.getStoreCapacity().get(r).toString();
font.drawString(dx + cellPadding, dy, temp);
dy += fontSize;
dx = this.ox;
}
g.drawLine(dx, dy, dx + this.width, dy);