Dostowanie modelu danych
Model naszej przykładowej aplikacji musi zostać zmodyfikowany tak, aby w prosty sposób synchronizować jego stan z informacjami wyświetlanymi na ekranie. W tym celu JavaFX wprowadza mechanizm właściwości (Properties), które posiadają wbudowane mechanizmy notyfikacji o zmianach swoich wartości.
Więcej na ten temat znajdziesz na stronie Using JavaFX Properties and Binding.
Zadania
- Sprawdź jakie metody definiuje interfejs Property (opens in a new tab)?
- Wyjaśnij zasadę działania mechanizmu właściwości w JavaFX.
- Dla potrzeb naszej prostej aplikacji, konieczne będzie opakowanie atrybutów obiektów modelu we właściwości odpowiedniego typu. W tym celu:
- Otwórz klasę
Photo - Przekształć każdy z atrybutów, podmieniając jego typ na odpowiadające mu
Property.W przypadku typów prymitywnych JavaFX defniuje proste odpowiedniki, na zasadzie
int->IntegerProperty,String->StringProperty. W przypadku innych typów należy użyćObjectProperty<T>. - Dostosuj gettery i ewentualne settery tak by API się nie zmieniło. Wykorzystaj metody
Property#get()orazProperty#set(). - W każdym przypadku dodaj metodę
xProperty(), gdziexto nazwa atrybutu. Metoda powinna zwracać cały obiekt właściwości, który wykorzystamy potem do podłączenia widoku.
- Otwórz klasę
Ogólny schemat modelu przekształconego na potrzeby JavaFX:
public class ModelClass {
private IntegerProperty attribute;
public ModelClass(..., int initialValue, ...) {
this.attribute = new SimpleIntegerProperty(initialValue);
}
public int getAttribute() {
return attribute.get();
}
public void setAttribute(int value) {
this.attribute.set(value);
}
public IntegerProperty attributeProperty() {
return attribute;
}
}