Class AbstractListSelectControl<V>

    • Constructor Detail

      • AbstractListSelectControl

        public AbstractListSelectControl​(ListSelectModel<V> listSelectModel,
                                         ListSelectControl.ValueRepresentationStrategy<V> valueRepresentationStrategy)
        List select model and value representation strategy constructor.
        Parameters:
        listSelectModel - The component list select model.
        valueRepresentationStrategy - The strategy to create controls to represent this model's values.
        Throws:
        java.lang.NullPointerException - if the given list select model and/or value representation strategy is null.
    • Method Detail

      • getListSelectModel

        protected ListSelectModel<V> getListSelectModel()
        Returns:
        The list select model used by this component.
      • firePropertyChange

        protected <VV> void firePropertyChange​(java.lang.String propertyName,
                                               VV oldValue,
                                               VV newValue)

        This version first updates the valid status if the value is reported as being changed.

        Overrides:
        firePropertyChange in class com.globalmentor.beans.BoundPropertyObject
      • getValue

        public V getValue()
        Specified by:
        getValue in interface com.globalmentor.model.Valued<V>
        Specified by:
        getValue in interface ValuedComponent<V>
        Specified by:
        getValue in interface ValueModel<V>
        Returns:
        The input value, or null if there is no input value.
      • setValue

        public void setValue​(V newValue)
                      throws java.beans.PropertyVetoException
        Description copied from interface: ValueModel
        Sets the new value. This is a bound property that only fires a change event when the new value is different via the equals() method. If a validator is installed, the value will first be validated before the current value is changed. Validation always occurs if a validator is installed, even if the value is not changing. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().
        Specified by:
        setValue in interface com.globalmentor.model.MutableValued<V>
        Specified by:
        setValue in interface ValuedComponent<V>
        Specified by:
        setValue in interface ValueModel<V>
        Parameters:
        newValue - The new value.
        Throws:
        java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
        See Also:
        ValueModel.getValidator(), ValueModel.VALUE_PROPERTY
      • clearValue

        public void clearValue()
        Description copied from interface: ValueModel
        Clears the value by setting the value to null, which may be invalid according to any installed validators. No validation occurs.
        Specified by:
        clearValue in interface ValueModel<V>
        See Also:
        ValueModel.VALUE_PROPERTY
      • resetValue

        public void resetValue()
        Description copied from interface: ValueModel
        Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.
        Specified by:
        resetValue in interface ValueModel<V>
        See Also:
        ValueModel.VALUE_PROPERTY
      • getValidator

        public Validator<V> getValidator()
        Specified by:
        getValidator in interface ValueModel<V>
        Returns:
        The validator for this model, or null if no validator is installed.
      • isValidValue

        public boolean isValidValue()
        Description copied from interface: ValueModel
        Determines whether the value of this model is valid.
        Specified by:
        isValidValue in interface ValueModel<V>
        Returns:
        Whether the value of this model is valid.
      • replace

        public boolean replace​(V oldValue,
                               V newValue)
        Description copied from interface: SelectModel
        Replaces the first occurrence in the of the given value with its replacement. This method ensures that another thread does not change the model while the search and replace operation occurs.
        Specified by:
        replace in interface SelectModel<V>
        Parameters:
        oldValue - The value for which to search.
        newValue - The replacement value.
        Returns:
        Whether the operation resulted in a modification of the model.
      • getSelectedValue

        public V getSelectedValue()
        Description copied from interface: SelectModel
        Determines the selected value. This method delegates to the selection strategy. If more than one value is selected, the lead selected value will be returned.
        Specified by:
        getSelectedValue in interface SelectModel<V>
        Returns:
        The value currently selected, or null if no value is currently selected.
      • getSelectedValues

        public V[] getSelectedValues()
        Description copied from interface: SelectModel
        Determines the selected values. This method delegates to the selection strategy.
        Specified by:
        getSelectedValues in interface SelectModel<V>
        Returns:
        The values currently selected.
      • setSelectedValues

        public void setSelectedValues​(V... values)
                               throws java.beans.PropertyVetoException
        Description copied from interface: SelectModel
        Sets the selected values. If a value occurs more than one time in the model, all occurrences of the value will be selected. Values that do not occur in the select model will be ignored. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause(). This method delegates to the selection strategy.
        Specified by:
        setSelectedValues in interface SelectModel<V>
        Parameters:
        values - The values to select.
        Throws:
        java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
      • getSelectedIndex

        public int getSelectedIndex()
        Description copied from interface: ListSelectModel
        Determines the selected index. If more than one index is selected, the lead selected index will be returned.
        Specified by:
        getSelectedIndex in interface ListSelectModel<V>
        Returns:
        The index currently selected, or -1 if no index is selected.
        See Also:
        SelectModel.getSelectedValue()
      • isValueDisplayed

        public boolean isValueDisplayed​(V value)
        Description copied from interface: ListSelectModel
        Determines the displayed status of the first occurrence of a given value.
        Specified by:
        isValueDisplayed in interface ListSelectModel<V>
        Parameters:
        value - The value for which the displayed status is to be determined.
        Returns:
        true if the value is displayed, else false.
      • setValueDisplayed

        public void setValueDisplayed​(V value,
                                      boolean newDisplayed)
        Description copied from interface: ListSelectModel
        Sets the displayed status of the first occurrence of a given value. This is a bound value state property.
        Specified by:
        setValueDisplayed in interface ListSelectModel<V>
        Parameters:
        value - The value to display.
        newDisplayed - Whether the value should be displayed.
        See Also:
        Displayable.DISPLAYED_PROPERTY
      • isIndexDisplayed

        public boolean isIndexDisplayed​(int index)
        Description copied from interface: ListSelectModel
        Determines the displayed status of a given index.
        Specified by:
        isIndexDisplayed in interface ListSelectModel<V>
        Parameters:
        index - The index of the value for which the displayed status is to be determined.
        Returns:
        true if the value at the given index is displayed, else false.
      • setIndexDisplayed

        public void setIndexDisplayed​(int index,
                                      boolean newDisplayed)
        Description copied from interface: ListSelectModel
        Sets the displayed status of a given index. This is a bound value state property.
        Specified by:
        setIndexDisplayed in interface ListSelectModel<V>
        Parameters:
        index - The index of the value to display.
        newDisplayed - Whether the value at the given index should be displayed.
        See Also:
        Displayable.DISPLAYED_PROPERTY
      • isValueEnabled

        public boolean isValueEnabled​(V value)
        Description copied from interface: ListSelectModel
        Determines the enabled status of the first occurrence of a given value.
        Specified by:
        isValueEnabled in interface ListSelectModel<V>
        Parameters:
        value - The value for which the enabled status is to be determined.
        Returns:
        true if the value is enabled, else false.
      • setValueEnabled

        public void setValueEnabled​(V value,
                                    boolean newEnabled)
        Description copied from interface: ListSelectModel
        Sets the enabled status of the first occurrence of a given value. This is a bound value state property.
        Specified by:
        setValueEnabled in interface ListSelectModel<V>
        Parameters:
        value - The value to enable or disable.
        newEnabled - Whether the value should be enabled.
        See Also:
        Enableable.ENABLED_PROPERTY
      • isIndexEnabled

        public boolean isIndexEnabled​(int index)
        Description copied from interface: ListSelectModel
        Determines the enabled status of a given index.
        Specified by:
        isIndexEnabled in interface ListSelectModel<V>
        Parameters:
        index - The index of the value for which the enabled status is to be determined.
        Returns:
        true if the value at the given index is enabled, else false.
      • setIndexEnabled

        public void setIndexEnabled​(int index,
                                    boolean newEnabled)
        Description copied from interface: ListSelectModel
        Sets the enabled status of a given index. This is a bound value state property.
        Specified by:
        setIndexEnabled in interface ListSelectModel<V>
        Parameters:
        index - The index of the value to enable or disable.
        newEnabled - Whether the value at the given index should be enabled.
        See Also:
        Enableable.ENABLED_PROPERTY
      • fireListModified

        protected void fireListModified​(int index,
                                        V addedElement,
                                        V removedElement)
        Fires an event to all registered list listeners indicating the list was modified.
        Parameters:
        index - The index at which an element was added and/or removed, or -1 if the index is unknown.
        addedElement - The element that was added to the list, or null if no element was added or it is unknown whether or which elements were added.
        removedElement - The element that was removed from the list, or null if no element was removed or it is unknown whether or which elements were removed.
        See Also:
        ListListener, ListEvent
      • fireSelectionChanged

        protected void fireSelectionChanged​(java.lang.Integer addedIndex,
                                            java.lang.Integer removedIndex)
        Fires an event to all registered selection listeners indicating the selection changed.
        Parameters:
        addedIndex - The index that was added to the selection, or null if no index was added or it is unknown whether or which indices were added.
        removedIndex - The index that was removed from the list, or null if no index was removed or it is unknown whether or which indices were removed.
        See Also:
        ListSelectionListener, ListSelectionEvent
      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<V>
        Specified by:
        size in interface java.util.List<V>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Collection<V>
        Specified by:
        isEmpty in interface java.util.List<V>
      • contains

        public boolean contains​(java.lang.Object value)
        Specified by:
        contains in interface java.util.Collection<V>
        Specified by:
        contains in interface java.util.List<V>
      • iterator

        public java.util.Iterator<V> iterator()
        Specified by:
        iterator in interface java.util.Collection<V>
        Specified by:
        iterator in interface java.lang.Iterable<V>
        Specified by:
        iterator in interface java.util.List<V>
      • toArray

        public java.lang.Object[] toArray()
        Specified by:
        toArray in interface java.util.Collection<V>
        Specified by:
        toArray in interface java.util.List<V>
      • toArray

        public <T> T[] toArray​(T[] array)
        Specified by:
        toArray in interface java.util.Collection<V>
        Specified by:
        toArray in interface java.util.List<V>
      • add

        public boolean add​(V value)

        This version delegates to add(int, Object).

        Specified by:
        add in interface java.util.Collection<V>
        Specified by:
        add in interface java.util.List<V>
      • remove

        public boolean remove​(java.lang.Object value)
        Specified by:
        remove in interface java.util.Collection<V>
        Specified by:
        remove in interface java.util.List<V>
      • containsAll

        public boolean containsAll​(java.util.Collection<?> collection)
        Specified by:
        containsAll in interface java.util.Collection<V>
        Specified by:
        containsAll in interface java.util.List<V>
      • addAll

        public boolean addAll​(java.util.Collection<? extends V> collection)
        Specified by:
        addAll in interface java.util.Collection<V>
        Specified by:
        addAll in interface java.util.List<V>
      • addAll

        public boolean addAll​(int index,
                              java.util.Collection<? extends V> collection)
        Specified by:
        addAll in interface java.util.List<V>
      • removeAll

        public boolean removeAll​(java.util.Collection<?> collection)
        Specified by:
        removeAll in interface java.util.Collection<V>
        Specified by:
        removeAll in interface java.util.List<V>
      • retainAll

        public boolean retainAll​(java.util.Collection<?> collection)
        Specified by:
        retainAll in interface java.util.Collection<V>
        Specified by:
        retainAll in interface java.util.List<V>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Collection<V>
        Specified by:
        clear in interface java.util.List<V>
      • get

        public V get​(int index)
        Specified by:
        get in interface java.util.List<V>
      • set

        public V set​(int index,
                     V value)
        Specified by:
        set in interface java.util.List<V>
      • add

        public void add​(int index,
                        V value)
        Specified by:
        add in interface java.util.List<V>
      • remove

        public V remove​(int index)
        Specified by:
        remove in interface java.util.List<V>
      • indexOf

        public int indexOf​(java.lang.Object value)
        Specified by:
        indexOf in interface java.util.List<V>
      • lastIndexOf

        public int lastIndexOf​(java.lang.Object value)
        Specified by:
        lastIndexOf in interface java.util.List<V>
      • listIterator

        public java.util.ListIterator<V> listIterator()
        Specified by:
        listIterator in interface java.util.List<V>
      • listIterator

        public java.util.ListIterator<V> listIterator​(int index)
        Specified by:
        listIterator in interface java.util.List<V>
      • subList

        public java.util.List<V> subList​(int fromIndex,
                                         int toIndex)
        Specified by:
        subList in interface java.util.List<V>