|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.kuali.rice.krad.uif.component.ConfigurableBase org.kuali.rice.krad.uif.component.ComponentBase org.kuali.rice.krad.uif.container.ContainerBase org.kuali.rice.krad.uif.container.Group org.kuali.rice.krad.uif.container.CollectionGroup
public class CollectionGroup
Group that holds a collection of objects and configuration for presenting the collection in the UI. Supports functionality such as add line, line actions, and nested collections.
Note the standard header/footer can be used to give a header to the collection as a whole, or to provide actions that apply to the entire collection
For binding purposes the binding path of each row field is indexed. The name
property inherited from ComponentBase
is used as the collection
name. The collectionObjectClass property is used to lookup attributes from
the data dictionary.
Field Summary |
---|
Fields inherited from interface org.kuali.rice.krad.uif.component.Ordered |
---|
INITIAL_ORDER_VALUE |
Fields inherited from interface org.springframework.core.Ordered |
---|
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Constructor Summary | |
---|---|
CollectionGroup()
|
Method Summary | |
---|---|
List<ActionField> |
getActionFields()
Action fields that should be rendered for each collection line. |
CollectionFilter |
getActiveCollectionFilter()
Collection filter instance for filtering the collection data when the showInactive flag is set to false |
List<ActionField> |
getAddLineActionFields()
Action fields that should be rendered for the add line. |
BindingInfo |
getAddLineBindingInfo()
BindingInfo instance for the add line property used to
determine the full binding path. |
List<? extends Field> |
getAddLineFields()
List of Field instances that should be rendered for the
collection add line (if enabled). |
String |
getAddLineLabel()
Convenience getter for the add line label field text. |
LabelField |
getAddLineLabelField()
LabelField instance for the add line label |
String |
getAddLinePropertyName()
Name of the property that contains an instance for the add line. |
BindingInfo |
getBindingInfo()
Determines the binding path for the collection. |
CollectionGroupBuilder |
getCollectionGroupBuilder()
CollectionGroupBuilder instance that will build the
components dynamically for the collection instance |
QuickFinder |
getCollectionLookup()
Instance of the QuickFinder widget that configures a multi-value lookup for the collection |
Class<?> |
getCollectionObjectClass()
Object class the collection maintains. |
List<Component> |
getComponentPrototypes()
List of components that are maintained by the component as prototypes for creating other component instances |
List<Component> |
getComponentsForLifecycle()
List of components that are contained within the component and should be sent through the lifecycle |
List<CollectionFilter> |
getFilters()
List of CollectionFilter instances that should be invoked to filter the collection before
displaying |
List<? extends Field> |
getItems()
List of Component instances that are held by
the container |
String |
getPropertyName()
Name of the property (relative to the parent object) the component binds to |
String |
getSelectPropertyName()
When isRenderSelectField() is true, gives the name of the property the select field
should bind to |
List<CollectionGroup> |
getSubCollections()
List of CollectionGroup instances that are sub-collections
of the collection represented by this collection group |
String |
getSubCollectionSuffix()
Suffix for IDs that identifies the collection line the sub-collection belongs to |
void |
initializeNewCollectionLine(View view,
Object model,
CollectionGroup collectionGroup,
boolean clearExistingLine)
New collection lines are handled in the framework by maintaining a map on the form. |
boolean |
isRenderAddLine()
Indicates whether an add line should be rendered for the collection |
boolean |
isRenderLineActions()
Indicates whether the action column for the collection should be rendered |
boolean |
isRenderSelectField()
Indicates whether lines of the collection group should be selected by rendering a field for each line that will allow selection |
boolean |
isShowHideInactiveButton()
|
boolean |
isShowInactive()
Indicates whether inactive collections lines should be displayed |
void |
performApplyModel(View view,
Object model,
Component parent)
Calls the configured CollectionGroupBuilder to build the
necessary components based on the collection data |
void |
performInitialization(View view,
Object model)
The following actions are performed: Set fieldBindModelPath to the collection model path (since the fields have to belong to the same model as the collection) Set defaults for binding Default add line field list to groups items list Sets default active collection filter if not set Sets the dictionary entry (if blank) on each of the items to the collection class |
protected void |
pushCollectionGroupToReference()
Sets a reference in the context map for all nested components to the collection group instance, and sets name as parameter for an action fields in the group |
void |
setActionFields(List<ActionField> actionFields)
Setter for the line action fields list |
void |
setActiveCollectionFilter(CollectionFilter activeCollectionFilter)
Setter for the collection filter to use for filter inactive records from the collection |
void |
setAddLineActionFields(List<ActionField> addLineActionFields)
Setter for the add line action fields |
void |
setAddLineBindingInfo(BindingInfo addLineBindingInfo)
Setter for the add line binding info |
void |
setAddLineFields(List<? extends Field> addLineFields)
Setter for the add line field list |
void |
setAddLineLabel(String addLineLabel)
Setter for the add line label text |
void |
setAddLineLabelField(LabelField addLineLabelField)
Setter for the LabelField instance for the add line label |
void |
setAddLinePropertyName(String addLinePropertyName)
Setter for the add line property name |
void |
setBindingInfo(BindingInfo bindingInfo)
Setter for the binding info instance |
void |
setCollectionGroupBuilder(CollectionGroupBuilder collectionGroupBuilder)
Setter for the collection group building instance |
void |
setCollectionLookup(QuickFinder collectionLookup)
Setter for the collection lookup quickfinder instance |
void |
setCollectionObjectClass(Class<?> collectionObjectClass)
Setter for the collection object class |
void |
setFilters(List<CollectionFilter> filters)
Setter for the List of collection filters for which the collection will be filtered against |
void |
setPropertyName(String propertyName)
Setter for the collections property name |
void |
setRenderAddLine(boolean renderAddLine)
Setter for the render add line indicator |
void |
setRenderLineActions(boolean renderLineActions)
Setter for the render line actions indicator |
void |
setRenderSelectField(boolean renderSelectField)
Setter for the render selected field indicator |
void |
setSelectPropertyName(String selectPropertyName)
Setter for the property name that will bind to the select field |
void |
setShowHideInactiveButton(boolean showHideInactiveButton)
|
void |
setShowInactive(boolean showInactive)
Setter for the show inactive indicator |
void |
setSubCollections(List<CollectionGroup> subCollections)
Setter for the sub collection list |
void |
setSubCollectionSuffix(String subCollectionSuffix)
Setter for the sub-collection suffix (used by framework, should not be set in configuration) |
Methods inherited from class org.kuali.rice.krad.uif.container.Group |
---|
getComponentTypeName, getDisclosure, getFieldBindByNamePrefix, getFieldBindingObjectPath, getSupportedComponents, setDisclosure, setFieldBindByNamePrefix, setFieldBindingObjectPath, setItems |
Methods inherited from class org.kuali.rice.krad.uif.container.ContainerBase |
---|
getAdditionalMessageKeys, getErrorsField, getFooter, getHeader, getHelp, getInputFields, getInstructionalMessageField, getInstructionalText, getItemOrderingSequence, getLayoutManager, isFieldContainer, performFinalize, setAdditionalMessageKeys, setErrorsField, setFieldContainer, setFooter, setHeader, setHelp, setInstructionalMessageField, setInstructionalText, setItemOrderingSequence, setLayoutManager, setRenderFooter, setRenderHeader |
Methods inherited from class org.kuali.rice.krad.uif.component.ConfigurableBase |
---|
getPropertyExpression, getPropertyExpressions, setPropertyExpressions |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.kuali.rice.krad.uif.component.Configurable |
---|
getPropertyExpression, getPropertyExpressions, setPropertyExpressions |
Constructor Detail |
---|
public CollectionGroup()
Method Detail |
---|
public void performInitialization(View view, Object model)
performInitialization
in interface Component
performInitialization
in class Group
view
- - view instance in which the component belongsmodel
- - object instance containing the view dataComponentBase.performInitialization(org.kuali.rice.krad.uif.view.View,
java.lang.Object)
public void performApplyModel(View view, Object model, Component parent)
CollectionGroupBuilder
to build the
necessary components based on the collection data
performApplyModel
in interface Component
performApplyModel
in class ContainerBase
view
- - view instance to which the component belongsmodel
- - Top level object containing the data (could be the form or a
top level business object, dto)ContainerBase.performApplyModel(org.kuali.rice.krad.uif.view.View,
java.lang.Object, org.kuali.rice.krad.uif.component.Component)
protected void pushCollectionGroupToReference()
public void initializeNewCollectionLine(View view, Object model, CollectionGroup collectionGroup, boolean clearExistingLine)
CollectionGroup
if an instance
is not available (clearExistingLine will force a new instance). The given
model must be a subclass of UifFormBase
in order to find the
Map.
model
- - Model instance that contains the new collection lines MapclearExistingLine
- - boolean that indicates whether the line should be set to a
new instance if it already existspublic List<Component> getComponentsForLifecycle()
Component
Used by ViewHelperService
for the various lifecycle
callbacks
getComponentsForLifecycle
in interface Component
getComponentsForLifecycle
in class Group
ContainerBase.getComponentsForLifecycle()
public List<Component> getComponentPrototypes()
Component
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.
getComponentPrototypes
in interface Component
getComponentPrototypes
in class ContainerBase
Component.getComponentPrototypes()
public Class<?> getCollectionObjectClass()
public void setCollectionObjectClass(Class<?> collectionObjectClass)
collectionObjectClass
- public String getPropertyName()
DataBinding
getPropertyName
in interface DataBinding
DataBinding.getPropertyName()
public void setPropertyName(String propertyName)
propertyName
- public BindingInfo getBindingInfo()
getBindingInfo
in interface DataBinding
DataBinding.getBindingInfo()
public void setBindingInfo(BindingInfo bindingInfo)
setBindingInfo
in interface DataBinding
bindingInfo
- public List<ActionField> getActionFields()
public void setActionFields(List<ActionField> actionFields)
actionFields
- public boolean isRenderLineActions()
getActionFields()
public void setRenderLineActions(boolean renderLineActions)
renderLineActions
- public boolean isRenderAddLine()
public void setRenderAddLine(boolean renderAddLine)
renderAddLine
- public String getAddLineLabel()
LayoutManager
.
For the TableLayoutManager
the label appears in the sequence
column to the left of the add line fields. For the
StackedLayoutManager
the label is placed into the group
header for the line.
public void setAddLineLabel(String addLineLabel)
addLineLabel
- public LabelField getAddLineLabelField()
LabelField
instance for the add line label
getAddLineLabel()
public void setAddLineLabelField(LabelField addLineLabelField)
LabelField
instance for the add line label
addLineLabelField
- getAddLineLabel()
public String getAddLinePropertyName()
public void setAddLinePropertyName(String addLinePropertyName)
addLinePropertyName
- public BindingInfo getAddLineBindingInfo()
BindingInfo
instance for the add line property used to
determine the full binding path. If add line name given
getAddLineLabel()
then it is set as the binding name on the
binding info. Add line label and binding info are not required, in which
case the framework will manage the new add line instances through a
generic map (model must extend UifFormBase)
public void setAddLineBindingInfo(BindingInfo addLineBindingInfo)
addLineBindingInfo
- public List<? extends Field> getAddLineFields()
Field
instances that should be rendered for the
collection add line (if enabled). If not set, the default group's items
list will be used
public void setAddLineFields(List<? extends Field> addLineFields)
addLineFields
- public List<ActionField> getAddLineActionFields()
public void setAddLineActionFields(List<ActionField> addLineActionFields)
addLineActionFields
- public boolean isRenderSelectField()
For example, having the select field enabled could allow selecting multiple lines from a search to return (multi-value lookup)
public void setRenderSelectField(boolean renderSelectField)
renderSelectField
- public String getSelectPropertyName()
isRenderSelectField()
is true, gives the name of the property the select field
should bind to
Note if no prefix is given in the property name, such as 'form.', it is assumed the property is contained on the collection line. In this case the binding path to the collection line will be appended. In other cases, it is assumed the property is a list or set of String that will hold the selected identifier strings
This property is not required. If not the set the framework will use a property contained on
UifFormBase
public void setSelectPropertyName(String selectPropertyName)
selectPropertyName
- public QuickFinder getCollectionLookup()
QuickFinder
widget that configures a multi-value lookup for the collection
If the collection lookup is enabled (by the render property of the quick finder), getCollectionObjectClass()
will be used as the data object class for the lookup (if not set). Field
conversions need to be set as usual and will be applied for each line returned
public void setCollectionLookup(QuickFinder collectionLookup)
collectionLookup
- public boolean isShowInactive()
Setting only applies when the collection line type implements the
Inactivatable
interface. If true and showInactive is
set to false, the collection will be filtered to remove any items
whose active status returns false
public void setShowInactive(boolean showInactive)
showInactive
- boolean show inactivepublic CollectionFilter getActiveCollectionFilter()
public void setActiveCollectionFilter(CollectionFilter activeCollectionFilter)
activeCollectionFilter
- - CollectionFilter instancepublic List<CollectionFilter> getFilters()
CollectionFilter
instances that should be invoked to filter the collection before
displaying
public void setFilters(List<CollectionFilter> filters)
filters
- public List<CollectionGroup> getSubCollections()
CollectionGroup
instances that are sub-collections
of the collection represented by this collection group
public void setSubCollections(List<CollectionGroup> subCollections)
subCollections
- public String getSubCollectionSuffix()
Built by the framework as the collection lines are being generated
public void setSubCollectionSuffix(String subCollectionSuffix)
subCollectionSuffix
- public CollectionGroupBuilder getCollectionGroupBuilder()
CollectionGroupBuilder
instance that will build the
components dynamically for the collection instance
public void setCollectionGroupBuilder(CollectionGroupBuilder collectionGroupBuilder)
collectionGroupBuilder
- public List<? extends Field> getItems()
Container
List
of Component
instances that are held by
the container
Contained components are rendered within the section template by calling
the associated LayoutManager
getItems
in interface Container
getItems
in class Group
ContainerBase.getItems()
public void setShowHideInactiveButton(boolean showHideInactiveButton)
showHideInactiveButton
- the showHideInactiveButton to setpublic boolean isShowHideInactiveButton()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |