private void initNoActionColumnManager(final ExtendedPagedTable extendedPagedTable) {
    noActionColumnManager =
        DefaultSelectionEventManager.createCustomManager(
            new DefaultSelectionEventManager.EventTranslator<RequestSummary>() {

              @Override
              public boolean clearCurrentSelection(CellPreviewEvent<RequestSummary> event) {
                return false;
              }

              @Override
              public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                  CellPreviewEvent<RequestSummary> event) {
                NativeEvent nativeEvent = event.getNativeEvent();
                if (BrowserEvents.CLICK.equals(nativeEvent.getType())) {
                  // Ignore if the event didn't occur in the correct column.
                  if (extendedPagedTable.getColumnIndex(actionsColumn) == event.getColumn()) {
                    return DefaultSelectionEventManager.SelectAction.IGNORE;
                  }
                  // Extension for checkboxes
                  Element target = nativeEvent.getEventTarget().cast();
                  if ("input".equals(target.getTagName().toLowerCase())) {
                    final InputElement input = target.cast();
                    if ("checkbox".equals(input.getType().toLowerCase())) {
                      // Synchronize the checkbox with the current selection state.
                      if (!selectedRequestSummary.contains(event.getValue())) {
                        selectedRequestSummary.add(event.getValue());
                        input.setChecked(true);
                      } else {
                        selectedRequestSummary.remove(event.getValue());
                        input.setChecked(false);
                      }
                      return DefaultSelectionEventManager.SelectAction.IGNORE;
                    }
                  }
                }

                return DefaultSelectionEventManager.SelectAction.DEFAULT;
              }
            });
  }
  @Override
  public void init(final DocumentListPresenter presenter) {

    List<String> bannedColumns = new ArrayList<String>();
    bannedColumns.add(constants.DocumentID());
    bannedColumns.add(constants.DocumentName());
    bannedColumns.add(constants.Actions());
    List<String> initColumns = new ArrayList<String>();
    initColumns.add(constants.DocumentID());
    initColumns.add(constants.DocumentName());
    initColumns.add(constants.Actions());

    super.init(
        presenter, new GridGlobalPreferences("DocumentListGrid", initColumns, bannedColumns));

    initFiltersBar();
    initPathLink();

    selectionModel = new NoSelectionModel<CMSContentSummary>();
    selectionModel.addSelectionChangeHandler(
        new SelectionChangeEvent.Handler() {
          @Override
          public void onSelectionChange(SelectionChangeEvent event) {
            boolean close = false;
            if (selectedRow == -1) {
              listGrid.setRowStyles(selectedStyles);
              selectedRow = listGrid.getKeyboardSelectedRow();
              listGrid.redraw();
            } else if (listGrid.getKeyboardSelectedRow() != selectedRow) {

              listGrid.setRowStyles(selectedStyles);
              selectedRow = listGrid.getKeyboardSelectedRow();
              listGrid.redraw();
            } else {
              close = true;
            }

            selectedItem = selectionModel.getLastSelectedObject();
          }
        });

    noActionColumnManager =
        DefaultSelectionEventManager.createCustomManager(
            new DefaultSelectionEventManager.EventTranslator<CMSContentSummary>() {

              @Override
              public boolean clearCurrentSelection(CellPreviewEvent<CMSContentSummary> event) {
                return false;
              }

              @Override
              public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                  CellPreviewEvent<CMSContentSummary> event) {
                NativeEvent nativeEvent = event.getNativeEvent();
                if (BrowserEvents.CLICK.equals(nativeEvent.getType())) {
                  // Ignore if the event didn't occur in the correct
                  // column.
                  if (listGrid.getColumnIndex(actionsColumn) == event.getColumn()) {
                    return DefaultSelectionEventManager.SelectAction.IGNORE;
                  }
                }
                return DefaultSelectionEventManager.SelectAction.DEFAULT;
              }
            });
    listGrid.setSelectionModel(selectionModel, noActionColumnManager);

    Button configRepoButton = new Button();
    configRepoButton.setIcon(IconType.COG);
    configRepoButton.setTitle(Constants.INSTANCE.ConfigurationPanel());
    configRepoButton.addClickHandler(
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {
            PlaceStatus instanceDetailsStatus =
                placeManager.getStatus(new DefaultPlaceRequest("CMIS Configuration"));
            if (instanceDetailsStatus == PlaceStatus.OPEN) {
              placeManager.closePlace("CMIS Configuration");
            }
            placeManager.goTo("CMIS Configuration");
          }
        });

    listGrid.getRightToolbar().add(configRepoButton);
    listGrid.setEmptyTableCaption(constants.No_Documents_Available());
    listGrid.setRowStyles(selectedStyles);
  }
  @Override
  public void initSelectionModel() {

    final ExtendedPagedTable extendedPagedTable = getListGrid();
    extendedPagedTable.setEmptyTableCaption(constants.No_Process_Instances_Found());
    extendedPagedTable.getRightActionsToolbar().clear();
    initExtraButtons(extendedPagedTable);
    initBulkActions(extendedPagedTable);
    selectionModel = new NoSelectionModel<ProcessInstanceSummary>();
    selectionModel.addSelectionChangeHandler(
        new SelectionChangeEvent.Handler() {
          @Override
          public void onSelectionChange(SelectionChangeEvent event) {

            boolean close = false;
            if (selectedRow == -1) {
              extendedPagedTable.setRowStyles(selectedStyles);
              selectedRow = extendedPagedTable.getKeyboardSelectedRow();
              extendedPagedTable.redraw();

            } else if (extendedPagedTable.getKeyboardSelectedRow() != selectedRow) {
              extendedPagedTable.setRowStyles(selectedStyles);
              selectedRow = extendedPagedTable.getKeyboardSelectedRow();
              extendedPagedTable.redraw();
            } else {
              close = true;
            }

            selectedItem = selectionModel.getLastSelectedObject();

            PlaceStatus status =
                placeManager.getStatus(new DefaultPlaceRequest("Process Instance Details Multi"));

            if (status == PlaceStatus.CLOSE) {
              placeManager.goTo("Process Instance Details Multi");
              processInstanceSelected.fire(
                  new ProcessInstanceSelectionEvent(
                      selectedItem.getDeploymentId(),
                      selectedItem.getProcessInstanceId(),
                      selectedItem.getProcessId(),
                      selectedItem.getProcessName(),
                      selectedItem.getState()));
            } else if (status == PlaceStatus.OPEN && !close) {
              processInstanceSelected.fire(
                  new ProcessInstanceSelectionEvent(
                      selectedItem.getDeploymentId(),
                      selectedItem.getProcessInstanceId(),
                      selectedItem.getProcessId(),
                      selectedItem.getProcessName(),
                      selectedItem.getState()));
            } else if (status == PlaceStatus.OPEN && close) {
              placeManager.closePlace("Process Instance Details Multi");
            }
          }
        });

    noActionColumnManager =
        DefaultSelectionEventManager.createCustomManager(
            new DefaultSelectionEventManager.EventTranslator<ProcessInstanceSummary>() {

              @Override
              public boolean clearCurrentSelection(CellPreviewEvent<ProcessInstanceSummary> event) {
                return false;
              }

              @Override
              public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                  CellPreviewEvent<ProcessInstanceSummary> event) {
                NativeEvent nativeEvent = event.getNativeEvent();
                if (BrowserEvents.CLICK.equals(nativeEvent.getType())) {
                  // Ignore if the event didn't occur in the correct column.
                  if (extendedPagedTable.getColumnIndex(actionsColumn) == event.getColumn()) {
                    return DefaultSelectionEventManager.SelectAction.IGNORE;
                  }
                  // Extension for checkboxes
                  Element target = nativeEvent.getEventTarget().cast();
                  if ("input".equals(target.getTagName().toLowerCase())) {
                    final InputElement input = target.cast();
                    if ("checkbox".equals(input.getType().toLowerCase())) {
                      // Synchronize the checkbox with the current selection state.
                      if (!selectedProcessInstances.contains(event.getValue())) {
                        selectedProcessInstances.add(event.getValue());
                        input.setChecked(true);
                      } else {
                        selectedProcessInstances.remove(event.getValue());
                        input.setChecked(false);
                      }
                      controlBulkOperations();
                      return DefaultSelectionEventManager.SelectAction.IGNORE;
                    }
                  }
                }

                return DefaultSelectionEventManager.SelectAction.DEFAULT;
              }
            });

    extendedPagedTable.setSelectionModel(selectionModel, noActionColumnManager);
    extendedPagedTable.setRowStyles(selectedStyles);
  }