Class AbstractCompositeStateControl<T,S extends AbstractCompositeStateComponent.ComponentState>

Type Parameters:
T - The type of object being represented.
S - The component state of each object.
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, io.clogr.Clogged, Component, CompositeComponent, Control, InputFocusableComponent, Displayable, Enableable, InfoModel, LabelModel, Model, PresentationModel, DepictedObject
Direct Known Subclasses:
AbstractListSelectControl, Table, TreeControl

public abstract class AbstractCompositeStateControl<T,S extends AbstractCompositeStateComponent.ComponentState> extends AbstractCompositeStateComponent<T,S> implements Control
An abstract implementation of a composite control that represents the state of its child components.
Author:
Garret Wilson
  • Constructor Details

    • AbstractCompositeStateControl

      public AbstractCompositeStateControl()
      Default constructor.
    • AbstractCompositeStateControl

      public AbstractCompositeStateControl(InfoModel infoModel, Enableable enableable)
      Info model and enableable object constructor.
      Parameters:
      infoModel - The component info model.
      enableable - The enableable object in which to store enabled status.
      Throws:
      NullPointerException - if the given info model and/or enableable object is null.
  • Method Details

    • getEnableable

      protected Enableable getEnableable()
      Returns:
      The enableable object decorated by this component.
    • getStatus

      public Control.Status getStatus()
      Specified by:
      getStatus in interface Control
      Returns:
      The status of the current user input, or null if there is no status to report.
    • setStatus

      protected void setStatus(Control.Status newStatus)
      Sets the status of the current user input. This is a bound property.
      Parameters:
      newStatus - The new status of the current user input, or null if there is no status to report.
      See Also:
    • updateStatus

      protected void updateStatus()
      Rechecks user input status of this component, and updates the status.
      See Also:
    • determineStatus

      protected Control.Status determineStatus()
      Checks the user input status of the control. If the component has a notification of Notification.Severity.WARN, the status is determined to be Control.Status.WARNING. If the component has a notification of Notification.Severity.ERROR, the status is determined to be Control.Status.ERROR. Otherwise, this version returns null.
      Returns:
      The current user input status of the control.
    • updateValid

      protected void updateValid()
      Rechecks user input validity of this component and all child components, and updates the valid state. This implementation only updates the valid property if the property is already initialized or there is at least one listener to the Component.VALID_PROPERTY.

      This version also updates the status.

      Overrides:
      updateValid in class AbstractComponent
      See Also:
    • setNotification

      public void setNotification(Notification newNotification)
      Description copied from interface: Component
      Sets the component notification. This is a bound property. The notification is also fired as a NotificationEvent on this component if a new notification is given. Parents are expected to refire the notification event up the hierarchy.
      Specified by:
      setNotification in interface Component
      Overrides:
      setNotification in class AbstractComponent
      Parameters:
      newNotification - The notification for the component, or null if no notification is associated with this component.
      See Also:
    • reset

      public void reset()
      Resets the control to its default value.

      This version clears any notification.

      Specified by:
      reset in interface Control
      See Also:
    • isEnabled

      public boolean isEnabled()
      Specified by:
      isEnabled in interface Enableable
      Returns:
      Whether the object is enabled and can receive user input.
    • setEnabled

      public void setEnabled(boolean newEnabled)
      Description copied from interface: Enableable
      Sets whether the object is enabled and can receive user input. This is a bound property of type Boolean.
      Specified by:
      setEnabled in interface Enableable
      Parameters:
      newEnabled - true if the object should indicate and accept user input.
      See Also: