/*
 * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package javafx.beans.property;

import com.sun.javafx.binding.ListExpressionHelper;
import javafx.beans.InvalidationListener;
import javafx.beans.value.ChangeListener;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;

Base class for all readonly properties wrapping an ObservableList. This class provides a default implementation to attach listener.
See Also:
Since:JavaFX 2.1
/** * Base class for all readonly properties wrapping an * {@link javafx.collections.ObservableList}. * This class provides a default implementation to attach listener. * * @see ReadOnlyListProperty * @since JavaFX 2.1 */
public abstract class ReadOnlyListPropertyBase<E> extends ReadOnlyListProperty<E> { private ListExpressionHelper<E> helper; @Override public void addListener(InvalidationListener listener) { helper = ListExpressionHelper.addListener(helper, this, listener); } @Override public void removeListener(InvalidationListener listener) { helper = ListExpressionHelper.removeListener(helper, listener); } @Override public void addListener(ChangeListener<? super ObservableList<E>> listener) { helper = ListExpressionHelper.addListener(helper, this, listener); } @Override public void removeListener(ChangeListener<? super ObservableList<E>> listener) { helper = ListExpressionHelper.removeListener(helper, listener); } @Override public void addListener(ListChangeListener<? super E> listener) { helper = ListExpressionHelper.addListener(helper, this, listener); } @Override public void removeListener(ListChangeListener<? super E> listener) { helper = ListExpressionHelper.removeListener(helper, listener); }
This method needs to be called if the reference to the ObservableList changes. It sends notifications to all attached InvalidationListeners, ChangeListeners, and ListChangeListener. This method needs to be called, if the value of this property changes.
/** * This method needs to be called if the reference to the * {@link javafx.collections.ObservableList} changes. * * It sends notifications to all attached * {@link javafx.beans.InvalidationListener InvalidationListeners}, * {@link javafx.beans.value.ChangeListener ChangeListeners}, and * {@link javafx.collections.ListChangeListener}. * * This method needs to be called, if the value of this property changes. */
protected void fireValueChangedEvent() { ListExpressionHelper.fireValueChangedEvent(helper); }
This method needs to be called if the content of the referenced ObservableList changes. Sends notifications to all attached InvalidationListeners, ChangeListeners, and ListChangeListener. This method is called when the content of the list changes.
Params:
  • change – the change that needs to be propagated
/** * This method needs to be called if the content of the referenced * {@link javafx.collections.ObservableList} changes. * * Sends notifications to all attached * {@link javafx.beans.InvalidationListener InvalidationListeners}, * {@link javafx.beans.value.ChangeListener ChangeListeners}, and * {@link javafx.collections.ListChangeListener}. * * This method is called when the content of the list changes. * * @param change the change that needs to be propagated */
protected void fireValueChangedEvent(ListChangeListener.Change<? extends E> change) { ListExpressionHelper.fireValueChangedEvent(helper, change); } }