mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
Refactoring of the LeaderboardPanel, to be ready for the
ToggleSelectionModel
This commit is contained in:
1 parent
e52342fc20
commit
1b5505a6e7
2 files changed
+22
-4
No files matched your search
@@ -5,7 +5,7 @@
|
||||
<classpathentry exported="true" kind="lib" path="WEB-INF/classes/"/>
|
||||
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gflot-1.0.1.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-maps.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-servlet.jar" sourcepath="C:/apps/eclipse37RC4/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201112160242-rel-r37/gwt-2.4.0/gwt-user.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-servlet.jar" sourcepath="C:/MyPrograms/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r37/gwt-2.4.0/gwt-user.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry exported="true" kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
|
||||
+21
-3
@@ -43,6 +43,7 @@ import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.MultiSelectionModel;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.google.gwt.view.client.SelectionModel;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.gwt.ui.client.Collator;
|
||||
@@ -98,7 +99,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
|
||||
private final CellTable<LeaderboardRowDTO> leaderboardTable;
|
||||
|
||||
private final MultiSelectionModel<LeaderboardRowDTO> leaderboardSelectionModel;
|
||||
private final SelectionModel<LeaderboardRowDTO> leaderboardSelectionModel;
|
||||
|
||||
private ListDataProvider<LeaderboardRowDTO> data;
|
||||
|
||||
@@ -836,11 +837,12 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
/* pageSize */100, tableResources);
|
||||
getLeaderboardTable().setWidth("100%");
|
||||
leaderboardSelectionModel = new MultiSelectionModel<LeaderboardRowDTO>();
|
||||
// leaderboardSelectionModel = new ToggleSelectionModel<LeaderboardRowDTO>();
|
||||
leaderboardSelectionModel.addSelectionChangeHandler(new Handler() {
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
List<CompetitorDTO> selection = new ArrayList<CompetitorDTO>();
|
||||
for (LeaderboardRowDTO row : leaderboardSelectionModel.getSelectedSet()) {
|
||||
for (LeaderboardRowDTO row : getSelectedRows()) {
|
||||
selection.add(row.competitor);
|
||||
}
|
||||
LeaderboardPanel.this.competitorSelectionProvider.setSelection(selection,
|
||||
@@ -1091,7 +1093,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
getLeaderboardTable().getColumnSortList().push(getRankColumn());
|
||||
}
|
||||
//Reselect the selected rows
|
||||
leaderboardSelectionModel.clear();
|
||||
clearSelection();
|
||||
for (LeaderboardRowDTO row : data.getList()) {
|
||||
if (competitorSelectionProvider.isSelected(row.competitor)) {
|
||||
leaderboardSelectionModel.setSelected(row, true);
|
||||
@@ -1100,6 +1102,12 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
}
|
||||
}
|
||||
|
||||
private void clearSelection() {
|
||||
for (LeaderboardRowDTO row : getData().getList()) {
|
||||
leaderboardSelectionModel.setSelected(row, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Considers the {@link #preSelectedRace} field as follows: if <code>null</code>, all race columns that <code>leaderboard</code>
|
||||
* adds on top of the existing {@link #getLeaderboard() leaderboard} are returned. Otherwise, the column list obtained as described before
|
||||
@@ -1564,4 +1572,14 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
public boolean hasBusyIndicator() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private Iterable<LeaderboardRowDTO> getSelectedRows() {
|
||||
ArrayList<LeaderboardRowDTO> selectedRows = new ArrayList<LeaderboardRowDTO>();
|
||||
for (LeaderboardRowDTO row : getData().getList()) {
|
||||
if (leaderboardSelectionModel.isSelected(row)) {
|
||||
selectedRows.add(row);
|
||||
}
|
||||
}
|
||||
return selectedRows;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user