public class CompareFieldCreateModifier extends ComponentModifierBase
Field
instances to produce a comparison view among
objects of the same type
Modifier is initialized with a List of ComparableInfo
instances.
For each comparable info, a copy of the configured group field is made and
adjusted to the binding object path for the comparable. The comparison fields
are ordered based on the configured order property of the comparable. In
addition, a HeaderField
can be generated to label each group
of comparison fields.
componentCode, namespaceCode
INITIAL_ORDER_VALUE
Constructor and Description |
---|
CompareFieldCreateModifier() |
Modifier and Type | Method and Description |
---|---|
protected String |
getComparableId(ComparableInfo comparable,
int index)
Generates an comparableId suffix for the comparable item
|
List<ComparableInfo> |
getComparables()
List of
ComparableInfo instances the compare fields should
be generated for |
List<Component> |
getComponentPrototypes()
List of components that are maintained by the modifier as prototypes for creating other component instances
|
int |
getDefaultOrderSequence()
Indicates the starting integer sequence value to use for
ComparableInfo instances that do not have the order property
set |
Header |
getHeaderFieldPrototype()
Prototype instance to use for creating the
HeaderField for
each group of comparison fields (if generateCompareHeaders is true) |
Set<Class<? extends Component>> |
getSupportedComponents()
Set of Component classes that may be sent to
the modifier |
boolean |
isGenerateCompareHeaders()
Indicates whether a
HeaderField should be created for each
group of comparison fields |
void |
performInitialization(Object model,
Component component)
Default performInitialization impl (does nothing)
Should be called to initialize the ComponentModifier
|
void |
performModification(Object model,
Component component)
Generates the comparison fields
|
protected boolean |
performValueComparison(Group group,
Component compareItem,
Object model,
String compareValueObjectBindingPath)
For each attribute field in the compare item, retrieves the field value and compares against the value for the
main comparable.
|
void |
setComparables(List<ComparableInfo> comparables)
Setter for the list of comparable info instances
|
void |
setDefaultOrderSequence(int defaultOrderSequence)
Setter for the default sequence starting value
|
void |
setGenerateCompareHeaders(boolean generateCompareHeaders)
Setter for the generate comparison headers indicator
|
void |
setHeaderFieldPrototype(Header headerFieldPrototype)
Setter for the header field prototype
|
getOrder, getRunCondition, getRunPhase, setOrder, setRunCondition, setRunPhase
getExpressionGraph, getPropertyExpression, getPropertyExpressions, setExpressionGraph, setPropertyExpressions
clone, copy, dataDictionaryPostProcessing, getComponentCode, getNamespaceCode, setComponentCode, setNamespaceCode
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getExpressionGraph, getPropertyExpression, getPropertyExpressions, setExpressionGraph, setPropertyExpressions
dataDictionaryPostProcessing, getComponentCode, getNamespaceCode
public CompareFieldCreateModifier()
public void performInitialization(Object model, Component component)
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
performInitialization
in interface ComponentModifier
performInitialization
in class ComponentModifierBase
model
- - object instance containing the view datacomponent
- - Component the modifier is configured onRunComponentModifiersTask
public void performModification(Object model, Component component)
First the configured List of ComparableInfo instances are sorted based on their order property. Then if generateCompareHeaders is set to true, a HeaderField is created for each comparable using the headerFieldPrototype and the headerText given by the comparable. Finally for each field configured on the Group, a corresponding comparison field is generated for each comparable and adjusted to the binding object path given by the comparable in addition to suffixing the id and setting the readOnly property
Invoked within the configured phase of the component lifecycle. This is where theComponentModifier
should perform its work against
the given Component
instancemodel
- - top level object containing the view datacomponent
- - the component instance to modifyRunComponentModifiersTask
protected boolean performValueComparison(Group group, Component compareItem, Object model, String compareValueObjectBindingPath)
group
- group that contains the item and whose header will be highlighted for changescompareItem
- the compare item being generated and to pull attribute fields frommodel
- object containing the datacompareValueObjectBindingPath
- object path for the comparison itemprotected String getComparableId(ComparableInfo comparable, int index)
If the comparableId to use if configured on the ComparableInfo it will be used, else the given integer index will be used with an underscore
comparable
- comparable info to check for id suffixindex
- sequence integerComparableInfo.getComparableId()
public 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
public List<Component> getComponentPrototypes()
ComponentModifier
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 ComponentModifier
getComponentPrototypes
in class ComponentModifierBase
ComponentModifierBase.getComponentPrototypes()
public int getDefaultOrderSequence()
ComparableInfo
instances that do not have the order property
setpublic void setDefaultOrderSequence(int defaultOrderSequence)
defaultOrderSequence
- public boolean isGenerateCompareHeaders()
HeaderField
should be created for each
group of comparison fields
If set to true, for each group of comparison fields a header field will be created using the headerFieldPrototype configured on the modifier with the headerText property of the comparable
public void setGenerateCompareHeaders(boolean generateCompareHeaders)
generateCompareHeaders
- public Header getHeaderFieldPrototype()
HeaderField
for
each group of comparison fields (if generateCompareHeaders is true)public void setHeaderFieldPrototype(Header headerFieldPrototype)
headerFieldPrototype
- public List<ComparableInfo> getComparables()
ComparableInfo
instances the compare fields should
be generated for
For each comparable, a copy of the fields configured for the
Group
will be created for the comparison view
public void setComparables(List<ComparableInfo> comparables)
comparables
- Copyright © 2005–2014 The Kuali Foundation. All rights reserved.