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, namespaceCodeINITIAL_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, setRunPhasegetExpressionGraph, getPropertyExpression, getPropertyExpressions, setExpressionGraph, setPropertyExpressionsclone, copy, dataDictionaryPostProcessing, getComponentCode, getNamespaceCode, setComponentCode, setNamespaceCodeequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetExpressionGraph, getPropertyExpression, getPropertyExpressions, setExpressionGraph, setPropertyExpressionsdataDictionaryPostProcessing, getComponentCode, getNamespaceCodepublic 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 ComponentModifierperformInitialization in class ComponentModifierBasemodel - - object instance containing the view datacomponent - - Component the modifier is configured onRunComponentModifiersTaskpublic 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 modifyRunComponentModifiersTaskprotected 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()
ComponentModifierPrototypes 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 ComponentModifiergetComponentPrototypes in class ComponentModifierBaseComponentModifierBase.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–2015 The Kuali Foundation. All rights reserved.