public void initColumns() { cellTable.addColumn( new TextColumn<Photo>() { @Override public String getValue(Photo object) { return object.getTitle(); } }, "Title"); cellTable.addColumn( new TextColumn<Photo>() { @Override public String getValue(Photo object) { return object.getOwnerName(); } }, "Owner name"); cellTable.addColumn( new TextColumn<Photo>() { @Override public String getValue(Photo object) { return object.getViews(); } }, "Views"); cellTable.addColumn( new TextColumn<Photo>() { @Override public String getValue(Photo object) { return DateTimeFormat.getFormat("dd-MM-yyyy HH:mm").format(object.getDateupload()); } }, "Date Upload"); cellTable.addColumn( new TextColumn<Photo>() { @Override public String getValue(Photo object) { return DateTimeFormat.getFormat("dd-MM-yyyy HH:mm").format(object.getLastupdate()); } }, "Last Update"); cellTable.addColumn( new Column<Photo, String>(new ImageCell(75, 75)) { @Override public String getValue(Photo object) { return object.getUrl(); } }, "Photo"); cellTable.addCellPreviewHandler( new CellPreviewEvent.Handler<Photo>() { @Override public void onCellPreview(CellPreviewEvent<Photo> event) { if (event.getNativeEvent().getType().equals("mousedown")) { Photo photo = event.getValue(); AppContext.getInstance().getEventBus().fireEvent(new ShowPhotoDialog(photo)); } } }); }