package com.revolsys.swing.listener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.lang.ref.Reference; import java.lang.ref.WeakReference; import com.revolsys.util.Property; /** * A property change listener that uses the propertyName and newValue from the {@link PropertyChangeEvent} * to set the value for that property on the object. * */ public class BeanPropertyListener implements PropertyChangeListener { private final Reference<Object> reference; public BeanPropertyListener(final Object object) { this.reference = new WeakReference<>(object); } @Override public void propertyChange(final PropertyChangeEvent event) { final Object object = this.reference.get(); if (object != null) { final String propertyName = event.getPropertyName(); final Object value = event.getNewValue(); Property.setSimple(object, propertyName, value); } } }