/** {@inheritDoc} */ @Override public boolean execute(IActionHandler actionHandler, Map<String, Object> context) { context.put(AbstractQbeAction.PAGINATE, null); IPageable pageableModel = getModel(context); /* * we are on the pagination button view. */ int[] collectionViewPath = new int[] {-1, -1}; List<?> stickyResults = null; IView<E> collectionView = getView(collectionViewPath, context); if (collectionView.getDescriptor() instanceof ICollectionViewDescriptor && ((ICollectionViewDescriptor) collectionView.getDescriptor()).getSelectionMode() == ESelectionMode.MULTIPLE_INTERVAL_CUMULATIVE_SELECTION && !(pageableModel instanceof FilterableBeanCollectionModule)) { stickyResults = getSelectedModels(collectionViewPath, context); } pageableModel.setStickyResults(stickyResults); try { if (pageOffset != null) { if (pageableModel.getPage() != null) { pageableModel.setPage(pageableModel.getPage() + pageOffset); } else { pageableModel.setPage(pageOffset); } } return super.execute(actionHandler, context); } finally { if (stickyResults != null) { setSelectedModels(collectionViewPath, stickyResults, context); } pageableModel.setStickyResults(null); } }