mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
made unlink column sortable
Change-Id: I31837cea61d912d23e4dbbbcb0ff337fc863950e
This commit is contained in:
1 parent
2809c9132f
commit
f48ca78eaa
2 files changed
+11
-7
No files matched your search
+11
-5
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
@@ -178,14 +179,14 @@ public class CompetitorDescriptorTableWrapper<S extends RefreshableSelectionMode
|
||||
};
|
||||
isHasMatchesColumn.setSortable(true);
|
||||
// alters the getValue method such that it returns an empty string if the competitor to import is not linked to an existing one, non-null otherwise
|
||||
ImagesBarColumn<CompetitorDescriptorDTO, CompetitorImportTableActionIcons> actionColumn =
|
||||
ImagesBarColumn<CompetitorDescriptorDTO, CompetitorImportTableActionIcons> unlinkColumn =
|
||||
new ImagesBarColumn<CompetitorDescriptorDTO, CompetitorDescriptorTableWrapper.CompetitorImportTableActionIcons>(new CompetitorImportTableActionIcons(stringMessages)) {
|
||||
@Override
|
||||
public String getValue(CompetitorDescriptorDTO competitor) {
|
||||
return unlinkCallback.getExistingCompetitorToUseInsteadOf(competitor)==null?"":"linked";
|
||||
}
|
||||
};
|
||||
actionColumn.setFieldUpdater(new FieldUpdater<CompetitorDescriptorDTO, String>() {
|
||||
unlinkColumn.setFieldUpdater(new FieldUpdater<CompetitorDescriptorDTO, String>() {
|
||||
@Override
|
||||
public void update(int index, final CompetitorDescriptorDTO competitor, String value) {
|
||||
if (CompetitorImportTableActionIcons.ACTION_UNLINK.equals(value)) {
|
||||
@@ -195,6 +196,7 @@ public class CompetitorDescriptorTableWrapper<S extends RefreshableSelectionMode
|
||||
}
|
||||
}
|
||||
});
|
||||
unlinkColumn.setSortable(true);
|
||||
mainPanel.insert(filterablePanelCompetitorDescriptor, 0);
|
||||
table.addColumn(sailIdColumn, stringMessages.sailNumber());
|
||||
table.addColumn(competitorNameColumn, stringMessages.name());
|
||||
@@ -202,18 +204,20 @@ public class CompetitorDescriptorTableWrapper<S extends RefreshableSelectionMode
|
||||
table.addColumn(raceNameColumn, stringMessages.race());
|
||||
table.addColumn(fleetNameColumn, stringMessages.fleet());
|
||||
table.addColumn(isHasMatchesColumn, stringMessages.hasMatches());
|
||||
table.addColumn(actionColumn, stringMessages.unlink());
|
||||
table.addColumn(unlinkColumn, stringMessages.unlink());
|
||||
table.addColumnSortHandler(getCompetitorDescriptorTableColumnListSortHandler(competitorNameColumn, boatClassNameColumn,
|
||||
sailIdColumn, raceNameColumn, fleetNameColumn, isHasMatchesColumn));
|
||||
sailIdColumn, raceNameColumn, fleetNameColumn, isHasMatchesColumn, unlinkColumn, unlinkCallback));
|
||||
}
|
||||
|
||||
private ListHandler<CompetitorDescriptorDTO> getCompetitorDescriptorTableColumnListSortHandler(
|
||||
TextColumn<CompetitorDescriptorDTO> competitorNameColumn,
|
||||
TextColumn<CompetitorDescriptorDTO> boatClassNameColumn, Column<CompetitorDescriptorDTO, SafeHtml> sailIdColumn,
|
||||
TextColumn<CompetitorDescriptorDTO> raceNameColumn,
|
||||
TextColumn<CompetitorDescriptorDTO> fleetNameColumn, TextColumn<CompetitorDescriptorDTO> isHasMatchesColumn) {
|
||||
TextColumn<CompetitorDescriptorDTO> fleetNameColumn, TextColumn<CompetitorDescriptorDTO> isHasMatchesColumn,
|
||||
ImagesBarColumn<CompetitorDescriptorDTO, CompetitorImportTableActionIcons> unlinkColumn, CompetitorsToImportToExistingLinking unlinkCallback) {
|
||||
ListHandler<CompetitorDescriptorDTO> competitorColumnListHandler = getColumnSortHandler();
|
||||
final NaturalComparator caseInsensitiveNaturalComparator = new NaturalComparator(/* case sensitive */ false);
|
||||
final Comparator<CompetitorDTO> nullFirstComparator = Comparator.nullsFirst(/* real comparator */ null);
|
||||
competitorColumnListHandler.setComparator(competitorNameColumn, (cd1, cd2)->caseInsensitiveNaturalComparator.compare(cd1.getName(), cd2.getName()));
|
||||
competitorColumnListHandler.setComparator(boatClassNameColumn, (cd1, cd2)->caseInsensitiveNaturalComparator.compare(cd1.getBoatClassName(), cd2.getBoatClassName()));
|
||||
competitorColumnListHandler.setComparator(sailIdColumn, (cd1, cd2)->caseInsensitiveNaturalComparator.compare(cd1.getSailNumber(), cd2.getSailNumber()));
|
||||
@@ -221,6 +225,8 @@ public class CompetitorDescriptorTableWrapper<S extends RefreshableSelectionMode
|
||||
competitorColumnListHandler.setComparator(fleetNameColumn, (cd1, cd2)->caseInsensitiveNaturalComparator.compare(cd1.getFleetName(), cd2.getFleetName()));
|
||||
competitorColumnListHandler.setComparator(isHasMatchesColumn, (cd1, cd2)->((Boolean) competitorImportMatcher.getMatchesCompetitors(cd1).isEmpty()).compareTo(
|
||||
competitorImportMatcher.getMatchesCompetitors(cd2).isEmpty()));
|
||||
competitorColumnListHandler.setComparator(unlinkColumn, (cd1, cd2)->(nullFirstComparator.compare(
|
||||
unlinkCallback.getExistingCompetitorToUseInsteadOf(cd1), unlinkCallback.getExistingCompetitorToUseInsteadOf(cd2))));
|
||||
return competitorColumnListHandler;
|
||||
}
|
||||
|
||||
|
||||
-2
@@ -123,8 +123,6 @@ public class MatchImportedCompetitorsDialog extends DataEntryDialog<Set<Competit
|
||||
final RefreshableMultiSelectionModel<CompetitorDescriptorDTO> importedCompetitorSelectionModel,
|
||||
final RefreshableSingleSelectionModel<CompetitorDTO> existingCompetitorSelectionModel) {
|
||||
return new Handler() {
|
||||
private boolean refreshing = false;
|
||||
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
Set<CompetitorDescriptorDTO> competitorDescriptors = importedCompetitorSelectionModel.getSelectedSet();
|
||||
|
||||
Reference in new issue
Block a user