trigger listeners on RaceCompetitorSet properly

Change-Id: I1321e386344d13601220a1e318cf8233a026434c
This commit is contained in:
Axel Uhl committed 2016-07-14 16:01:53 +02:00
1 parent bddefaa3cb
commit af293f2f90
1 file changed
+9 -1
@@ -44,7 +44,7 @@ public class RaceCompetitorSet extends RaceCompetitorIdsAsStringWithMD5Hash {
*/ */
private Iterable<CompetitorDTO> competitorsParticipatingInRace; private Iterable<CompetitorDTO> competitorsParticipatingInRace;
private Set<Object> competitorsForRaceDefinedListeners; private Set<CompetitorsForRaceDefinedListener> competitorsForRaceDefinedListeners;
/** /**
* Such listeners are notified whenever the response to {@link #getCompetitorsParticipatingInRace()} changes. * Such listeners are notified whenever the response to {@link #getCompetitorsParticipatingInRace()} changes.
@@ -86,6 +86,7 @@ public class RaceCompetitorSet extends RaceCompetitorIdsAsStringWithMD5Hash {
@Override @Override
public void competitorsListChanged(final Iterable<CompetitorDTO> competitors) { public void competitorsListChanged(final Iterable<CompetitorDTO> competitors) {
competitorsParticipatingInRace = computeCompetitorsFromIDs(competitors); competitorsParticipatingInRace = computeCompetitorsFromIDs(competitors);
notifyListeners();
} }
@Override @Override
@@ -107,6 +108,13 @@ public class RaceCompetitorSet extends RaceCompetitorIdsAsStringWithMD5Hash {
public void setIdsAsStringsOfCompetitorsInRace(Set<String> idsAsStringsOfCompetitorsInRace) throws UnsupportedEncodingException, NoSuchAlgorithmException { public void setIdsAsStringsOfCompetitorsInRace(Set<String> idsAsStringsOfCompetitorsInRace) throws UnsupportedEncodingException, NoSuchAlgorithmException {
super.setIdsAsStringsOfCompetitorsInRace(idsAsStringsOfCompetitorsInRace); super.setIdsAsStringsOfCompetitorsInRace(idsAsStringsOfCompetitorsInRace);
competitorsParticipatingInRace = computeCompetitorsFromIDs(competitorSelection.getAllCompetitors()); competitorsParticipatingInRace = computeCompetitorsFromIDs(competitorSelection.getAllCompetitors());
notifyListeners();
}
private void notifyListeners() {
for (final CompetitorsForRaceDefinedListener listener : competitorsForRaceDefinedListeners) {
listener.competitorsForRaceDefined(competitorsParticipatingInRace);
}
} }
public Iterable<CompetitorDTO> getCompetitorsParticipatingInRace() { public Iterable<CompetitorDTO> getCompetitorsParticipatingInRace() {