@startuml autonumber ' La vue affiche une parcelle donnée participant "VueJardin:Pape14" as v participant "Parcelle:p0" as p0 participant "Parcelle:p1" as p1 participant "Parcelle:p2" as p2 participant "Parcelle:p3" as p3 participant "Parcelle:p00" as p00 participant "Parcelle:p4" as p4 participant "Parcelle:p5" as p5 ... setParcelleVisible : change la parcelle affichée ... v -> v ++ : setParcelleVisible(p0) v -- ... getSplit : indique si la parcelle est découpée et comment ... v -> p0 ++ : getSplit() return V ... getSecond : renvoie la seconde sous-parcelle issue d'une découpe ... v -> p0 ++ : getSecond() return p1 ... getSplit : ici p1 n'est pas encore découpée ... v -> p1 ++ : getSplit() return null ... split : découpe la parcelle en deux nouvelles parcelles ... v -> p1 ++ : split(V) create p2 p1 -> p2 : new create p3 p1 -> p3 : new return ... reset : annule la découpe et supprime les sous-parcelles ... v -> p1 ++ : reset() p1 -> p2 !! : delete p1 -> p3 !! : delete return ... split : nouvelle découpe, cette fois horizontale ... v -> p1 ++ : split(H) create p4 p1 -> p4 : new create p5 p1 -> p5 : new return ... getParcelleMere : permet de revenir à la parcelle d'origine ... v -> p1 ++ : getParcelleMere() return p0 ... setParcelleVisible : la vue revient sur p0 ... v -> v ++ : setParcelleVisible(p0) v -- ... getFirst : renvoie la première sous-parcelle (ici p00) ... v -> p0 ++ : getFirst() return p00 ... setParcelleVisible : la vue affiche maintenant p00 ... v -> v ++ : setParcelleVisible(p00) v -- ... getLegume : renvoie le légume actuellement présent ... v -> p00 ++ : getLegume() return romaine ... removeLegume : enlève la culture de la parcelle ... v -> p00 ++ : removeLegume() return ... setLegume : plante un nouveau légume sur la parcelle ... v -> p00 ++ : setLegume(epinards) return @enduml