}
private DataTable kindBarColumnChartDataTable() {
Set<KindFilterChoice> selectedCols = kindMultiConfig.selectedValues();
DataTable data = DataTable.create();
data.addColumn(ColumnType.STRING, "Name");
if (selectedCols.contains(KindFilterChoice.COUNT_ALL)) {
data.addColumn(ColumnType.NUMBER, "Count(All)");
}
if (selectedCols.contains(KindFilterChoice.SIZE_ALL)) {
data.addColumn(ColumnType.NUMBER, "Size(All)");
}
if (selectedCols.contains(KindFilterChoice.COUNT_ROOT)) {
data.addColumn(ColumnType.NUMBER, "Count(Root)");
}
if (selectedCols.contains(KindFilterChoice.SIZE_ROOT)) {
data.addColumn(ColumnType.NUMBER, "Size(Root)");
}
if (selectedCols.contains(KindFilterChoice.COUNT_NON_ROOT)) {
data.addColumn(ColumnType.NUMBER, "Count(Non Root)");
}
if (selectedCols.contains(KindFilterChoice.SIZE_NON_ROOT)) {
data.addColumn(ColumnType.NUMBER, "Size(Non Root)");
}
List<KindBreakdown> selectedList = selectedKindList();
data.addRows(selectedList.size());
int rowCount = 0;
for (KindBreakdown breakdown : selectedList) {
data.setValue(rowCount, 0, breakdown.getKindName());
int colIdx = 1;
if (selectedCols.contains(KindFilterChoice.COUNT_ALL)) {
data.setValue(rowCount, colIdx ++, breakdown.getCount());
}
if (selectedCols.contains(KindFilterChoice.SIZE_ALL)) {
data.setValue(rowCount, colIdx ++, breakdown.getSize());
}
if (selectedCols.contains(KindFilterChoice.COUNT_ROOT)) {
data.setValue(rowCount, colIdx ++,
breakdown.getRootCount() == null ? 0l : breakdown.getRootCount());
}
if (selectedCols.contains(KindFilterChoice.SIZE_ROOT)) {
data.setValue(rowCount, colIdx ++,
breakdown.getRootSize() == null ? 0l : breakdown.getRootSize());
}
if (selectedCols.contains(KindFilterChoice.COUNT_NON_ROOT)) {
data.setValue(rowCount, colIdx ++,
breakdown.getNonRootCount() == null ? 0l : breakdown.getNonRootCount());
}
if (selectedCols.contains(KindFilterChoice.SIZE_NON_ROOT)) {
data.setValue(rowCount, colIdx ++,
breakdown.getNonRootSize() == null ? 0l : breakdown.getNonRootSize());
}
rowCount ++;
}