📄 qgridpager.java
字号:
}
private void setupPages() {
pagesCtrl.clear();
final long currentPage = model.getCurrentPage();
final PagerHyperlink firstPageLink = new PagerHyperlink();
firstPageLink.setHTML("<<");
firstPageLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(0);
}
});
firstPageLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
firstPageLink.setDisabled(currentPage == 0);
pagesCtrl.add(firstPageLink);
PagerHyperlink prevPageLink = new PagerHyperlink();
prevPageLink.setHTML("<");
prevPageLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(currentPage - 1);
}
});
prevPageLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
prevPageLink.setDisabled(currentPage == 0);
pagesCtrl.add(prevPageLink);
if(model.isCounterToggledOn()) {
totalRecordsLabel.setVisible(true);
totalRecordsCtrl.setVisible(true);
totalRecordsCtrl.setText(Long.toString(model.getRecordsTotal() == -1 ? 0 : model.getRecordsTotal()));
} else {
totalRecordsLabel.setVisible(false);
totalRecordsCtrl.setVisible(false);
}
long firstPage = (long) Math.floor(currentPage / VISIBLE_PAGES_COUNT) * VISIBLE_PAGES_COUNT;//todo change it
long pageCount = model.getPagesCount();
long totalLastPage = pageCount - 1;
long proposingListLastPage = firstPage + VISIBLE_PAGES_COUNT;
long currentListLastPage = (proposingListLastPage > pageCount ? pageCount : proposingListLastPage) - 1;
for (long page = firstPage; page <= currentListLastPage; page++) {
String label = (page + 1) + "";
if (page == currentPage) {
label = "[" + label + "]";
}
PagerHyperlink pageLink = new PagerHyperlink();
pageLink.setText(label);
pageLink.addStyleName(PagerHyperlink.STYLE_ENABLED);
pageLink.setTitle("Go to " + (page + 1) + " page");
final long newPage = page;
pageLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(newPage);
}
});
pageLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
pagesCtrl.add(pageLink);
}
/*if (lastPage != (model.getPagesCount() - 1)) {//todo restore "..." if needed, actually enabling/disabling of < or > shows its status.
final long nextPage = lastPage + 1;
PagerHyperlink nextPageSetLink = new PagerHyperlink();
nextPageSetLink.setText("...");
nextPageSetLink.addStyleName(PagerHyperlink.STYLE_ENABLED);
nextPageSetLink.setTitle("Go to " + (nextPage + 1) + " page");
nextPageSetLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(nextPage);
}
});
nextPageSetLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
pagesCtrl.add(nextPageSetLink);
}*/
PagerHyperlink nextPageLink = new PagerHyperlink();
nextPageLink.setHTML(">");
nextPageLink.addStyleName(PagerHyperlink.STYLE_ENABLED);
nextPageLink.setDisabled(currentPage >= totalLastPage);
nextPageLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(currentPage + 1);
}
});
nextPageLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
pagesCtrl.add(nextPageLink);
PagerHyperlink lastPageLink = new PagerHyperlink();
lastPageLink.setHTML(">>");
lastPageLink.setDisabled(currentPage >= totalLastPage);
lastPageLink.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
firePageChanged(model.getPagesCount() - 1);
}
});
lastPageLink.addStyleName(PAGER_PADDING_RIGHT_ELEMENT_STYLE);
pagesCtrl.add(lastPageLink);
}
public void reinitPager() {
setupLoadedRecords();
setupPages();
}
public void addPagerListener(QPagerListener listener) {
pagerListeners.add(listener);
}
public void removePagerListener(QPagerListener listener) {
pagerListeners.remove(listener);
}
protected void firePageChanged(long newPage) {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onPageChange(newPage);
}
}
protected void firePageSizeChanged(int newPageSize) {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onPageSizeChange(newPageSize);
}
}
protected void fireCounterToggled(boolean newCounterValue) {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onToggleCounter(newCounterValue);
}
}
private void fireCustomized(SubsetData data) {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onCustomize(data);
}
}
private void fireRefreshed() {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onRefresh();
}
}
private void firePrint() {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onPrint();
}
}
private void fireWord() {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onExportToWord();
}
}
private void fireExcel() {
for (int i = 0; i < pagerListeners.size(); i++) {
QPagerListener listener = (QPagerListener) pagerListeners.get(i);
listener.onExportToExcel();
}
}
public void setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant align) {
}
public void onEvent(Event event, Widget sender) {
if (sender == customizer) {
if (event == OkayCancelPopup.Events.OK) {
SubsetData data = customizer.getSubsetData();
fireCustomized(data);
}
} else if (sender == menu) {
if (event == Events.SELECT_ALL){
selectionModListeners.fireSelectAll();
} else if (event == Events.DESELECT_ALL) {
selectionModListeners.fireDeselectAll();
} else if (event == Events.INVERT_SELECTION) {
selectionModListeners.fireInvertSelection();
}
}
}
public void addGridSelectionModListener(GridSelectionModListener listener) {
selectionModListeners.add(listener);
}
public void removeGridSelectionModListener(GridSelectionModListener listener) {
selectionModListeners.remove(listener);
}
public void onClick(Widget sender) {
if (sender == counterCtrl) {
if (model.isCounterToggledOn() != counterCtrl.isChecked()) {
fireCounterToggled(counterCtrl.isChecked());
}
} else if (sender == counterLabel) {
counterCtrl.setChecked(!model.isCounterToggledOn());
fireCounterToggled(counterCtrl.isChecked());
} else if (sender == refreshButton) {
fireRefreshed();
} else if (sender == printButton) {
firePrint();
} else if (sender == wordButton) {
fireWord();
} else if (sender == excelButton) {
fireExcel();
}
}
public void onChange(Widget sender) {
if (sender == pageSizeCtrl) {
int pageSize = model.getPageSize();
try {
int newPageSize = Integer.parseInt(pageSizeCtrl.getText());
if(newPageSize < 1) {
throw new NumberFormatException();
} else {
pageSize = newPageSize;
firePageSizeChanged(pageSize);
}
} catch (NumberFormatException e) {
pageSizeCtrl.setText(String.valueOf(pageSize));
DialogHelper.showModalMessageDialog(POSITIVE_INT_ERROR_MESSAGE);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -