in client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java [209:270]
public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants,
final PlaceController pc, final HupaRequestFactory rf) {
super(PAGE_SIZE, Resources.INSTANCE);
this.pc = pc;
this.rf = rf;
this.imageBundle = imageBundle;
CheckboxCell headerCheckbox = new CheckboxCell();
ImageResourceCell headerAttached = new ImageResourceCell();
Header<Boolean> header = new Header<Boolean>(headerCheckbox) {
@Override
public Boolean getValue() {
return false;
}
};
Header<ImageResource> attachedPin = new Header<ImageResource>(headerAttached) {
@Override
public ImageResource getValue() {
return imageBundle.attachmentIcon();
}
};
header.setUpdater(new ValueUpdater<Boolean>() {
@Override
public void update(Boolean value) {
List<Message> displayedItems = MessagesCellTable.this.getVisibleItems();
for (Message msg : displayedItems) {
checkboxCol.getFieldUpdater().update(0, msg, value);
}
}
});
fromCol = getFromColumn();
subjectCol = getSubjectColumn();
attachedCol = getAttachmentColumn();
dateCol = getDateColumn();
addColumn(checkboxCol, new CheckboxHeader(selectionModel, dataProvider));
setColumnWidth(checkboxCol, 3, Unit.EM);
addColumn(fromCol, constants.mailTableFrom());
setColumnWidth(fromCol, 40, Unit.PCT);
addColumn(subjectCol, constants.mailTableSubject());
setColumnWidth(subjectCol, 60, Unit.PCT);
addColumn(attachedCol, attachedPin);
setColumnWidth(attachedCol, 33, Unit.PX);
addColumn(dateCol, constants.mailTableDate());
setColumnWidth(dateCol, 10, Unit.EM);
setRowCount(PAGE_SIZE, false);
this.setStyleBaseOnTag();
// redraw();
setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
setAutoHeaderRefreshDisabled(true);
setSelectionModel(selectionModel, DefaultSelectionEventManager.<Message> createBlacklistManager(0));
// make table sortable
AsyncHandler columnSortHandler = new AsyncHandler(this);
addColumnSortHandler(columnSortHandler);
fromCol.setSortable(true);
subjectCol.setSortable(true);
attachedCol.setSortable(true);
dateCol.setSortable(true);
}