Refactoring of the LeaderboardPanel, to be ready for the

ToggleSelectionModel
This commit is contained in:
Lennart Hensler committed 2012-02-09 11:48:55 +01:00
1 parent e52342fc20
commit 1b5505a6e7
2 files changed
+22 -4

No files matched your search

+1 -1
View File
@@ -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"/>
@@ -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;
}
}