ERD2WEditableListPage Class Reference

Inherits er::directtoweb::pages::ERD2WListPage, er::extensions::validation::ERXExceptionHolder, and er::directtoweb::interfaces::ERDObjectSaverInterface.

Inherited by ERD2WEditableListTemplate.

Collaboration diagram for ERD2WEditableListPage:

Collaboration graph
[legend]

List of all members.

Classes

class  ERDMassChangeGenericRecord

Public Member Functions

WOComponent backAction ()
WOComponent cancel ()
WOComponent clearMassChangeEO ()
void clearValidationFailed ()
int colspanForNavBar ()
NSMutableDictionary currentErrorDictionary ()
D2WContext d2wContextForMassChangeEO ()
 ERD2WEditableListPage (WOContext context)
NSMutableDictionary errorDictionaryForObject (Object object)
boolean isEntityInspectable ()
WODisplayGroup massChangeDisplayGroup ()
ERDMassChangeGenericRecord massChangeEO ()
WOComponent nextPage ()
int numberOfObjectsPerBatch ()
boolean objectWasSaved ()
String propagateChangesDetails ()
WOComponent propagateChangesToVisibleObjects ()
WOComponent saveAction ()
String saveLabel ()
void setObject (EOEnterpriseObject eo)
boolean shouldRecoverFromOptimisticLockingFailure ()
boolean shouldSaveChanges ()
boolean shouldShowMassChange ()
boolean shouldValidateBeforeSave ()
boolean showCancel ()
void takeValuesFromRequest (WORequest r, WOContext c)
boolean tryToSaveChanges (boolean validateObjects)
WOComponent update ()
void validationFailedWithException (Throwable e, Object value, String keyPath)

Public Attributes

String dummy

Static Public Attributes

static final Logger log = Logger.getLogger(ERD2WEditableListPage.class)
static final String MassChangeEntityDisplayKey = "massChangeEntityDisplay"

Protected Member Functions

NSMutableDictionary errorMessagesDictionaries ()

Protected Attributes

WODisplayGroup _massChangeDisplayGroup
ERDMassChangeGenericRecord _massChangeEO

Private Attributes

D2WContext _d2wContextForMassChangeEO
NSMutableDictionary _errorMessagesDictionaries
NSDictionary _lastAppliedMassChanges
boolean _objectWasSaved

Static Private Attributes

static final NSSelector TakeValuesFromDictionarySelector = new NSSelector("takeValuesFromDictionary", new Class [] {NSDictionary.class})
static final NSSelector ValidateForInsertSelector = new NSSelector("validateForInsert")
static final NSSelector ValidateForSaveSelector = new NSSelector("validateForUpdate")


Detailed Description

List page for editing all items in the list. Name your page EditListYourEntityName. task will be edit, subTask will be list. See Component ERD2WEditableListTemplate for html/wod example.

There is a "mass change" feature that can apply a change to all displayed objects. Think of it as an "input assistant". The changes are not saved when propagated, and the rows can be updated individually after a mass change has been applied. (Note: There is a ERDMassModifyButton class that may be more appropriate depending on your needs)

To enable the mass change feature on an editable list page, do the following:

1/ Add a "showMassChange" rule that returns "true" for your edit list page 2/ If you want to restrict the keys that can be "mass edited", add a displayPropertyKeys rule with a restricted set of keys with the qualifer "(massChangeEntityDisplay = 1)"

Known Issues: changing the number of items per batch causes problems (the display group's batch is updated too soon in the request/response loop) showBanner object isEntityInspectable shouldValidateBeforeSave shouldSaveChanges shouldRecoverFromOptimisticLockingFailure saveLabelTemplateKey displayNameForEntity showMassChange


Constructor & Destructor Documentation

ERD2WEditableListPage ( WOContext  context  ) 


Member Function Documentation

WOComponent backAction (  ) 

Reimplemented from ERD2WListPage.

WOComponent cancel (  ) 

WOComponent clearMassChangeEO (  ) 

void clearValidationFailed (  ) 

Clears all of the collected validation exceptions.

Implements ERXExceptionHolder.

int colspanForNavBar (  ) 

NSMutableDictionary currentErrorDictionary (  ) 

D2WContext d2wContextForMassChangeEO (  ) 

NSMutableDictionary errorDictionaryForObject ( Object  object  ) 

NSMutableDictionary errorMessagesDictionaries (  )  [protected]

boolean isEntityInspectable (  ) 

Reimplemented from ERD2WListPage.

WODisplayGroup massChangeDisplayGroup (  ) 

ERDMassChangeGenericRecord massChangeEO (  ) 

WOComponent nextPage (  ) 

Reimplemented from ERD2WPage.

int numberOfObjectsPerBatch (  ) 

Reimplemented from ERD2WListPage.

boolean objectWasSaved (  ) 

String propagateChangesDetails (  ) 

WOComponent propagateChangesToVisibleObjects (  ) 

WOComponent saveAction (  ) 

String saveLabel (  ) 

void setObject ( EOEnterpriseObject  eo  ) 

Implementation of the InspectPageInterface

Reimplemented from ERD2WPage.

boolean shouldRecoverFromOptimisticLockingFailure (  ) 

boolean shouldSaveChanges (  ) 

boolean shouldShowMassChange (  ) 

boolean shouldValidateBeforeSave (  ) 

boolean showCancel (  ) 

Should we show the cancel button? It's only visible when we have a nextPage set up.

Reimplemented from ERD2WListPage.

void takeValuesFromRequest ( WORequest  r,
WOContext  c 
)

Overridden from the parent for better logging. Also clears validation errors

Reimplemented from ERD2WListPage.

boolean tryToSaveChanges ( boolean  validateObjects  ) 

WOComponent update (  ) 

void validationFailedWithException ( Throwable  e,
Object  value,
String  keyPath 
)

Handles validation errors.

Reimplemented from ERD2WPage.


Member Data Documentation

D2WContext _d2wContextForMassChangeEO [private]

NSDictionary _lastAppliedMassChanges [private]

WODisplayGroup _massChangeDisplayGroup [protected]

boolean _objectWasSaved [private]

final Logger log = Logger.getLogger(ERD2WEditableListPage.class) [static]

logging support

Reimplemented from ERD2WListPage.

final String MassChangeEntityDisplayKey = "massChangeEntityDisplay" [static]

final NSSelector TakeValuesFromDictionarySelector = new NSSelector("takeValuesFromDictionary", new Class [] {NSDictionary.class}) [static, private]

final NSSelector ValidateForInsertSelector = new NSSelector("validateForInsert") [static, private]

final NSSelector ValidateForSaveSelector = new NSSelector("validateForUpdate") [static, private]


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:42:54 2012 for Project Wonder by  doxygen 1.5.8