Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 {
}

ObservableGrid <|.. DinRutenettklasseDinSpillklasse
DinRutenettklasseDinSpillklasse --> "*" 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).

 

...