this.showNewButton = showNewButton;
}
@Override
protected void configureTable() {
ListGridField idField = new ListGridField("id", MSG.common_title_id());
idField.setWidth(50);
IconField categoryField = new IconField(CATEGORY.propertyName());
categoryField.setCellFormatter(new CellFormatter() {
public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
String categoryName = (String) value;
GroupCategory category = GroupCategory.valueOf(categoryName);
String icon = ImageManager.getGroupIcon(category);
return "<img class='tableImage' src=\"" + ImageManager.getFullImagePath(icon) + "\" />";
}
});
categoryField.setShowHover(true);
categoryField.setHoverCustomizer(new HoverCustomizer() {
public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) {
String categoryName = record.getAttribute(CATEGORY.propertyName());
GroupCategory category = GroupCategory.valueOf(categoryName);
String displayName;
switch (category) {
case COMPATIBLE:
displayName = MSG.view_group_summary_compatible();
break;
case MIXED:
displayName = MSG.view_group_summary_mixed();
break;
default:
throw new IllegalStateException("Unknown group category: " + category);
}
return displayName;
}
});
ListGridField nameField = new ListGridField(NAME.propertyName(), NAME.title());
nameField.setWidth("40%");
nameField.setCellFormatter(new CellFormatter() {
public String format(Object value, ListGridRecord record, int i, int i1) {
String groupId = record.getAttribute("id");
String groupUrl = LinkManager.getResourceGroupLink(Integer.valueOf(groupId));
return LinkManager.getHref(groupUrl, value.toString());
}
});
ListGridField descriptionField = new ListGridField(DESCRIPTION.propertyName(), DESCRIPTION.title());
descriptionField.setWidth("28%");
ListGridField typeNameField = new ListGridField(TYPE.propertyName(), TYPE.title());
typeNameField.setWidth("14%");
ListGridField pluginNameField = new ListGridField(PLUGIN.propertyName(), PLUGIN.title());
pluginNameField.setWidth("8%");
ListGridField availabilityChildrenField = new ListGridField(AVAIL_CHILDREN.propertyName(),
AVAIL_CHILDREN.title(), 185); // 185 due to the html in ResourceGroupCompositeDataSource.getAlignedAvailabilityResults
availabilityChildrenField.setCanSortClientOnly(true);
availabilityChildrenField.setCanGroupBy(false);
availabilityChildrenField.setWrap(false);
availabilityChildrenField.setAlign(Alignment.LEFT);
ListGridField availabilityDescendantsField = new ListGridField(AVAIL_DESCENDANTS.propertyName(),
AVAIL_DESCENDANTS.title(), 185); // 185 due to the html in ResourceGroupCompositeDataSource.getAlignedAvailabilityResults
availabilityDescendantsField.setCanSortClientOnly(true);
availabilityDescendantsField.setCanGroupBy(false);
availabilityDescendantsField.setWrap(false);
availabilityDescendantsField.setAlign(Alignment.LEFT);
setListGridFields(idField, categoryField, nameField, descriptionField, typeNameField, pluginNameField,
availabilityChildrenField, availabilityDescendantsField);
if (this.showDeleteButton) {