Project Wonder 2.0

er.extensions
Class ERXGroupingRepetition

java.lang.Object
  extended bycom.webobjects.appserver.WOElement
      extended bycom.webobjects.appserver.WOComponent
          extended byer.extensions.ERXNonSynchronizingComponent
              extended byer.extensions.ERXStatelessComponent
                  extended byer.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 Class Summary
 
Nested classes inherited from class com.webobjects.appserver.WOComponent
WOComponent._EventLoggingEnabler, WOComponent.Event
 
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
 
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCodingAdditions
NSKeyValueCodingAdditions.DefaultImplementation, NSKeyValueCodingAdditions.Utility
 
Nested classes inherited from class com.webobjects.foundation.NSValidation
NSValidation._MethodBinding, NSValidation._ValidationBinding, NSValidation.DefaultImplementation, NSValidation.Utility, NSValidation.ValidationException
 
Field Summary
static ERXLogger log
          logging support
 
Fields inherited from class er.extensions.ERXNonSynchronizingComponent
_dynamicBindings
 
Fields inherited from class com.webobjects.appserver.WOComponent
_Extension, _IsEventLoggingEnabled, _keyAssociations
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding
_CLASS, NullValue
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding.ErrorHandling
_CLASS
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions
_CLASS, _KeyPathSeparatorChar, KeyPathSeparator
 
Fields inherited from interface com.webobjects.foundation.NSValidation
_CLASS
 
Constructor Summary
ERXGroupingRepetition(WOContext aContext)
           
 
Method Summary
 void reset()
           
 Object sectionItem()
           
 String sectionKey()
           
 NSArray sections()
           
 void setSectionItem(Object section)
           
 
Methods inherited from class er.extensions.ERXStatelessComponent
isStateless, valueForBooleanBinding, valueForBooleanBinding, valueForBooleanBinding, valueForIntBinding, valueForObjectBinding, valueForObjectBinding
 
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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

public static final ERXLogger log
logging support

Constructor Detail

ERXGroupingRepetition

public ERXGroupingRepetition(WOContext aContext)
Method Detail

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

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.