private Widget createPageControllerPanel(final FlexTable mainPanel) { final IconButton nextPageImageButton = new IconButton( null, true, BaseImageBundle.images.next(), BaseImageBundle.images.next(), BaseImageBundle.images.next(), BaseImageBundle.images.next()); nextPageImageButton.setSTYLE("commentToolBarButton"); nextPageImageButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { if (pageNumber == lastPageNumber) { return; } pageNumber++; fetchPage(); } }); final IconButton previousPageImageButton = new IconButton( null, false, BaseImageBundle.images.previous(), BaseImageBundle.images.previous(), BaseImageBundle.images.previous(), BaseImageBundle.images.previous()); previousPageImageButton.setSTYLE("commentToolBarButton"); previousPageImageButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { if (pageNumber == 0) { return; } pageNumber--; fetchPage(); } }); final IconButton lastPageImageButton = new IconButton( null, false, BaseImageBundle.images.last(), BaseImageBundle.images.last(), BaseImageBundle.images.last(), BaseImageBundle.images.last()); lastPageImageButton.setSTYLE("commentToolBarButton"); lastPageImageButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { pageNumber = (int) lastPageNumber; fetchPage(); } }); final IconButton firstPageImageButton = new IconButton( null, false, BaseImageBundle.images.first(), BaseImageBundle.images.first(), BaseImageBundle.images.first(), BaseImageBundle.images.first()); firstPageImageButton.setSTYLE("commentToolBarButton"); firstPageImageButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { pageNumber = 0; fetchPage(); } }); if (lastPageNumber < 0) { firstPageImageButton.setEnabled(false); previousPageImageButton.setEnabled(false); nextPageImageButton.setEnabled(false); lastPageImageButton.setEnabled(false); } HorizontalPanel buttonPanel = new HorizontalPanel(); buttonPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); buttonPanel.add(firstPageImageButton); buttonPanel.add(previousPageImageButton); Label pageLabel = new Label("Page " + (pageNumber + 1) + " of " + (lastPageNumber + 1), false); if (lastPageNumber < 0) { pageLabel.setText("Page 1 of 1"); } DOM.setStyleAttribute(pageLabel.getElement(), "margin", "0 5px 0 5px"); buttonPanel.add(pageLabel); buttonPanel.add(nextPageImageButton); buttonPanel.add(lastPageImageButton); return buttonPanel; }