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.

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

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

Пакет javafx.beans.property.adapter также содержит реализации интерфейсов ReadOnlyJavaBeanProperty<T> и JavaBeanProperty<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String.