Interface ComponentModifier

All Superinterfaces:
DictionaryBean, Ordered, org.springframework.core.Ordered, Serializable, UifDictionaryBean
All Known Implementing Classes:
CompareFieldCreateModifier, ComponentConvertModifier, ComponentModifierBase, LabelSeparateModifier

public interface ComponentModifier extends UifDictionaryBean, Serializable, Ordered
Provides modification functionality for a Component

ComponentModifier instances are configured by the component's dictionary definition. They can be used to provide dynamic initialization behavior for a certain type of component or all components based on the getComponentsForLifecycle method. In addition they can do dynamic generation of new Component instances, or replacement of the components or their properties.

Modifiers provide for more usability and flexibility of component configuration. For instance if a Group definition is already configured that is close to what the developer needs, but they need to make global changes of the group, then can invoke or create a ComponentModifier for the group to apply those changes. The configuration can then inherit the exiting group definition and then specify the modifier to run with the component's componentModifiers property.

Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Method Details

    • performInitialization

      void performInitialization(Object model, Component component)
      Should be called to initialize the ComponentModifier

      This is where component modifiers can set defaults and setup other necessary state. The initialize method should only be called once per layout manager lifecycle and is invoked within the initialize phase of the view lifecylce.

      Note if the component modifier holds nested components, they should be initialized in this method by calling the view helper service

      Parameters:
      model - - object instance containing the view data
      component - - Component the modifier is configured on
      See Also:
    • performModification

      void performModification(Object model, Component component)
      Invoked within the configured phase of the component lifecycle. This is where the ComponentModifier should perform its work against the given Component instance
      Parameters:
      model - - top level object containing the view data
      component - - the component instance to modify
      See Also:
    • getSupportedComponents

      Set<Class<? extends Component>> getSupportedComponents()
      Set of Component classes that may be sent to the modifier

      If an empty or null list is returned, it is assumed the modifier supports all components. The returned set will be used by the dictionary validation

      Returns:
      Set component classes
    • getComponentPrototypes

      List<Component> getComponentPrototypes()
      List of components that are maintained by the modifier as prototypes for creating other component instances

      Prototypes are held for configuring how a component should be created during the lifecycle. An example of this are the fields in a collection group that are created for each collection record. They only participate in the initialize phase.

      Returns:
      List<Component> child component prototypes
    • getRunPhase

      String getRunPhase()
      Indicates what phase of the component lifecycle the ComponentModifier should be invoked in (INITIALIZE, APPLY_MODEL, or FINALIZE)
      Returns:
      String view lifecycle phase
      See Also:
    • getRunCondition

      String getRunCondition()
      Conditional expression to evaluate for determining whether the component modifier should be run. If the expression evaluates to true the modifier will be executed, otherwise it will not be executed
      Returns:
      String el expression that should evaluate to boolean
    • getOrder

      int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
      See Also:
      • Ordered.getOrder()
    • setOrder

      void setOrder(int order)
      Description copied from interface: Ordered
      Setter for the order value
      Specified by:
      setOrder in interface Ordered
      Parameters:
      order -
      See Also: