PlantUML Macro |
---|
interface ObservableGrid {
+void addGridListener(GridListener gridListener)
+void removeGridListener(GridListener gridListener)
}
interface GridListener {
+void gridChanged(ObservableGrid grid, int x, int y, int w, int h)
}
class DinRutenettklasse DinSpillklasse{
}
ObservableGrid <|.. DinSpillklasse
DinSpillklasse --> "*" GridListener: gridListeners |
| ObservableGrid har følgende metoder for lytterhåndtering: - void addGridListener(GridListener) - registrerer en lytter skal skal ha beskjed hver gang rutenettet endres
- void removeGridListener(GridListener) - avregistrere en lytter som tidligere er registrert med addGridListener
Lytterne må implementere GridListener og dermed følgende metode: - gridChanged(ObservableGrid grid, int x, int y, int w, int h) - metoden kalles for å gi beskjed om at en eller flere ruter i rutenettet (grid) innenfor det angitte rektanglet er endret. Rektanglet er angitt med posisjon x, y og dimensjonene w, h (bredde, høyde).
Hvis f.eks. metoden kalles med x=1, y=2, w=2 og h=1, så angir det at rutene 1,2 og 2,2 er endret. Det er opp til rutenett-klassen å avgjøre om endringer av flere ruter rapporteres med ett eller flere kall til gridChanged-metoden. Så endringer i rutene 1,2 og 2,2 kan også rapporteres med to kall, ett hvor x=1, y=2 og ett hvor x=2, y=2, med w=1 og h=1 for begge. Så selv om en kaller denne metoden, så er det ikke dermed sagt at alle rutene i det angitte rektangelet er endret (strengt tatt trenger ingen å være det). |