private List<InvalidationListener> invalidationListeners = new LinkedList<InvalidationListener>();
public ReadOnlyPropertyFieldElement(Field field) throws FormException {
this.field = field;
if (!ObservableValue.class.isAssignableFrom(field.getType())) {
throw new FormException("Trying to create an observable field element with a non-observable field " + field.getType());
}
valueProperty().addListener(new ChangeListener<ObservableValue<WrappedType>>() {
public void changed(ObservableValue<? extends ObservableValue<WrappedType>> observableValue, ObservableValue<WrappedType> wrappedTypeObservableValue, ObservableValue<WrappedType> wrappedTypeObservableValue1) {
for (InvalidationListener invalidationListener : invalidationListeners) {
wrappedTypeObservableValue.removeListener(invalidationListener);