for (Part p : partition.getParts()) {
nodeColorTransformer.getMap().put(p.getValue(), colors.get(i));
i++;
}
}
NumberFormat formatter = NumberFormat.getPercentInstance();
formatter.setMaximumFractionDigits(2);
this.partition = partition;
Part[] partsArray = partition.getParts();
Arrays.sort(partsArray);
//Model
String[] columnNames = new String[]{"Color", "Partition", "Percentage"};
DefaultTableModel model = new DefaultTableModel(columnNames, partsArray.length) {
@Override
public boolean isCellEditable(int row, int column) {
return column == 0;
}
};
table.setModel(model);
TableColumn partCol = table.getColumnModel().getColumn(1);
partCol.setCellRenderer(new TextRenderer());
TableColumn percCol = table.getColumnModel().getColumn(2);
percCol.setCellRenderer(new TextRenderer());
percCol.setPreferredWidth(60);
percCol.setMaxWidth(60);
TableColumn colorCol = table.getColumnModel().getColumn(0);
colorCol.setCellEditor(new ColorChooserEditor());
colorCol.setCellRenderer(new ColorChooserRenderer());
colorCol.setPreferredWidth(16);
colorCol.setMaxWidth(16);
for (int j = 0; j < partsArray.length; j++) {
final Part p = partsArray[partsArray.length - 1 - j];
model.setValueAt(p.getValue(), j, 0);
model.setValueAt(p.getDisplayName(), j, 1);
String perc = "(" + formatter.format(p.getPercentage()) + ")";
model.setValueAt(perc, j, 2);
}
}