T.M. SoftStudio

feci quod potui, faciant meliora potentes

Шаблон проектирования Адаптер обеспечивает расширение функциональности одного класса за счет функциональности другого класса, позволяя включать существующие объекты в новые структуры, независимо от различий в их интерфейсах.

Пакет javafx.beans.property.adapter обеспечивает приведение JavaBeans свойств к JavaFX свойствам, применяя шаблон проектирования Class Adapter:

public class ClassAdapter extends Adaptee

implements TargetInterface {

public void targetMethod() {

method();

}

}

Где TargetInterface – это интерфейс JavaBeanProperty<T>, Adaptee – классы ХХХProperty пакета javafx.beans.property, ClassAdapter – классы JavaBeanХХХProperty пакета javafx.beans.property.adapter.

Класс JavaBeanХХХProperty обеспечивает адаптер между простым JavaBeans-свойством и JavaFX-свойством. Экземпляр класса JavaBeanХХХProperty не может быть создан с помощью конструктора, а создается с помощью класса-фабрики JavaBeanХХХPropertyBuilder.

Класс JavaBeans-компонента должен иметь, по крайней мере, методы get() и set(). Если вызывается метод get() JavaBeans-компонента, он возвращает значение JavaBeans-свойства. Если же вызывается метод set() JavaBeans-компонента, который поддерживает слушателей PropertyChangeListeners пакета java.beans, свойство JavaBeanХХХProperty автоматически уведомляется об изменении JavaBeans-свойства. Если вызывается метод set() JavaBeans-компонента, который не поддерживает слушателей PropertyChangeListeners пакета java.beans, свойство JavaBeanХХХProperty может быть уведомлено об изменении JavaBeans-свойства вызовом метода fireValueChangedEvent(). Если JavaBeans-свойство также ограничено, т.е. поддерживает слушателей VetoableChangeListeners, свойство JavaBeanХХХProperty будет автоматически отклонять изменения, если оно связано со значением ObservableValue.

Интерфейс ReadOnlyJavaBeanProperty<T>

Интерфейс ReadOnlyJavaBeanProperty<T> расширяет интерфейс javafx.beans.property.ReadOnlyProperty<T> и является суперинтерфейсом для всех классов-адаптеров между неизменяемыми JavaBeans свойствами и JavaFX свойствами.

Интерфейс ReadOnlyJavaBeanProperty<T> имеет следующие методы:

  • void fireValueChangedEvent() – вызывается для уведомления адаптера при изменении значения JavaBeans свойства, которое не поддерживает слушателей PropertyChangeListeners пакета java.beans.

  • void dispose() – удаляет слушателей изменения JavaBeans свойства.