Search in sources :

Example 1 with TextColumn

use of com.google.gwt.user.cellview.client.TextColumn in project rstudio by rstudio.

the class ModifyKeyboardShortcutsWidget method textColumn.

private TextColumn<KeyboardShortcutEntry> textColumn(String name, final ValueGetter<KeyboardShortcutEntry> getter) {
    TextColumn<KeyboardShortcutEntry> column = new TextColumn<KeyboardShortcutEntry>() {

        @Override
        public String getValue(KeyboardShortcutEntry binding) {
            return getter.getValue(binding);
        }
    };
    column.setSortable(true);
    table_.addColumn(column, new TextHeader(name));
    return column;
}
Also used : TextHeader(com.google.gwt.user.cellview.client.TextHeader) TextColumn(com.google.gwt.user.cellview.client.TextColumn)

Example 2 with TextColumn

use of com.google.gwt.user.cellview.client.TextColumn in project rstudio by rstudio.

the class PackagesPane method initPackagesTable.

private void initPackagesTable() {
    packagesTable_.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
    packagesTable_.setSelectionModel(new NoSelectionModel<PackageInfo>());
    LoadedColumn loadedColumn = new LoadedColumn();
    NameColumn nameColumn = new NameColumn();
    Column<PackageInfo, PackageInfo> descColumn = new Column<PackageInfo, PackageInfo>(new DescriptionCell()) {

        @Override
        public PackageInfo getValue(PackageInfo object) {
            return object;
        }
    };
    Column<PackageInfo, PackageInfo> versionColumn = new Column<PackageInfo, PackageInfo>(new VersionCell(false)) {

        @Override
        public PackageInfo getValue(PackageInfo object) {
            return object;
        }
    };
    ImageButtonColumn<PackageInfo> removeColumn = new ImageButtonColumn<PackageInfo>(new ImageResource2x(ThemeResources.INSTANCE.removePackage2x()), new OperationWithInput<PackageInfo>() {

        @Override
        public void execute(PackageInfo packageInfo) {
            observer_.removePackage(packageInfo);
        }
    }, "Remove package");
    // add common columns
    packagesTable_.addColumn(loadedColumn, new TextHeader(""));
    packagesTable_.addColumn(nameColumn, new TextHeader("Name"));
    packagesTable_.addColumn(descColumn, new TextHeader("Description"));
    packagesTable_.addColumn(versionColumn, new TextHeader("Version"));
    packagesTable_.setColumnWidth(loadedColumn, 30, Unit.PX);
    // set up Packrat-specific columns
    if (packratContext_ != null && packratContext_.isModeOn()) {
        Column<PackageInfo, PackageInfo> packratVersionColumn = new Column<PackageInfo, PackageInfo>(new VersionCell(true)) {

            @Override
            public PackageInfo getValue(PackageInfo object) {
                return object;
            }
        };
        TextColumn<PackageInfo> packratSourceColumn = new TextColumn<PackageInfo>() {

            @Override
            public String getValue(PackageInfo pkgInfo) {
                if (pkgInfo.getInPackratLibary()) {
                    String source = pkgInfo.getPackratSource();
                    if (source.equals("github"))
                        return "GitHub";
                    else if (source.equals("Bioconductor"))
                        return "BioC";
                    else if (source.equals("source"))
                        return "Source";
                    else
                        return source;
                } else
                    return "";
            }
        };
        packagesTable_.addColumn(packratVersionColumn, new TextHeader("Packrat"));
        packagesTable_.addColumn(packratSourceColumn, new TextHeader("Source"));
        // distribute columns for extended package information
        packagesTable_.setColumnWidth(nameColumn, 20, Unit.PCT);
        packagesTable_.setColumnWidth(descColumn, 40, Unit.PCT);
        packagesTable_.setColumnWidth(versionColumn, 15, Unit.PCT);
        packagesTable_.setColumnWidth(packratVersionColumn, 15, Unit.PCT);
        packagesTable_.setColumnWidth(packratSourceColumn, 10, Unit.PCT);
        // highlight rows that are out of sync in packrat
        packagesTable_.setRowStyles(new PackageRowStyles());
    } else {
        // distribute columns for non-extended package information
        packagesTable_.setColumnWidth(nameColumn, 25, Unit.PCT);
        packagesTable_.setColumnWidth(descColumn, 60, Unit.PCT);
        packagesTable_.setColumnWidth(versionColumn, 15, Unit.PCT);
    }
    // remove column is common
    packagesTable_.addColumn(removeColumn, new TextHeader(""));
    packagesTable_.setColumnWidth(removeColumn, 35, Unit.PX);
    packagesTable_.setTableBuilder(new PackageTableBuilder(packagesTable_));
    packagesTable_.setSkipRowHoverCheck(true);
    packagesTableContainer_.add(packagesTable_);
    layoutPackagesTable();
    packagesDataProvider_.addDataDisplay(packagesTable_);
}
Also used : PackageInfo(org.rstudio.studio.client.workbench.views.packages.model.PackageInfo) TextHeader(com.google.gwt.user.cellview.client.TextHeader) ImageButtonColumn(org.rstudio.core.client.cellview.ImageButtonColumn) ImageButtonColumn(org.rstudio.core.client.cellview.ImageButtonColumn) LinkColumn(org.rstudio.core.client.cellview.LinkColumn) TextColumn(com.google.gwt.user.cellview.client.TextColumn) Column(com.google.gwt.user.cellview.client.Column) ImageResource2x(org.rstudio.core.client.resources.ImageResource2x) TextColumn(com.google.gwt.user.cellview.client.TextColumn)

Example 3 with TextColumn

use of com.google.gwt.user.cellview.client.TextColumn in project rstudio by rstudio.

the class CheckForUpdatesDialog method addTableColumns.

protected void addTableColumns(CellTable<PendingAction> table) {
    TextColumn<PendingAction> nameColumn = new TextColumn<PendingAction>() {

        public String getValue(PendingAction action) {
            return action.getActionInfo().getPackageName();
        }
    };
    table.addColumn(nameColumn, "Package");
    table.setColumnWidth(nameColumn, 28, Unit.PCT);
    TextColumn<PendingAction> installedColumn = new TextColumn<PendingAction>() {

        public String getValue(PendingAction action) {
            return action.getActionInfo().getInstalled();
        }
    };
    table.addColumn(installedColumn, "Installed");
    table.setColumnWidth(installedColumn, 28, Unit.PCT);
    TextColumn<PendingAction> availableColumn = new TextColumn<PendingAction>() {

        public String getValue(PendingAction action) {
            return action.getActionInfo().getAvailable();
        }
    };
    table.addColumn(availableColumn, "Available");
    table.setColumnWidth(availableColumn, 28, Unit.PCT);
    ImageButtonColumn<PendingAction> newsColumn = new ImageButtonColumn<PendingAction>(new ImageResource2x(ThemeResources.INSTANCE.newsButton2x()), new OperationWithInput<PendingAction>() {

        public void execute(PendingAction action) {
            GlobalDisplay.NewWindowOptions options = new GlobalDisplay.NewWindowOptions();
            options.setName("_rstudio_package_news");
            globalDisplay_.openWindow(action.getActionInfo().getNewsUrl(), options);
        }
    }, "Show package NEWS") {

        @Override
        protected boolean showButton(PendingAction action) {
            return !StringUtil.isNullOrEmpty(action.getActionInfo().getNewsUrl());
        }
    };
    table.addColumn(newsColumn, "NEWS");
    table.setColumnWidth(newsColumn, 16, Unit.PCT);
}
Also used : GlobalDisplay(org.rstudio.studio.client.common.GlobalDisplay) ImageResource2x(org.rstudio.core.client.resources.ImageResource2x) TextColumn(com.google.gwt.user.cellview.client.TextColumn) ImageButtonColumn(org.rstudio.core.client.cellview.ImageButtonColumn)

Example 4 with TextColumn

use of com.google.gwt.user.cellview.client.TextColumn in project pentaho-platform by pentaho.

the class SchedulesPanel method createUI.

private void createUI(boolean isAdmin, final boolean isScheduler) {
    table.getElement().setId("schedule-table");
    table.setStylePrimaryName("pentaho-table");
    table.setWidth("100%", true);
    // BISERVER-9331 Column sort indicators should be to the right of header text in the Manage Schedules table.
    if (table.getHeaderBuilder() instanceof AbstractHeaderOrFooterBuilder) {
        ((AbstractHeaderOrFooterBuilder<JsJob>) table.getHeaderBuilder()).setSortIconStartOfLine(false);
    }
    final MultiSelectionModel<JsJob> selectionModel = new MultiSelectionModel<JsJob>(new ProvidesKey<JsJob>() {

        public Object getKey(JsJob item) {
            return item.getJobId();
        }
    });
    table.setSelectionModel(selectionModel);
    Label noDataLabel = new Label(Messages.getString("noSchedules"));
    noDataLabel.setStyleName("noDataForScheduleTable");
    table.setEmptyTableWidget(noDataLabel);
    TextColumn<JsJob> idColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            return job.getJobId();
        }
    };
    idColumn.setSortable(true);
    TextColumn<JsJob> nameColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            return job.getJobName();
        }
    };
    nameColumn.setSortable(true);
    HtmlColumn<JsJob> resourceColumn = new HtmlColumn<JsJob>() {

        @Override
        public String getStringValue(JsJob job) {
            String name = job.getFullResourceName().split("\\.")[0];
            return name.replaceAll("/", "/<wbr/>");
        }
    };
    resourceColumn.setSortable(true);
    HtmlColumn<JsJob> outputPathColumn = new HtmlColumn<JsJob>(new ClickableSafeHtmlCell()) {

        @Override
        public String getStringValue(JsJob jsJob) {
            try {
                String outputPath = jsJob.getOutputPath();
                if (StringUtils.isEmpty(outputPath)) {
                    return "-";
                } else {
                    outputPath = new SafeHtmlBuilder().appendEscaped(outputPath).toSafeHtml().asString();
                    return MessageFormat.format("<span class=''workspace-resource-link'' title=''{0}''>{0}</span>", outputPath);
                }
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    outputPathColumn.setFieldUpdater(new FieldUpdater<JsJob, SafeHtml>() {

        @Override
        public void update(final int index, final JsJob jsJob, final SafeHtml value) {
            if (!value.equals("-")) {
                final Command errorCallback = new Command() {

                    @Override
                    public void execute() {
                        showValidateOutputLocationError();
                    }
                };
                final Command successCallback = new Command() {

                    @Override
                    public void execute() {
                        openOutputLocation(jsJob.getOutputPath());
                    }
                };
                OutputLocationUtils.validateOutputLocation(jsJob.getOutputPath(), successCallback, errorCallback);
            }
        }
    });
    outputPathColumn.setSortable(true);
    TextColumn<JsJob> scheduleColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            try {
                return job.getJobTrigger().getDescription();
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    scheduleColumn.setSortable(true);
    TextColumn<JsJob> userNameColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            try {
                return job.getUserName();
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    userNameColumn.setSortable(true);
    TextColumn<JsJob> stateColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            try {
                // BISERVER-9965
                final String jobState = "COMPLETE".equalsIgnoreCase(job.getState()) ? "FINISHED" : job.getState();
                // not css text-transform because tooltip will use pure text from the cell
                return jobState.substring(0, 1).toUpperCase() + jobState.substring(1).toLowerCase();
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    stateColumn.setSortable(true);
    TextColumn<JsJob> nextFireColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            try {
                Date date = job.getNextRun();
                if (date == null) {
                    return "-";
                }
                DateTimeFormat format = DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM);
                return format.format(date);
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    nextFireColumn.setSortable(true);
    TextColumn<JsJob> lastFireColumn = new TextColumn<JsJob>() {

        public String getValue(JsJob job) {
            try {
                Date date = job.getLastRun();
                if (date == null) {
                    return "-";
                }
                DateTimeFormat format = DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM);
                return format.format(date);
            } catch (Throwable t) {
                return "-";
            }
        }
    };
    lastFireColumn.setSortable(true);
    // table.addColumn(idColumn, "ID");
    table.addColumn(nameColumn, Messages.getString("scheduleName"));
    table.addColumn(scheduleColumn, Messages.getString("recurrence"));
    table.addColumn(resourceColumn, Messages.getString("sourceFile"));
    table.addColumn(outputPathColumn, Messages.getString("outputPath"));
    table.addColumn(lastFireColumn, Messages.getString("lastFire"));
    table.addColumn(nextFireColumn, Messages.getString("nextFire"));
    if (isAdmin) {
        table.addColumn(userNameColumn, Messages.getString("user"));
    }
    table.addColumn(stateColumn, Messages.getString("state"));
    table.addColumnStyleName(0, "backgroundContentHeaderTableCell");
    table.addColumnStyleName(1, "backgroundContentHeaderTableCell");
    table.addColumnStyleName(2, "backgroundContentHeaderTableCell");
    table.addColumnStyleName(3, "backgroundContentHeaderTableCell");
    table.addColumnStyleName(4, "backgroundContentHeaderTableCell");
    table.addColumnStyleName(5, "backgroundContentHeaderTableCell");
    if (isAdmin) {
        table.addColumnStyleName(6, "backgroundContentHeaderTableCell");
    }
    table.addColumnStyleName(isAdmin ? 7 : 6, "backgroundContentHeaderTableCell");
    table.setColumnWidth(nameColumn, 160, Unit.PX);
    table.setColumnWidth(resourceColumn, 200, Unit.PX);
    table.setColumnWidth(outputPathColumn, 180, Unit.PX);
    table.setColumnWidth(scheduleColumn, 170, Unit.PX);
    table.setColumnWidth(lastFireColumn, 120, Unit.PX);
    table.setColumnWidth(nextFireColumn, 120, Unit.PX);
    if (isAdmin) {
        table.setColumnWidth(userNameColumn, 100, Unit.PX);
    }
    table.setColumnWidth(stateColumn, 90, Unit.PX);
    dataProvider.addDataDisplay(table);
    List<JsJob> list = dataProvider.getList();
    ListHandler<JsJob> columnSortHandler = new ListHandler<JsJob>(list);
    columnSortHandler.setComparator(idColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                return (o2 != null) ? o1.getJobId().compareTo(o2.getJobId()) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(nameColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                return (o2 != null) ? o1.getJobName().compareTo(o2.getJobName()) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(resourceColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                String r1 = o1.getShortResourceName();
                String r2 = null;
                if (o2 != null) {
                    r2 = o2.getShortResourceName();
                }
                return (o2 != null) ? r1.compareTo(r2) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(outputPathColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                String r1 = o1.getOutputPath();
                String r2 = null;
                if (o2 != null) {
                    r2 = o2.getOutputPath();
                }
                return (o2 != null) ? r1.compareTo(r2) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(scheduleColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            String s1 = o1.getJobTrigger().getDescription();
            String s2 = o2.getJobTrigger().getDescription();
            return s1.compareTo(s2);
        }
    });
    columnSortHandler.setComparator(userNameColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                return (o2 != null) ? o1.getUserName().compareTo(o2.getUserName()) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(stateColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 != null) {
                return (o2 != null) ? o1.getState().compareTo(o2.getState()) : 1;
            }
            return -1;
        }
    });
    columnSortHandler.setComparator(nextFireColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 == null || o1.getNextRun() == null) {
                return -1;
            }
            if (o2 == null || o2.getNextRun() == null) {
                return 1;
            }
            if (o1.getNextRun() == o2.getNextRun()) {
                return 0;
            }
            return o1.getNextRun().compareTo(o2.getNextRun());
        }
    });
    columnSortHandler.setComparator(lastFireColumn, new Comparator<JsJob>() {

        public int compare(JsJob o1, JsJob o2) {
            if (o1 == o2) {
                return 0;
            }
            if (o1 == null || o1.getLastRun() == null) {
                return -1;
            }
            if (o2 == null || o2.getLastRun() == null) {
                return 1;
            }
            if (o1.getLastRun() == o2.getLastRun()) {
                return 0;
            }
            return o1.getLastRun().compareTo(o2.getLastRun());
        }
    });
    table.addColumnSortHandler(columnSortHandler);
    table.getColumnSortList().push(idColumn);
    table.getColumnSortList().push(resourceColumn);
    table.getColumnSortList().push(outputPathColumn);
    table.getColumnSortList().push(nameColumn);
    table.getSelectionModel().addSelectionChangeHandler(new Handler() {

        public void onSelectionChange(SelectionChangeEvent event) {
            Set<JsJob> selectedJobs = getSelectedJobs();
            if (selectedJobs != null && selectedJobs.size() > 0) {
                JsJob[] jobs = selectedJobs.toArray(new JsJob[selectedJobs.size()]);
                editButton.setEnabled(isScheduler);
                if ("NORMAL".equalsIgnoreCase(jobs[0].getState())) {
                    controlScheduleButton.setImage(ImageUtil.getThemeableImage("icon-small", "icon-stop"));
                } else {
                    controlScheduleButton.setImage(ImageUtil.getThemeableImage("icon-small", "icon-run"));
                }
                controlScheduleButton.setEnabled(isScheduler);
                boolean isRunning = "NORMAL".equalsIgnoreCase(jobs[0].getState());
                controlScheduleButton.setToolTip(isRunning ? Messages.getString("stop") : Messages.getString("start"));
                scheduleRemoveButton.setEnabled(isScheduler);
                triggerNowButton.setEnabled(isScheduler);
            } else {
                editButton.setEnabled(false);
                controlScheduleButton.setEnabled(false);
                scheduleRemoveButton.setEnabled(false);
                triggerNowButton.setEnabled(false);
            }
        }
    });
    // BISERVER-9965
    table.addCellPreviewHandler(new CellPreviewEvent.Handler<JsJob>() {

        @Override
        public void onCellPreview(CellPreviewEvent<JsJob> event) {
            if ("mouseover".equals(event.getNativeEvent().getType())) {
                final TableCellElement cell = table.getRowElement(event.getIndex()).getCells().getItem(event.getColumn());
                cell.setTitle(cell.getInnerText());
            }
        }
    });
    SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
    pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true) {

        @Override
        public void setPageStart(int index) {
            if (getDisplay() != null) {
                Range range = getDisplay().getVisibleRange();
                int pageSize = range.getLength();
                // Removed the min to show fixed ranges
                // if (isRangeLimited && display.isRowCountExact()) {
                // index = Math.min(index, display.getRowCount() - pageSize);
                // }
                index = Math.max(0, index);
                if (index != range.getStart()) {
                    getDisplay().setVisibleRange(index, pageSize);
                }
            }
        }
    };
    pager.setDisplay(table);
    // pager.setRangeLimited(false);
    VerticalPanel tableAndPager = new VerticalPanel();
    tableAndPager.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    Toolbar bar = new Toolbar();
    bar.addSpacer(10);
    bar.add(Toolbar.GLUE);
    // Add control scheduler button
    if (isAdmin) {
        final ToolbarButton controlSchedulerButton = new ToolbarButton(ImageUtil.getThemeableImage("icon-small", "icon-start-scheduler"));
        controlSchedulerButton.setCommand(new Command() {

            public void execute() {
                toggleSchedulerOnOff(controlSchedulerButton, isScheduler);
            }
        });
        updateControlSchedulerButtonState(controlSchedulerButton, isScheduler);
        bar.add(controlSchedulerButton);
        bar.addSpacer(20);
    }
    // Add filter button
    filterButton.setCommand(new Command() {

        public void execute() {
            if (filterDialog == null) {
                filterDialog = new FilterDialog(allJobs, filterDialogCallback);
            } else {
                filterDialog.initUI(allJobs);
            }
            filterDialog.center();
        }
    });
    filterButton.setToolTip(Messages.getString("filterSchedules"));
    if (isAdmin) {
        bar.add(filterButton);
    }
    // Add remove filters button
    filterRemoveButton.setCommand(new Command() {

        public void execute() {
            filterDialog = null;
            filters.clear();
            filterAndShowData();
            filterRemoveButton.setEnabled(false);
            filterButton.setImage(ImageUtil.getThemeableImage("icon-small", "icon-filter-add"));
        }
    });
    filterRemoveButton.setToolTip(Messages.getString("removeFilters"));
    filterRemoveButton.setEnabled(filters.size() > 0);
    if (isAdmin) {
        bar.add(filterRemoveButton);
    }
    // Add refresh button
    ToolbarButton refresh = new ToolbarButton(ImageUtil.getThemeableImage("icon-small", "icon-refresh"));
    refresh.setToolTip(Messages.getString("refreshTooltip"));
    refresh.setCommand(new Command() {

        public void execute() {
            RefreshSchedulesCommand cmd = new RefreshSchedulesCommand();
            cmd.execute();
        }
    });
    bar.add(refresh);
    bar.addSpacer(20);
    // Add execute now button
    triggerNowButton.setToolTip(Messages.getString("executeNow"));
    triggerNowButton.setCommand(new Command() {

        public void execute() {
            Set<JsJob> selectedJobs = getSelectedJobs();
            if (selectedJobs != null && selectedJobs.size() > 0) {
                MessageDialogBox messageDialog = new MessageDialogBox(Messages.getString("executeNow"), Messages.getString("executeNowStarted"), false, true, true);
                messageDialog.setCallback(new IDialogCallback() {

                    public void okPressed() {
                        // wait a little to refresh to give schedule time to update the last run
                        Timer t = new Timer() {

                            public void run() {
                                refresh();
                            }
                        };
                        t.schedule(2000);
                    }

                    public void cancelPressed() {
                    }
                });
                messageDialog.center();
                controlJobs(selectedJobs, "triggerNow", RequestBuilder.POST, false);
            }
        }
    });
    triggerNowButton.setEnabled(false);
    bar.add(triggerNowButton);
    // Add control schedule button
    controlScheduleButton.setCommand(new Command() {

        public void execute() {
            Set<JsJob> selectedJobs = getSelectedJobs();
            if (selectedJobs != null && selectedJobs.size() > 0) {
                JsJob[] jobs = selectedJobs.toArray(new JsJob[selectedJobs.size()]);
                if ("NORMAL".equals(jobs[0].getState())) {
                    controlJobs(selectedJobs, "pauseJob", RequestBuilder.POST, false);
                } else {
                    controlJobs(selectedJobs, "resumeJob", RequestBuilder.POST, false);
                }
            }
        }
    });
    controlScheduleButton.setEnabled(false);
    bar.add(controlScheduleButton);
    bar.addSpacer(20);
    // Add edit button
    editButton.setCommand(new Command() {

        public void execute() {
            Set<JsJob> selectedJobs = getSelectedJobs();
            if (selectedJobs != null && selectedJobs.size() > 0) {
                JsJob[] jobs = selectedJobs.toArray(new JsJob[selectedJobs.size()]);
                final JsJob editJob = jobs[0];
                final String url = GWT.getHostPageBaseURL() + "api/repo/files/" + SolutionBrowserPanel.pathToId(editJob.getFullResourceName()) + "/canAccess?cb=" + System.currentTimeMillis() + "&permissions=" + READ_PERMISSION;
                RequestBuilder executableTypesRequestBuilder = new RequestBuilder(RequestBuilder.GET, url);
                try {
                    executableTypesRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
                    executableTypesRequestBuilder.sendRequest(null, new RequestCallback() {

                        public void onError(Request request, Throwable exception) {
                            promptForScheduleResourceError(editJob);
                        }

                        public void onResponseReceived(Request request, Response response) {
                            if ("true".equalsIgnoreCase(response.getText())) {
                                editJob(editJob);
                            } else {
                                promptForScheduleResourceError(editJob);
                            }
                        }
                    });
                } catch (RequestException e) {
                // showError(e);
                }
            }
        }
    });
    editButton.setEnabled(false);
    editButton.setToolTip(Messages.getString("editTooltip"));
    bar.add(editButton);
    // Add remove button
    scheduleRemoveButton.setCommand(new Command() {

        public void execute() {
            Set<JsJob> selectedJobs = getSelectedJobs();
            if (selectedJobs != null && selectedJobs.size() > 0) {
                final PromptDialogBox prompt = new PromptDialogBox(Messages.getString("warning"), Messages.getString("yes"), Messages.getString("no"), false, true);
                prompt.setContent(new Label(Messages.getString("deleteConfirmSchedles", "" + selectedJobs.size())));
                prompt.setCallback(new IDialogCallback() {

                    public void okPressed() {
                        controlJobs(getSelectedJobs(), "removeJob", RequestBuilder.DELETE, true);
                        prompt.hide();
                    }

                    public void cancelPressed() {
                        prompt.hide();
                    }
                });
                prompt.center();
            }
        }
    });
    scheduleRemoveButton.setToolTip(Messages.getString("remove"));
    scheduleRemoveButton.setEnabled(false);
    bar.add(scheduleRemoveButton);
    tableAndPager.add(bar);
    tableAndPager.add(table);
    tableAndPager.add(pager);
    // Add it to the root panel.
    setWidget(tableAndPager);
}
Also used : RefreshSchedulesCommand(org.pentaho.mantle.client.commands.RefreshSchedulesCommand) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) Label(com.google.gwt.user.client.ui.Label) JSONString(com.google.gwt.json.client.JSONString) ToolbarButton(org.pentaho.gwt.widgets.client.toolbar.ToolbarButton) AbstractHeaderOrFooterBuilder(com.google.gwt.user.cellview.client.AbstractHeaderOrFooterBuilder) TextColumn(com.google.gwt.user.cellview.client.TextColumn) Toolbar(org.pentaho.gwt.widgets.client.toolbar.Toolbar) MessageDialogBox(org.pentaho.gwt.widgets.client.dialogs.MessageDialogBox) ListHandler(com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler) Handler(com.google.gwt.view.client.SelectionChangeEvent.Handler) SafeHtmlBuilder(com.google.gwt.safehtml.shared.SafeHtmlBuilder) Range(com.google.gwt.view.client.Range) IDialogCallback(org.pentaho.gwt.widgets.client.dialogs.IDialogCallback) SelectionChangeEvent(com.google.gwt.view.client.SelectionChangeEvent) JSONObject(com.google.gwt.json.client.JSONObject) TableCellElement(com.google.gwt.dom.client.TableCellElement) Set(java.util.Set) HashSet(java.util.HashSet) RequestBuilder(com.google.gwt.http.client.RequestBuilder) PromptDialogBox(org.pentaho.gwt.widgets.client.dialogs.PromptDialogBox) MultiSelectionModel(com.google.gwt.view.client.MultiSelectionModel) RequestException(com.google.gwt.http.client.RequestException) HtmlColumn(org.pentaho.mantle.client.ui.column.HtmlColumn) ListHandler(com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler) Request(com.google.gwt.http.client.Request) SimplePager(com.google.gwt.user.cellview.client.SimplePager) Date(java.util.Date) CellPreviewEvent(com.google.gwt.view.client.CellPreviewEvent) Response(com.google.gwt.http.client.Response) VerticalPanel(com.google.gwt.user.client.ui.VerticalPanel) Timer(com.google.gwt.user.client.Timer) RequestCallback(com.google.gwt.http.client.RequestCallback) Command(com.google.gwt.user.client.Command) RefreshSchedulesCommand(org.pentaho.mantle.client.commands.RefreshSchedulesCommand) DateTimeFormat(com.google.gwt.i18n.client.DateTimeFormat)

Example 5 with TextColumn

use of com.google.gwt.user.cellview.client.TextColumn in project perun by CESNET.

the class GetCompleteCandidates method getEmptyTable.

/**
 * Returns the empty table widget
 *
 * @return table widget
 */
public CellTable<MemberCandidate> getEmptyTable() {
    // Table data provider.
    dataProvider = new ListDataProvider<MemberCandidate>(list);
    // Cell table
    table = new PerunTable<MemberCandidate>(list);
    // Connect the table to the data provider.
    dataProvider.addDataDisplay(table);
    // Sorting
    ListHandler<MemberCandidate> columnSortHandler = new ListHandler<MemberCandidate>(dataProvider.getList());
    table.addColumnSortHandler(columnSortHandler);
    // Table selection
    table.setSelectionModel(selectionModel, DefaultSelectionEventManager.<MemberCandidate>createCheckboxManager());
    // Set empty content & loader
    table.setEmptyTableWidget(loaderImage);
    // checkbox column column
    Column<MemberCandidate, MemberCandidate> checkBoxColumn = new Column<MemberCandidate, MemberCandidate>(new PerunCheckboxCell<MemberCandidate>(true, false, (groupId == 0))) {

        @Override
        public MemberCandidate getValue(MemberCandidate object) {
            // Get the value from the selection model.
            GeneralObject go = object.cast();
            go.setChecked(selectionModel.isSelected(object));
            return go.cast();
        }
    };
    // updates the columns size
    table.setColumnWidth(checkBoxColumn, 40.0, Style.Unit.PX);
    table.addColumn(checkBoxColumn);
    // is member
    TextColumn<MemberCandidate> memberColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            if (groupId == 0) {
                if (candidate.getMember() != null)
                    return "Member of VO";
            } else {
                if (candidate.getMember() != null && candidate.getMember().getSourceGroupId() != 0 && "DIRECT".equalsIgnoreCase(candidate.getMember().getMembershipType()))
                    return "Member of Group";
                if (candidate.getMember() != null && candidate.getMember().getSourceGroupId() != 0 && "INDIRECT".equalsIgnoreCase(candidate.getMember().getMembershipType()))
                    return "Indirect member of Group";
                if (candidate.getMember() != null)
                    return "Member of VO";
            }
            return "";
        }
    };
    // Status column
    final Column<MemberCandidate, String> statusColumn = new Column<MemberCandidate, String>(new PerunStatusCell()) {

        @Override
        public String getValue(MemberCandidate object) {
            if (object.getMember() != null) {
                return object.getMember().getStatus();
            } else {
                return null;
            }
        }
    };
    // Full Name Column
    TextColumn<MemberCandidate> fullNameColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            return getFullNameColumnValue(candidate);
        }
    };
    // E-mail column
    TextColumn<MemberCandidate> emailColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            return getEmailColumnValue(candidate);
        }
    };
    // Login Column
    TextColumn<MemberCandidate> loginColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            return getLoginFromExtSourceOrAllLogins(candidate);
        }
    };
    // Ext Source Column
    TextColumn<MemberCandidate> extSourceColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            return getExtSourceNameOrOrganizationColumn(candidate);
        }
    };
    // already Column
    TextColumn<MemberCandidate> alreadyInPerunColumn = new TextColumn<MemberCandidate>() {

        @Override
        public String getValue(MemberCandidate candidate) {
            if (candidate.getRichUser() != null) {
                return "Local";
            } else {
                return "External identity";
            }
        }
    };
    alreadyInPerunColumn.setSortable(true);
    columnSortHandler.setComparator(alreadyInPerunColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            String o1Val = "External identity";
            String o2Val = "External identity";
            if (o1.getRichUser() != null) {
                o1Val = "Local";
            }
            if (o2.getRichUser() != null) {
                o2Val = "Local";
            }
            return o1Val.compareTo(o2Val);
        }
    });
    memberColumn.setSortable(true);
    columnSortHandler.setComparator(memberColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            String o1Val = "1";
            String o2Val = "1";
            if (o1.getMember() != null)
                o1Val = "0";
            if (o2.getMember() != null)
                o2Val = "0";
            o1Val += getFullNameColumnValue(o1);
            o2Val += getFullNameColumnValue(o2);
            return o1Val.compareTo(o2Val);
        }
    });
    loginColumn.setSortable(true);
    columnSortHandler.setComparator(loginColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            return getLoginFromExtSourceOrAllLogins(o1).compareToIgnoreCase(getLoginFromExtSourceOrAllLogins(o2));
        }
    });
    fullNameColumn.setSortable(true);
    columnSortHandler.setComparator(fullNameColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            return getFullNameColumnValue(o1).compareToIgnoreCase(getFullNameColumnValue(o2));
        }
    });
    extSourceColumn.setSortable(true);
    columnSortHandler.setComparator(extSourceColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            return getExtSourceNameOrOrganizationColumn(o1).compareToIgnoreCase(getExtSourceNameOrOrganizationColumn(o2));
        }
    });
    emailColumn.setSortable(true);
    columnSortHandler.setComparator(emailColumn, new Comparator<MemberCandidate>() {

        public int compare(MemberCandidate o1, MemberCandidate o2) {
            return getEmailColumnValue(o1).compareToIgnoreCase(getEmailColumnValue(o2));
        }
    });
    table.addColumnSortHandler(columnSortHandler);
    // Add the columns.
    table.addColumn(statusColumn, "Status");
    table.addColumn(fullNameColumn, "Full name");
    table.addColumn(extSourceColumn, "Organization or Ext source");
    table.addColumn(emailColumn, "E-mail");
    table.addColumn(loginColumn, "Logins");
    table.addColumn(memberColumn, "Already member");
    table.addColumn(alreadyInPerunColumn, "Source");
    return table;
}
Also used : ListHandler(com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler) MemberCandidate(cz.metacentrum.perun.webgui.model.MemberCandidate) TextColumn(com.google.gwt.user.cellview.client.TextColumn) Column(com.google.gwt.user.cellview.client.Column) PerunStatusCell(cz.metacentrum.perun.webgui.widgets.cells.PerunStatusCell) GeneralObject(cz.metacentrum.perun.webgui.model.GeneralObject) TextColumn(com.google.gwt.user.cellview.client.TextColumn)

Aggregations

TextColumn (com.google.gwt.user.cellview.client.TextColumn)20 Column (com.google.gwt.user.cellview.client.Column)8 ListHandler (com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler)7 TextHeader (com.google.gwt.user.cellview.client.TextHeader)4 SafeHtml (com.google.gwt.safehtml.shared.SafeHtml)3 ListDataProvider (com.google.gwt.view.client.ListDataProvider)3 CheckboxCell (com.google.gwt.cell.client.CheckboxCell)2 JavaScriptObject (com.google.gwt.core.client.JavaScriptObject)2 CellTable (com.google.gwt.user.cellview.client.CellTable)2 ColumnSortEvent (com.google.gwt.user.cellview.client.ColumnSortEvent)2 Header (com.google.gwt.user.cellview.client.Header)2 GeneralObject (cz.metacentrum.perun.webgui.model.GeneralObject)2 Confirm (cz.metacentrum.perun.webgui.widgets.Confirm)2 Column (org.gwtbootstrap3.client.ui.Column)2 Container (org.gwtbootstrap3.client.ui.Container)2 Row (org.gwtbootstrap3.client.ui.Row)2 ImageButtonColumn (org.rstudio.core.client.cellview.ImageButtonColumn)2 ImageResource2x (org.rstudio.core.client.resources.ImageResource2x)2 TableCellElement (com.google.gwt.dom.client.TableCellElement)1 ClickEvent (com.google.gwt.event.dom.client.ClickEvent)1