Пример #1
0
  /** {@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);
    }
  }