Czytanie zmian wewnatrz obiektow

0

Witam,

Mam taki problem,

Mam obiekty klasy Membres, dajmy na to A, B, C, D,

W klasie membres mam zdefiniowane Pola:

ObjectProperty<Membres> Racine;
ObjectProperty<Membres> Mother
ObjectProperty<Membres> Father

ObservableList <Membres> Children

Jezeli obiekt ma Matke i Ojca NULL to Racine jest on sam. Jezeli ma Ojca to Racine jest Racine Ojca, a jezeli ojciec Null a matka istnieje, to Racine jest Racine Matki.

Utworzylam tez change listener ktory przypisalam do Matki i do Ojca.

I teraz tak, jezeli zmieni sie ojcec lub matka, to nastepuje przeliczenie kto jest Racine.

To czego oczekiwalam to reakcja lancuchowa czyli:

Przypisuje A jako Ojca B -> B ma Racine A ( to działa)
Przypisuje C jako ojca D -> D ma Racine C ( to działa)
Przypisuje B jako ojca C -> C i D powinni zmienic Racine na A-> I to niestety nie dziala. O ile C zmienil swojego Racine, o tyle D juz nie.

Oczekiwalam, że jesli dokonam jakiejkolwiek zmiany w obiekcie Father ( a zmiana objectProperty to dla mnie zmiana) to zostanie to odnotowane przez Listener. Niestety tak nie jest lub robie cos zle ;(

0

To jest kod mojego listenera.

 MembresLeftRight = new ChangeListener() {
            @Override
            public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                System.out.println("Byl update w racine : " +newValue.toString());
                
              if(MembreRight.get() != null) {
                  for(Membres m : ChildrenList) {
                      m.setRacine(MembreRight.get().getRacine());
                  }
              } else if ( MembreRight.get() == null && MembreLeft.get() != null) {
                 for(Membres m : ChildrenList) {
                      m.setRacine(MembreLeft.get().getRacine());
                  } 
              
              }
            }
        };
        MembreRight.addListener(MembresLeftRight);
        MembreLeft.addListener(MembresLeftRight);

1 użytkowników online, w tym zalogowanych: 0, gości: 1