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;
}
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_);
}
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);
}
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);
}
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;
}
Aggregations