@Override
protected void onDraw() {
super.onDraw();
TreeGrid treeGrid = new TreeGrid();
treeGrid.setWidth100();
treeGrid.setLoadDataOnDemand(false);
TreeGridField[] fields = new TreeGridField[2 + titles.size()];
TreeGridField nameField = new TreeGridField("name", MSG.common_title_name(), 250);
nameField.setFrozen(true);
nameField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
if (listGridRecord == null || listGridRecord.getAttributeAsBoolean(ATTRIB_ALL_SAME)) {
return String.valueOf(o);
} else {
return "<span style=\"color: red;\">" + String.valueOf(o) + "</span>";
}
}
});
TreeGridField typeField = new TreeGridField("type", MSG.common_title_type(), 80);
fields[0] = nameField;
fields[1] = typeField;
int i = 2;
for (String title : titles) {
TreeGridField columnField = new TreeGridField(title, title, 150);
columnField.setCellFormatter(new CellFormatter() {
public String format(Object o, ListGridRecord listGridRecord, int i, int i1) {
if (!(listGridRecord instanceof ComparisonTreeNode)) {
return "";
} else if (listGridRecord.getAttributeAsBoolean(ATTRIB_ALL_SAME)) {
return String.valueOf(o);
} else {
return "<span style=\"color: red;\">" + String.valueOf(o) + "</span>";
}
}
});
fields[i++] = columnField;
}
treeGrid.setFields(fields);
treeGrid.setData(buildTree());
addMember(treeGrid);
}