Interface CollectionLayoutManager

All Superinterfaces:
Cloneable, Copyable, DictionaryBean, LayoutManager, LifecycleElement, Serializable, UifDictionaryBean
All Known Subinterfaces:
StackedLayoutManager, TableLayoutManager
All Known Implementing Classes:
CollectionLayoutManagerBase, StackedLayoutManagerBase, TableLayoutManagerBase

public interface CollectionLayoutManager extends LayoutManager
Layout manager implementations that work with a collection (such as a table layout) should implement this interface for building the collection component instances.

Unlike other group instances, collection group instances need to generate new instances of the configured components for each line of the collection. The field instances for each line are wrapped differently depending on what layout manager is being applied. Therefore as the collection lines are being built (during the applyModel phase) this method will be invoked on the manager so that it may setup the line as needed.

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

    • buildLine

      void buildLine(LineBuilderContext lineBuilderContext)
      Call to the layout manager to build the components necessary for the given collection line, within an active view lifecycle.

      As the collection is being iterated over by the CollectionGroupLineBuilder this method is invoked for each line. The builder will create copies of the configured fields and actions for the line and pass into the layout manager so they can be assembled

      Parameters:
      lineBuilderContext - context for the line to be built
    • processPagingRequest

      void processPagingRequest(Object model, CollectionGroup collectionGroup)
      Invoked when a paging request occurs to carry out the paging request.
      Parameters:
      model - object containing the view's data
      collectionGroup - collection group the request was made for
    • getAddLineGroup

      Group getAddLineGroup()
      Group for rendering the add line when separate (always the case for stacked layout, and a configuration for table layout).

      This group can be used to configure how the add line will be rendered. For example the layout manager configured on the group will be used to rendered the add line fields. If the header (title) is not set on the group, it will be set from CollectionGroup.getAddLabel(). In addition, CollectionGroup.getAddLineActions() will be added to the group footer items.

      Returns:
      Group instance for the collection add line
    • setAddLineGroup

      void setAddLineGroup(Group addLineGroup)
      See Also:
    • getSubCollectionFieldGroupPrototype

      FieldGroup getSubCollectionFieldGroupPrototype()
      Field group instance that is used as a prototype for creating the sub-collection field groups.
      Returns:
      GroupField instance to use as prototype
    • setSubCollectionFieldGroupPrototype

      void setSubCollectionFieldGroupPrototype(FieldGroup subCollectionFieldGroupPrototype)
      See Also:
    • getSelectFieldPrototype

      Field getSelectFieldPrototype()
      Field instance that serves as a prototype for creating the select field on each line when CollectionGroup.isIncludeLineSelectionField() is true.

      This prototype can be used to set the control used for the select field (generally will be a checkbox control) in addition to styling and other setting. The binding path will be formed with using the CollectionGroup.getLineSelectPropertyName() or if not set the framework will use UifFormBase.getSelectedCollectionLines()

      Returns:
      select field prototype instance
    • setSelectFieldPrototype

      void setSelectFieldPrototype(Field selectFieldPrototype)
      See Also:
    • getPagerWidget

      Pager getPagerWidget()
      Widget used to page the collection.

      The settings in this widget are only used by TableLayoutManagers which DO NOT take advantage of the RichTable option (this has its own paging implementation). To turn off RichTable and use a basic table with server paging set richTable.render="false" and useServerPaging="true" on the CollectionGroup which uses this layout manager.

      Returns:
      the Pager widget
    • setPagerWidget

      void setPagerWidget(Pager pagerWidget)
      See Also: