Example usage for com.google.gwt.view.client DefaultSelectionEventManager createCustomManager

List of usage examples for com.google.gwt.view.client DefaultSelectionEventManager createCustomManager

Introduction

In this page you can find the example usage for com.google.gwt.view.client DefaultSelectionEventManager createCustomManager.

Prototype

public static <T> DefaultSelectionEventManager<T> createCustomManager(EventTranslator<T> translator) 

Source Link

Document

Create a new DefaultSelectionEventManager using the specified EventTranslator to control which SelectAction to take for each event.

Usage

From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.list.EntryList.java

License:Apache License

public EntryList(final AbstractSelectionModel<T> selectionModel) {
    // The table is not provided by GWT, such that is
    // must be initialized before the widget is initialized:
    table = new PagingDataGrid<T>(20);
    initWidget(uiBinder.createAndBindUi(this));
    this.selectionModel = selectionModel;

    DefaultSelectionEventManager<T> selectionManager = DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<T>() {
                @Override/*w  w  w  .  j a v  a2 s  .  co m*/
                public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        if (multiSelect) {
                            return SelectAction.TOGGLE;
                        } else {
                            if (selectionModel instanceof MultiSelectionModel) {
                                ((MultiSelectionModel<?>) selectionModel).clear();
                            }
                            return SelectAction.SELECT;
                        }
                    }
                    return action;
                }
            });
    table.setSelectionModel(selectionModel, selectionManager);
}

From source file:org.jboss.as.console.client.administration.role.form.RolesFormItem.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    // table//from   w w w.  ja  v  a2s . c om
    DefaultCellTable<Role> table = new DefaultCellTable<Role>(pageSize, keyProvider);
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<Role>() {
                @Override
                public SelectAction translateSelectionEvent(CellPreviewEvent<Role> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        Role role = event.getValue();
                        boolean selected = selectionModel.isSelected(role);
                        return selected ? SelectAction.DESELECT : SelectAction.SELECT;
                    }
                    return action;
                }
            }));
    dataProvider.addDataDisplay(table);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(final SelectionChangeEvent event) {
            value.clear();
            value.addAll(selectionModel.getSelectedSet());
            setModified(true);
        }
    });

    // columns
    Column<Role, Boolean> checkColumn = new Column<Role, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(Role role) {
            // Get the value from the selection model.
            return selectionModel.isSelected(role);
        }
    };
    TextColumn<Role> nameColumn = new TextColumn<Role>() {
        @Override
        public String getValue(Role role) {
            return role.getName();
        }
    };
    table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    table.setColumnWidth(checkColumn, 40, PX);
    table.addColumn(nameColumn, Console.CONSTANTS.common_label_name());

    // pager
    DefaultPager pager = new DefaultPager();
    pager.setWidth("auto");
    pager.setDisplay(table);

    // panels
    VerticalPanel content = new VerticalPanel();
    content.setWidth("95%");
    content.add(table);
    content.add(pager);
    wrapper = new FormItemPanelWrapper(content, this);
    return wrapper;
}

From source file:org.jboss.as.console.client.v3.deployment.wizard.AssignContentDialog.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    VerticalPanel root = new VerticalPanel();
    root.setStyleName("window-content");

    errorMessages = new HTML();
    errorMessages.setVisible(false);/*from  w  w  w.  ja v  a2 s .  c  o  m*/
    errorMessages.setStyleName("error-panel");
    intro = new Label();
    intro.getElement().getStyle().setMarginBottom(10, PX);

    root.add(new HTML("<h3>" + Console.CONSTANTS.assignContent() + "</h3>"));
    root.add(errorMessages);
    root.add(intro);

    // provider, selection model
    ProvidesKey<String> keyProvider = item -> item;
    dataProvider = new ListDataProvider<>(keyProvider);
    selectionModel = new MultiSelectionModel<>(keyProvider);

    // table
    table = new DefaultCellTable<>(5, keyProvider);
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<String>() {
                @Override
                public SelectAction translateSelectionEvent(CellPreviewEvent<String> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        String serverGroup = event.getValue();
                        boolean selected = selectionModel.isSelected(serverGroup);
                        return selected ? SelectAction.DESELECT : SelectAction.SELECT;
                    }
                    return action;
                }
            }));
    dataProvider.addDataDisplay(table);
    root.add(table);

    // columns
    Column<String, Boolean> checkColumn = new Column<String, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(String serverGroup) {
            return selectionModel.isSelected(serverGroup);
        }
    };
    TextColumn<String> nameColumn = new TextColumn<String>() {
        @Override
        public String getValue(String serverGroup) {
            return serverGroup;
        }
    };
    table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    table.setColumnWidth(checkColumn, 40, PX);
    table.addColumn(nameColumn, "Server Group");

    // pager
    DefaultPager pager = new DefaultPager();
    pager.setWidth("auto");
    pager.setDisplay(table);
    root.add(pager);

    // enable assignments?
    Form<Object> form = new Form<>(Object.class); // form is just used for layout reasons
    CheckBoxItem enable = new CheckBoxItem("enable",
            Console.CONSTANTS.enableAssignmentOnSelectedServerGroups());
    form.setFields(enable);
    root.add(form.asWidget());

    return new TrappedFocusPanel(new WindowContentBuilder(root,
            new DialogueOptions(Console.CONSTANTS.common_label_assign(), event -> {
                Set<String> selectedSet = selectionModel.getSelectedSet();
                if (selectedSet.isEmpty()) {
                    errorMessages.setText(Console.CONSTANTS.pleaseSelectServerGroup());
                    errorMessages.setVisible(true);
                } else {
                    close();
                    presenter.assignContent(content, selectedSet, enable.getValue(), unmanaged);
                }
            }, Console.CONSTANTS.common_label_cancel(), event -> close())).build());
}

From source file:org.jboss.as.console.client.v3.deployment.wizard.UnassignContentDialog.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    VerticalPanel root = new VerticalPanel();
    root.setStyleName("window-content");

    errorMessages = new HTML();
    errorMessages.setVisible(false);//  ww w.ja v a2 s  . co  m
    errorMessages.setStyleName("error-panel");
    intro = new Label();
    intro.getElement().getStyle().setMarginBottom(10, PX);

    root.add(new HTML("<h3>Unassign Content</h3>"));
    root.add(errorMessages);
    root.add(intro);

    // provider, selection model
    ProvidesKey<String> keyProvider = item -> item;
    dataProvider = new ListDataProvider<>(keyProvider);
    selectionModel = new MultiSelectionModel<>(keyProvider);

    // table
    table = new DefaultCellTable<>(5, keyProvider);
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager
            .createCustomManager(new DefaultSelectionEventManager.CheckboxEventTranslator<String>() {
                @Override
                public SelectAction translateSelectionEvent(CellPreviewEvent<String> event) {
                    SelectAction action = super.translateSelectionEvent(event);
                    if (action.equals(SelectAction.IGNORE)) {
                        String serverGroup = event.getValue();
                        boolean selected = selectionModel.isSelected(serverGroup);
                        return selected ? SelectAction.DESELECT : SelectAction.SELECT;
                    }
                    return action;
                }
            }));
    dataProvider.addDataDisplay(table);
    root.add(table);

    // columns
    Column<String, Boolean> checkColumn = new Column<String, Boolean>(new CheckboxCell(true, false)) {
        @Override
        public Boolean getValue(String serverGroup) {
            return selectionModel.isSelected(serverGroup);
        }
    };
    TextColumn<String> nameColumn = new TextColumn<String>() {
        @Override
        public String getValue(String serverGroup) {
            return serverGroup;
        }
    };
    table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
    table.setColumnWidth(checkColumn, 40, PX);
    table.addColumn(nameColumn, "Server Group");

    // pager
    DefaultPager pager = new DefaultPager();
    pager.setWidth("auto");
    pager.setDisplay(table);
    root.add(pager);

    return new TrappedFocusPanel(new WindowContentBuilder(root,
            new DialogueOptions(Console.CONSTANTS.common_label_unassign(), event -> {
                Set<String> selectedSet = selectionModel.getSelectedSet();
                if (selectedSet.isEmpty()) {
                    errorMessages.setText(Console.CONSTANTS.pleaseSelectServerGroup());
                    errorMessages.setVisible(true);
                } else {
                    close();
                    presenter.unassignContent(content, selectedSet);
                }
            }, Console.CONSTANTS.common_label_cancel(), event -> close())).build());
}

From source file:org.jbpm.console.ng.cm.client.casegrid.CasesListGridViewImpl.java

License:Apache License

@Override
public void init(final CasesListGridPresenter presenter) {
    List<String> bannedColumns = new ArrayList<String>();
    bannedColumns.add(constants.Id());/*from  w w w .  ja v a  2 s  . c o m*/
    List<String> initColumns = new ArrayList<String>();
    initColumns.add(constants.Case());
    initColumns.add(constants.Recipient());
    initColumns.add(constants.Description());
    initColumns.add(constants.Status());
    super.init(presenter, new GridGlobalPreferences("CaseListGrid", initColumns, bannedColumns));

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

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

            selectedItem = selectionModel.getLastSelectedObject();

            DefaultPlaceRequest defaultPlaceRequest = new DefaultPlaceRequest("Case Details Multi");
            PlaceStatus status = placeManager.getStatus(defaultPlaceRequest);

            if (status == PlaceStatus.CLOSE) {
                placeManager.goTo(defaultPlaceRequest);
                caseSelected.fire(new CaseSelectionEvent(selectedItem.getCaseId(), selectedItem.getCaseName()));
            } else if (status == PlaceStatus.OPEN && !close) {
                caseSelected.fire(new CaseSelectionEvent(selectedItem.getCaseId(), selectedItem.getCaseName()));
            } else if (status == PlaceStatus.OPEN && close) {
                placeManager.closePlace("Case Details Multi");
            }

        }
    });

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

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

                @Override
                public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                        CellPreviewEvent<CaseSummary> 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);

    listGrid.setRowStyles(selectedStyles);
    initExtraButtons();
    initFiltersBar();
}

From source file:org.jbpm.console.ng.dm.client.document.list.DocumentListViewImpl.java

License:Apache License

@Override
public void init(final DocumentListPresenter presenter) {

    List<String> bannedColumns = new ArrayList<String>();
    bannedColumns.add(COL_ID_ID);//from  w  ww  .ja  v a 2  s.c o  m
    bannedColumns.add(COL_ID_NAME);
    bannedColumns.add(COL_ID_ACTIONS);
    List<String> initColumns = new ArrayList<String>();
    initColumns.add(COL_ID_ID);
    initColumns.add(COL_ID_NAME);
    initColumns.add(COL_ID_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);
}

From source file:org.jbpm.console.ng.ht.client.editors.taskslist.grid.dash.DataSetTasksListGridViewImpl.java

License:Apache License

public void initSelectionModel() {
    final ExtendedPagedTable<TaskSummary> extendedPagedTable = getListGrid();
    selectedStyles = new RowStyles<TaskSummary>() {

        @Override/*from   w ww . j  a  v  a  2  s.  c om*/
        public String getStyleNames(TaskSummary row, int rowIndex) {
            if (rowIndex == selectedRow) {
                return "selected";
            } else {
                if (row.getStatus().equals("InProgress") || row.getStatus().equals("Ready")) {
                    if (row.getPriority() == 5) {
                        return "five";
                    } else if (row.getPriority() == 4) {
                        return "four";
                    } else if (row.getPriority() == 3) {
                        return "three";
                    } else if (row.getPriority() == 2) {
                        return "two";
                    } else if (row.getPriority() == 1) {
                        return "one";
                    }
                } else if (row.getStatus().equals("Completed")) {
                    return "completed";
                }

            }
            return null;
        }
    };

    extendedPagedTable.setEmptyTableCaption(constants.No_Tasks_Found());

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

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

            selectedItem = selectionModel.getLastSelectedObject();

            DefaultPlaceRequest defaultPlaceRequest = new DefaultPlaceRequest("Task Details Multi");
            PlaceStatus status = placeManager.getStatus(defaultPlaceRequest);
            boolean logOnly = false;
            if (selectedItem.getStatus().equals("Completed") && selectedItem.isLogOnly()) {
                logOnly = true;
            }
            if (status == PlaceStatus.CLOSE) {
                placeManager.goTo(defaultPlaceRequest);
                taskSelected.fire(new TaskSelectionEvent(selectedItem.getTaskId(), selectedItem.getTaskName(),
                        selectedItem.isForAdmin(), logOnly));
            } else if (status == PlaceStatus.OPEN && !close) {
                taskSelected.fire(new TaskSelectionEvent(selectedItem.getTaskId(), selectedItem.getTaskName(),
                        selectedItem.isForAdmin(), logOnly));
            } else if (status == PlaceStatus.OPEN && close) {
                placeManager.closePlace("Task Details Multi");
            }

        }
    });

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

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

                @Override
                public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                        CellPreviewEvent<TaskSummary> 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;
                        }
                    }
                    return DefaultSelectionEventManager.SelectAction.DEFAULT;
                }
            });
    extendedPagedTable.setSelectionModel(selectionModel, noActionColumnManager);
    extendedPagedTable.setRowStyles(selectedStyles);

}

From source file:org.jbpm.console.ng.pr.client.editors.documents.list.ProcessDocumentListViewImpl.java

License:Apache License

@Override
public void init(final ProcessDocumentListPresenter presenter) {
    List<String> bannedColumns = new ArrayList<String>();

    bannedColumns.add(COL_ID_DOCID);/*  w ww  .j a  va2  s . c  om*/
    bannedColumns.add(COL_ID_ACTIONS);
    List<String> initColumns = new ArrayList<String>();
    initColumns.add(COL_ID_DOCID);
    initColumns.add(COL_ID_LASTMOD);
    initColumns.add(COL_ID_DOCSIZE);
    initColumns.add(COL_ID_ACTIONS);

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

    listGrid.setEmptyTableCaption(constants.No_Documents_Available());

    selectionModel = new NoSelectionModel<DocumentSummary>();
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {

            if (selectedRow == -1) {
                listGrid.setRowStyles(selectedStyles);
                selectedRow = listGrid.getKeyboardSelectedRow();
                listGrid.redraw();

            } else if (listGrid.getKeyboardSelectedRow() != selectedRow) {
                listGrid.setRowStyles(selectedStyles);
                selectedRow = listGrid.getKeyboardSelectedRow();
                listGrid.redraw();
            }

            selectedItem = selectionModel.getLastSelectedObject();

        }
    });

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

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

                @Override
                public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                        CellPreviewEvent<DocumentSummary> 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);
    listGrid.setRowStyles(selectedStyles);
}

From source file:org.jbpm.console.ng.pr.client.editors.instance.list.dash.DataSetProcessInstanceListViewImpl.java

License:Apache License

@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/*from ww  w . j  a  v a  2s.co m*/
        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);
}

From source file:org.jbpm.console.ng.pr.client.editors.instance.list.variables.dash.DataSetProcessInstanceListVariableViewImpl.java

License:Apache License

@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<ProcessInstanceVariableSummary>();
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override//from w  w w  . ja  v  a 2  s .c  om
        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"));

        }
    });

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

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

                @Override
                public DefaultSelectionEventManager.SelectAction translateSelectionEvent(
                        CellPreviewEvent<ProcessInstanceVariableSummary> 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);
                                }
                                return DefaultSelectionEventManager.SelectAction.IGNORE;
                            }
                        }
                    }

                    return DefaultSelectionEventManager.SelectAction.DEFAULT;
                }

            });

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