er.extensions
Class ERXGroupingRepetition
java.lang.Object
com.webobjects.appserver.WOElement
com.webobjects.appserver.WOComponent
er.extensions.ERXNonSynchronizingComponent
er.extensions.ERXStatelessComponent
er.extensions.ERXGroupingRepetition
- All Implemented Interfaces:
- Cloneable, NSKeyValueCoding, NSKeyValueCoding.ErrorHandling, NSKeyValueCodingAdditions, NSValidation, Serializable, WOActionResults
- Direct Known Subclasses:
- ERXGroupingTable
- public class ERXGroupingRepetition
- extends ERXStatelessComponent
Groups items into sections.For example: Employees belong to a department, you want to
group on department. So the parent will need to consist of something like:
[erxgroupingrepetition]
[wostring value=currentDepartment.name]
[worepetition list=currentEmployees item=currentEmployee]
[wostring value=currentEmployees.firstName]
[/worepetition]
[/erxgroupingrepetition]
and then you'd set up the bindings of the grouping repetition like:
list=allEmployees : list of employees to group
item=currentEmployee : will be set so the next key can get evaluated
sectionForItem=departmentForCurrentEmployee : a method in the parent that returns sth like currentEmployee.department()
sectionKey="name" : assuming department has a name, but can be unbound; note that you can group on "city", too!
subListSection=currentDepartment : instance variable in the parent that will get set to the current department
subList=currentEmployees : instance variable in the parent that will get set to the employees of the current department
sortKey="@sortAsc.name" : sorts the department list by name
If a user could belong to many departments, you could either set the splitArrays
binding to true,
in which case the sections would be all the departments and the user would be added in each section he belongs
or you could leave it out. Then the sections will be each combination of departments a user belongs to.
Please see the page BugsPerUser.wo from the BugTracker application to find another example on how to use it.
- See Also:
- Serialized Form
Bindings |
list | list of objects to group |
item | current item, will get pushed to the parent, so that it can evaluate sectionForItem |
sectionForItem | value pulled from the parent, after "item" gets pushed |
sectionKey | key to group departments on (usually primaryKey or hashCode) |
subListSection | will get set to the current section |
subList | will get set to the grouped items for the section |
sortKey | optional key for sorting the group list (sth like '@sortAsc.name') |
splitArrays | optional boolean specifying if array keys are regarded as distinct keys |
ignoreNulls | optional boolean specifying if nulls are ignored |
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCoding |
NSKeyValueCoding._BooleanFieldBinding, NSKeyValueCoding._BooleanMethodBinding, NSKeyValueCoding._FieldBinding, NSKeyValueCoding._ForwardingBinding, NSKeyValueCoding._KeyBinding, NSKeyValueCoding._KeyBindingCreation, NSKeyValueCoding._MethodBinding, NSKeyValueCoding._NumberFieldBinding, NSKeyValueCoding._NumberMethodBinding, NSKeyValueCoding._ReflectionKeyBindingCreation, NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.Null, NSKeyValueCoding.UnknownKeyException, NSKeyValueCoding.Utility, NSKeyValueCoding.ValueAccessor |
Methods inherited from class er.extensions.ERXNonSynchronizingComponent |
booleanValueForBinding, booleanValueForBinding, booleanValueForBinding, dynamicBindings, intValueForBinding, localizer, objectValueForBinding, objectValueForBinding, stringValueForBinding, stringValueForBinding, synchronizesVariablesWithBindings |
Methods inherited from class com.webobjects.appserver.WOComponent |
_associationWithName, _awakeInContext, _childTemplate, _componentDefinition, _componentUnroll, _isPage, _setContext, _setIsPage, _setParent, _setSubcomponent, _sleepInContext, _subcomponentForElementWithID, _templateNameForClass, _unroll, appendToResponse, application, awake, baseURL, bindingKeys, canAccessFieldsDirectly, canGetValueForBinding, canSetValueForBinding, clone, context, debugString, descriptionForResponse, ensureAwakeInContext, frameworkName, generateResponse, handleQueryWithUnboundKey, handleTakeValueForUnboundKey, hasBinding, hasSession, invokeAction, isCachingEnabled, isEventLoggingEnabled, logString, name, pageWithName, parent, path, pathURL, performParentAction, pullValuesFromParent, pushValuesToParent, session, set_componentUnroll, set_unroll, setCachingEnabled, setValueForBinding, sleep, takeValueForKey, takeValueForKeyPath, takeValuesFromRequest, template, templateWithHTMLString, templateWithName, toString, unableToSetNullForKey, validateTakeValueForKeyPath, validateValueForKey, validationFailedWithException, valueForBinding, valueForKey, valueForKeyPath |
log
public static final ERXLogger log
- logging support
ERXGroupingRepetition
public ERXGroupingRepetition(WOContext aContext)
sectionKey
public String sectionKey()
sections
public NSArray sections()
sectionItem
public Object sectionItem()
setSectionItem
public void setSectionItem(Object section)
reset
public void reset()
- Overrides:
reset
in class ERXStatelessComponent
Copyright © 2002 – 2004 Project Wonder.