newSelectionModel: some changes & added Javadoc

This commit is contained in:
Lukas Furmanek committed 2015-12-16 15:34:46 +01:00
1 parent a02f344ffb
commit ffc3820697
3 files changed
+14 -26

No files matched your search

@@ -75,8 +75,6 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
protected final RaceTableWrapper<RefreshableSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality>> raceColumnTable;
protected final RefreshableSelectionModel<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceColumnTableSelectionModel;
private final SelectionChangeEvent.Handler raceColumnSelectionChangeHandler;
private HandlerRegistration raceColumnSelectionChangeHandlerRegistration;
protected RaceColumnDTOAndFleetDTOWithNameBasedEquality selectedRaceInLeaderboard;
@@ -269,13 +267,15 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
raceColumnTable.getTable().setWidth("100%");
addColumnsToRacesTable(raceColumnTable.getTable());
this.raceColumnTableSelectionModel = raceColumnTable.getSelectionModel();
raceColumnSelectionChangeHandler = new SelectionChangeEvent.Handler() {
raceColumnTableSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
// If the selection on the raceColumnTable changes,
// you don't want to link or unlink raceColumns with the
// trackedRaceListHandler.
removeTrackedRaceListHandlerTemporarily();
leaderboardRaceColumnSelectionChanged();
}
};
raceColumnSelectionChangeHandlerRegistration = raceColumnTableSelectionModel.addSelectionChangeHandler(raceColumnSelectionChangeHandler);
});
vPanel.add(raceColumnTable);
HorizontalPanel selectedLeaderboardRaceButtonPanel = new HorizontalPanel();
@@ -385,7 +385,6 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
@Override
public void onSuccess(Void arg0) {
removeRaceColumnListHandlerTemporarily();
trackedRacesListComposite.clearSelection();
getSelectedRaceColumnWithFleet().getA().setRaceIdentifier(fleet, null);
raceColumnTable.getDataProvider().refresh();
@@ -442,6 +441,8 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
@Override
public void onSuccess(Map<String, RegattaAndRaceIdentifier> regattaAndRaceNamesPerFleet) {
// This method should select the linked trackedRace.
// So you don't want to link or unlink it again throw the trackedRaceListHandler.
removeTrackedRaceListHandlerTemporarily();
if (regattaAndRaceNamesPerFleet != null && !regattaAndRaceNamesPerFleet.isEmpty()) {
RegattaAndRaceIdentifier raceIdentifier = regattaAndRaceNamesPerFleet.get(selectedFleetName);
@@ -532,7 +533,6 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
@Override
public void onSuccess(Boolean success) {
removeRaceColumnListHandlerTemporarily();
if (success) {
// TODO consider enabling the Unlink button
selectedRaceInLeaderboard.setRaceIdentifier(fleet, selectedRace);
@@ -672,8 +672,14 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
});
dialog.show();
}
/**
* TODO Lukas: Add JavaDoc
* Removes the {@link SelectionChangeEvent.Handler} until the browser regains control. The handler will be added
* again using {@link Scheduler#scheduleDeferred(ScheduledCommand)} method.
* <p>
* Use this method if you change the {@link ListDataProvider} or {@link RefreshableSelectionModel} of
* {@link TrackedRacesListComposite} and you don't want to trigger the
* {@link SelectionChangeEvent.Handler#onSelectionChange(SelectionChangeEvent)}
*/
protected void removeTrackedRaceListHandlerTemporarily() {
if (trackedRaceListHandlerRegistration == null) {
@@ -688,18 +694,4 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement
}
});
}
protected void removeRaceColumnListHandlerTemporarily() {
if (raceColumnSelectionChangeHandlerRegistration == null) {
return;
}
raceColumnSelectionChangeHandlerRegistration.removeHandler();
raceColumnSelectionChangeHandlerRegistration = null;
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
raceColumnSelectionChangeHandlerRegistration = raceColumnTableSelectionModel.addSelectionChangeHandler(raceColumnSelectionChangeHandler);
}
});
}
}
@@ -87,7 +87,6 @@ public class AssignRacesToMediaDialog extends DataEntryDialog<Set<RegattaAndRace
hasRaceCandidates = false;
this.trackedRacesListComposite.fillRegattas(result);
for (RegattaAndRaceIdentifier assignedRace : mediaTrack.assignedRaces) {
// TODO / FIXME Lukas: consider not to notify handlers, remind old implementation of TrackedRaceListComposite
this.trackedRacesListComposite.selectRaceByIdentifier(assignedRace);
}
updateUI();
@@ -672,9 +672,6 @@ TrackedRaceChangedListener, LeaderboardsDisplayer {
@Override
protected void leaderboardSelectionChanged() {
removeTrackedRaceListHandlerTemporarily();
trackedRacesListComposite.clearSelection();
leaderboardRemoveButton.setEnabled(!leaderboardSelectionModel.getSelectedSet().isEmpty());
StrippedLeaderboardDTO selectedLeaderboard = getSelectedLeaderboard();
if (leaderboardSelectionModel.getSelectedSet().size() == 1 && selectedLeaderboard != null) {