@Override public void init(final ProcessInstanceListPresenter presenter) { final List<String> bannedColumns = new ArrayList<String>(); bannedColumns.add(constants.Select()); bannedColumns.add(constants.Id()); bannedColumns.add(constants.Name()); bannedColumns.add(constants.Process_Instance_Description()); bannedColumns.add(constants.Actions()); final List<String> initColumns = new ArrayList<String>(); initColumns.add(constants.Select()); initColumns.add(constants.Id()); initColumns.add(constants.Name()); initColumns.add(constants.Process_Instance_Description()); initColumns.add(constants.Version()); initColumns.add(constants.Actions()); initColumns.add(constants.Version()); final Button button = new Button(); button.setText("+"); button.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { Command addNewGrid = new Command() { @Override public void execute() { HashMap<String, Object> newTabFormValues = newTabFilterPopup.getFormValues(); final String key = getValidKeyForAdditionalListGrid("ProcessInstancesGrid_"); filterPagedTable.saveNewTabSettings(key, newTabFormValues); final ExtendedPagedTable<ProcessInstanceSummary> extendedPagedTable = createGridInstance( new GridGlobalPreferences(key, initColumns, bannedColumns), key); extendedPagedTable.setDataProvider(presenter.getDataProvider()); filterPagedTable.createNewTab( extendedPagedTable, key, button, new Command() { @Override public void execute() { currentListGrid = extendedPagedTable; applyFilterOnPresenter(key); } }); applyFilterOnPresenter(newTabFormValues); } }; createFilterForm(); newTabFilterPopup.show(addNewGrid, getMultiGridPreferencesStore()); } }); super.init( presenter, new GridGlobalPreferences("ProcessInstancesGrid", initColumns, bannedColumns), button); }
@Override public void initColumns(ExtendedPagedTable<ProcessInstanceSummary> extendedPagedTable) { Column checkColumn = initChecksColumn(); Column processInstanceIdColumn = initProcessInstanceIdColumn(); Column processNameColumn = initProcessNameColumn(); Column processInitiatorColumn = initInitiatorColumn(); Column processVersionColumn = initProcessVersionColumn(); Column processStateColumn = initProcessStateColumn(); Column startTimeColumn = initStartDateColumn(); Column descriptionColumn = initDescriptionColumn(); actionsColumn = initActionsColumn(); List<ColumnMeta<ProcessInstanceSummary>> columnMetas = new ArrayList<ColumnMeta<ProcessInstanceSummary>>(); columnMetas.add(new ColumnMeta<ProcessInstanceSummary>(checkColumn, constants.Select())); columnMetas.add( new ColumnMeta<ProcessInstanceSummary>(processInstanceIdColumn, constants.Id())); columnMetas.add(new ColumnMeta<ProcessInstanceSummary>(processNameColumn, constants.Name())); columnMetas.add( new ColumnMeta<ProcessInstanceSummary>( descriptionColumn, constants.Process_Instance_Description())); columnMetas.add( new ColumnMeta<ProcessInstanceSummary>(processInitiatorColumn, constants.Initiator())); columnMetas.add( new ColumnMeta<ProcessInstanceSummary>(processVersionColumn, constants.Version())); columnMetas.add(new ColumnMeta<ProcessInstanceSummary>(processStateColumn, constants.State())); columnMetas.add( new ColumnMeta<ProcessInstanceSummary>(startTimeColumn, constants.Start_Date())); columnMetas.add(new ColumnMeta<ProcessInstanceSummary>(actionsColumn, constants.Actions())); extendedPagedTable.addColumns(columnMetas); }
private void initTableColumns(final SelectionModel<ProcessSummary> selectionModel) { // Checkbox column. This table will uses a checkbox column for selection. // Alternatively, you can call dataGrid.setSelectionEnabled(true) to enable // mouse selection. Column<ProcessSummary, Boolean> checkColumn = new Column<ProcessSummary, Boolean>(new CheckboxCell(true, false)) { @Override public Boolean getValue(ProcessSummary object) { // Get the value from the selection model. return selectionModel.isSelected(object); } }; processdefListGrid.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>")); processdefListGrid.setColumnWidth(checkColumn, "40px"); // Id. Column<ProcessSummary, String> processIdColumn = new Column<ProcessSummary, String>(new EditTextCell()) { @Override public String getValue(ProcessSummary object) { return object.getId(); } }; processIdColumn.setSortable(true); sortHandler.setComparator( processIdColumn, new Comparator<ProcessSummary>() { public int compare(ProcessSummary o1, ProcessSummary o2) { return Long.valueOf(o1.getId()).compareTo(Long.valueOf(o2.getId())); } }); processdefListGrid.addColumn( processIdColumn, new ResizableHeader(constants.Id(), processdefListGrid, processIdColumn)); // Process Id String. Column<ProcessSummary, String> processNameColumn = new Column<ProcessSummary, String>(new EditTextCell()) { @Override public String getValue(ProcessSummary object) { return object.getName(); } }; processNameColumn.setSortable(true); sortHandler.setComparator( processNameColumn, new Comparator<ProcessSummary>() { public int compare(ProcessSummary o1, ProcessSummary o2) { return o1.getName().compareTo(o2.getName()); } }); processdefListGrid.addColumn( processNameColumn, new ResizableHeader(constants.Name(), processdefListGrid, processNameColumn)); // Process PKG. Column<ProcessSummary, String> processPkgColumn = new Column<ProcessSummary, String>(new EditTextCell()) { @Override public String getValue(ProcessSummary object) { return object.getPackageName(); } }; processPkgColumn.setSortable(true); sortHandler.setComparator( processPkgColumn, new Comparator<ProcessSummary>() { public int compare(ProcessSummary o1, ProcessSummary o2) { return o1.getPackageName().compareTo(o2.getPackageName()); } }); processdefListGrid.addColumn( processPkgColumn, new ResizableHeader(constants.Package(), processdefListGrid, processPkgColumn)); // Process Session Id. Column<ProcessSummary, Number> processSessionIdColumn = new Column<ProcessSummary, Number>(new NumberCell()) { @Override public Number getValue(ProcessSummary object) { return object.getSessionId(); } }; processSessionIdColumn.setSortable(true); sortHandler.setComparator( processSessionIdColumn, new Comparator<ProcessSummary>() { public int compare(ProcessSummary o1, ProcessSummary o2) { return (o1.getSessionId() == o2.getSessionId()) ? 0 : 1; } }); processdefListGrid.addColumn( processSessionIdColumn, new ResizableHeader("Session Id", processdefListGrid, processSessionIdColumn)); processdefListGrid.setColumnWidth(processSessionIdColumn, "90px"); // Version Type Column<ProcessSummary, String> versionColumn = new Column<ProcessSummary, String>(new EditTextCell()) { @Override public String getValue(ProcessSummary object) { return object.getVersion(); } }; versionColumn.setSortable(true); sortHandler.setComparator( versionColumn, new Comparator<ProcessSummary>() { public int compare(ProcessSummary o1, ProcessSummary o2) { return o1.getVersion().compareTo(o2.getVersion()); } }); processdefListGrid.addColumn( versionColumn, new ResizableHeader(constants.Version(), processdefListGrid, versionColumn)); processdefListGrid.setColumnWidth(versionColumn, "90px"); // actions (icons) List<HasCell<ProcessSummary, ?>> cells = new LinkedList<HasCell<ProcessSummary, ?>>(); cells.add( new StartActionHasCell( "Start process", new Delegate<ProcessSummary>() { @Override public void execute(ProcessSummary process) { PlaceRequest placeRequestImpl = new DefaultPlaceRequest("Form Display"); System.out.println("Opening form for process id = " + process.getId()); placeRequestImpl.addParameter("processId", process.getId()); placeRequestImpl.addParameter("sessionId", String.valueOf(process.getSessionId())); placeManager.goTo(placeRequestImpl); } })); cells.add( new DetailsActionHasCell( "Details", new Delegate<ProcessSummary>() { @Override public void execute(ProcessSummary process) { PlaceRequest placeRequestImpl = new DefaultPlaceRequest(constants.Process_Definition_Details()); placeRequestImpl.addParameter("processId", process.getId()); placeRequestImpl.addParameter( "sessionId", Integer.toString(process.getSessionId())); placeManager.goTo(placeRequestImpl); } })); CompositeCell<ProcessSummary> cell = new CompositeCell<ProcessSummary>(cells); Column<ProcessSummary, ProcessSummary> actionsColumn = new Column<ProcessSummary, ProcessSummary>(cell) { @Override public ProcessSummary getValue(ProcessSummary object) { return object; } }; processdefListGrid.addColumn(actionsColumn, "Actions"); processdefListGrid.setColumnWidth(actionsColumn, "70px"); }