WODisplayGroup
Inherits from: NSObject
Implements: NSCoding
Package: com.apple.yellow.webobjects
Class Description
A WODisplayGroup is the basic user interface manager for a WebObjects application that accesses a database. It collects objects from an EODataSource (defined in EOControl), filters and sorts them, and maintains a selection in the filtered subset. You bind WebObjects dynamic elements to WODisplayGroup attributes and methods to display information from the database on your web page.
A WODisplayGroup manipulates its EODataSource by sending it fetchObjects, insertObject, and other messages, and registers itself as an editor and message handler of the EODataSource's EOEditingContext (also defined in EOControl). The EOEditingContext then monitors the WODisplayGroup for changes to objects.
Most of a WODisplayGroup's interactions are with its EODataSource and its EOEditingContext. See the EODataSource, and EOEditingContext class specifications in the Enterprise Objects Framework Reference for more information on these interactions.
The Delegate
The WODisplayGroup delegate offers a number of methods, and WODisplayGroup invokes them as appropriate. Besides displayGroupDisplayArrayForObjects, there are methods that inform the delegate that the WODisplayGroup has fetched, created an object (or failed to create one), inserted or deleted an object, changed the selection, or set a value for a property. There are also methods that request permission from the delegate to perform most of these same actions. The delegate can return true to permit the action or false to deny it. See each method's description in the WODisplayGroup.Delegates interface specification for more information.
Method Types
- Constructor
- WODisplayGroup
- Configuring behavior
- setFetchesOnLoad
- fetchesOnLoad
- setSelectsFirstObjectAfterFetch
- selectsFirstObjectAfterFetch
- setGlobalDefaultForValidatesChangesImmediately
- globalDefaultForValidatesChangesImmediately
- setValidatesChangesImmediately
- validatesChangesImmediately
- Setting the data source
- setDataSource
- dataSource
- Setting the qualifier and sort ordering
- setQualifier
- qualifier
- setSortOrderings
- sortOrderings
- Managing queries
- qualifierFromQueryValues
- queryMatch
- queryMax
- queryMin
- queryOperator
- allQualifierOperators
- relationalQualifierOperators
- stringQualifierOperators
- setGlobalDefaultStringMatchFormat
- globalDefaultStringMatchFormat
- setDefaultStringMatchFormat
- defaultStringMatchFormat
- setGlobalDefaultStringMatchOperator
- globalDefaultStringMatchOperator
- setDefaultStringMatchOperator
- defaultStringMatchOperator
- qualifyDisplayGroup
- qualifyDataSource
- inQueryMode
- setInQueryMode
- Fetching objects from the data source
- fetch
- Getting the objects
- allObjects
- displayedObjects
- Batching the results
- setNumberOfObjectsPerBatch
- numberOfObjectsPerBatch
- hasMultipleBatches
- displayNextBatch
- displayPreviousBatch
- batchCount
- setCurrentBatchIndex
- currentBatchIndex
- indexOfFirstDisplayedObject
- indexOfLastDisplayedObject
- displayBatchContainingSelectedObject
- Updating display of values
- redisplay
- updateDisplayedObjects
- Setting the objects
- setObjectArray
- Changing the selection
- clearSelection
- selectNext
- selectObjectsIdenticalTo
- selectObjectsIdenticalToAndSelectFirstOnNoMatch
- selectObject
- selectPrevious
- setSelectedObject
- setSelectedObjects
- setSelectionIndexes
- Examining the selection
- selectionIndexes
- selectedObject
- selectedObjects
- Inserting and deleting objects
- insertObjectAtIndex
- insertNewObjectAtIndex
- insert
- setInsertedObjectDefaultValues
- insertedObjectDefaultValues
- deleteObjectAtIndex
- deleteSelection
- delete
- Setting up a detail display group
- hasDetailDataSource
- setMasterObject
- masterObject
- setDetailKey
- detailKey
- Working with named fetch specifications
- queryBindings
- Setting the delegate
- setDelegate
- delegate
Constructors
WODisplayGroup
public WODisplayGroup()
Static Methods
globalDefaultForValidatesChangesImmediately
public static boolean globalDefaultForValidatesChangesImmediately()
Returns the class default controlling whether changes are immediately validated.
See Also: validatesChangesImmediately
globalDefaultStringMatchFormat
public static boolean globalDefaultStringMatchFormat()
Returns the default string match format for the class.
See Also: defaultStringMatchFormat
globalDefaultStringMatchOperator
public static boolean globalDefaultStringMatchOperator()
Returns the default string match operator for the class.
See Also: defaultStringMatchOperator
setGlobalDefaultForValidatesChangesImmediately
public static void setGlobalDefaultForValidatesChangesImmediately(boolean flag)
Sets according to flag the class default controlling whether changes are immediately validated.
See Also: setValidatesChangesImmediately
setGlobalDefaultStringMatchFormat
public static void setGlobalDefaultStringMatchFormat(String format)
Sets the default string match format for the class.
See Also: setDefaultStringMatchFormat
setGlobalDefaultStringMatchOperator
public static void setGlobalDefaultStringMatchFormat(String operator)
Sets the default string match operator for the class.
See Also: setDefaultStringMatchOperator
Instance Methods
allObjects
public NSArray allObjects()
See Also: displayedObjects, fetch
allQualifierOperators
public NSArray allQualifierOperators()
See Also: queryOperator, relationalQualifierOperators, stringQualifierOperators
batchCount
public int batchCount()
See Also: currentBatchIndex, displayNextBatch, displayPreviousBatch, hasMultipleBatches, numberOfObjectsPerBatch
clearSelection
public boolean clearSelection()
currentBatchIndex
public int currentBatchIndex()
See Also: batchCount, numberOfObjectsPerBatch, setCurrentBatchIndex
dataSource
public com.apple.yellow.eocontrol.EODataSource dataSource()
See Also: hasDetailDataSource, setDataSource
defaultStringMatchFormat
public String defaultStringMatchFormat()
See Also: defaultStringMatchOperator, setDefaultStringMatchFormat, globalDefaultStringMatchFormat
defaultStringMatchOperator
public String defaultStringMatchOperator()
See Also: defaultStringMatchFormat, setDefaultStringMatchOperator, globalDefaultStringMatchOperator
delegate
public Object delegate()
See Also: setDelegate
delete
public Object delete()
See Also: deleteObjectAtIndex
deleteObjectAtIndex
public boolean deleteObjectAtIndex(int index)
This method performs the delete by sending deleteObject to the EODataSource (defined in the EOControl framework). If that message raises an exception, this method fails and returns false.
See Also: delete, deleteSelection
deleteSelection
public boolean deleteSelection()
See Also: delete, deleteObjectAtIndex
detailKey
public String detailKey()
This method returns null if the receiver is not a detail display group or if the detail key has not yet been set. You typically create a detail display group by dragging a to-many relationship from EOModeler to an open component in WebObjects Builder.
See Also: hasDetailDataSource, masterObject, setDetailKey
displayBatchContainingSelectedObject
public Object displayBatchContainingSelectedObject()
See Also: displayNextBatch, displayPreviousBatch, setCurrentBatchIndex
displayedObjects
public NSArray displayedObjects()
If batching is in effect, displayedObjects returns the current batch of objects.
See Also: allObjects, updateDisplayedObjects, qualifier, setSortOrderings, displayGroupDisplayArrayForObjects (delegate method)
displayNextBatch
public Object displayNextBatch()
See Also: batchCount, currentBatchIndex, displayBatchContainingSelectedObject, displayPreviousBatch
displayPreviousBatch
public Object displayPreviousBatch()
See Also: batchCount, currentBatchIndex, displayBatchContainingSelectedObject, displayNextBatch
fetch
public Object fetch()
Before fetching, this method sends displayGroupShouldFetch to the delegate. If this method was successful, it then sends a fetchObjects message to the receiver's EODataSource to replace the object array, and if successful sends the delegate a displayGroupDidFetchObjects message.
This method returns null to force the page to reload.
See Also: allObjects, updateDisplayedObjects
fetchesOnLoad
public boolean fetchesOnLoad()
See Also: fetch, setFetchesOnLoad
hasDetailDataSource
public boolean hasDetailDataSource()
See Also: detailKey, masterObject
hasMultipleBatches
public boolean hasMultipleBatches()
See Also: batchCount, setNumberOfObjectsPerBatch
indexOfFirstDisplayedObject
public int indexOfFirstDisplayedObject()
See Also: indexOfLastDisplayedObject
indexOfLastDisplayedObject
public int indexOfLastDisplayedObject()
See Also: indexOfFirstDisplayedObject
inQueryMode
public boolean inQueryMode()
See Also: setInQueryMode
insert
public Object insert()
This method returns null to force the page to reload.
insertedObjectDefaultValues
public NSDictionary insertedObjectDefaultValues()
insertNewObjectAtIndex
public Object insertNewObjectAtIndex(int index)
If the object is successfully created, this method then sets the default values specified by insertedObjectDefaultValues.
See Also: insert
insertObjectAtIndex
public void insertObjectAtIndex(
Object anObject,
int index)
Raises an exception if index is out of bounds.
See Also: insertNewObjectAtIndex, insert
masterObject
public Object masterObject()
See Also: detailKey, hasDetailDataSource, setMasterObject
numberOfObjectsPerBatch
public int numberOfObjectsPerBatch()
qualifier
public com.apple.yellow.eocontrol.EOQualifier qualifier()
See Also: displayedObjects, setQualifier, updateDisplayedObjects
qualifierFromQueryValues
public com.apple.yellow.eocontrol.EOQualifier qualifierFromQueryValues()
See Also: qualifyDataSource, qualifyDisplayGroup
qualifyDataSource
public void qualifyDataSource()
See Also: queryMatch, queryMax,, queryMin, queryOperator
qualifyDisplayGroup
public void qualifyDisplayGroup()
See Also: qualifyDataSource, queryMatch, queryMax, - queryMin, queryOperator
queryBindings
public NSMutableDictionary queryBindings()
queryMatch
public NSMutableDictionary queryMatch()
Use the queryOperator dictionary to specify the type of matching (=, <, >, like, and so on) for each key in the queryMatch dictionary.
If the queryOperator dictionary does not contain a key contained in the queryMatch dictionary, the default is to match the value exactly (=) if the value is a number or a date and to perform pattern matching if the value is a String. In the case of string values, the defaultStringMatchFormat and defaultStringMatchOperator specify exactly how the pattern matching will be performed.
See Also: allQualifierOperators, qualifyDataSource, qualifyDisplayGroup, relationalQualifierOperators
queryMax
public NSMutableDictionary queryMax()
See Also: qualifyDataSource, qualifyDisplayGroup, queryOperator
queryMin
public NSMutableDictionary queryMin()
See Also: qualifyDataSource, qualifyDisplayGroup, queryOperator
queryOperator
public NSMutableDictionary queryOperator()
See Also: qualifierFromQueryValues, queryMax, queryMin, relationalQualifierOperators
redisplay
public void redisplay()
relationalQualifierOperators
public NSArray relationalQualifierOperators()
See Also: allQualifierOperators, queryOperator, stringQualifierOperators
selectedObject
public Object selectedObject()
See Also: displayedObjects, selectionIndexes, selectedObjects
selectedObjects
public NSArray selectedObjects()
See Also: displayedObjects, selectionIndexes, selectedObject
selectionIndexes
public NSArray selectionIndexes()
See Also: selectedObject, selectedObjects, setSelectionIndexes
selectNext
public Object selectNext()
- If there are no objects, does nothing.
- If there's no selection, selects the object at index zero.
- If the first selected object is the last object in the displayed objects array, selects the first object.
- Otherwise selects the object after the first selected object.
This method returns null to force the page to reload.
See Also: selectPrevious, setSelectionIndexes
selectObject
public boolean selectObject(Object anObject)
See Also: selectNext, selectPrevious
selectObjectsIdenticalTo
public boolean selectObjectsIdenticalTo(NSArray objectSelection)
See Also: setSelectionIndexes, selectObjectsIdenticalToAndSelectFirstOnNoMatch
selectObjectsIdenticalToAndSelectFirstOnNoMatch
public boolean selectObjectsIdenticalToAndSelectFirstOnNoMatch(
NSArray objects,
boolean flag)
See Also: setSelectionIndexes, selectObjectsIdenticalTo
selectPrevious
public Object selectPrevious()
- If there are no objects, does nothing.
- If there's no selection, selects the object at index zero.
- If the first selected object is at index zero, selects the last object.
- Otherwise selects the object before the first selected object.
This method returns null to force the page to reload.
See Also: selectNext, redisplay
selectsFirstObjectAfterFetch
public boolean selectsFirstObjectAfterFetch()
WODisplayGroups by default do select the first object after a fetch when there was no previous selection.
See Also: displayedObjects, fetch, setSelectsFirstObjectAfterFetch
setCurrentBatchIndex
public void setCurrentBatchIndex(int anInt)
If anInt is greater than the number of batches, this method displays the first batch.
See Also: batchCount, currentBatchIndex, displayBatchContainingSelectedObject, displayNextBatch, displayPreviousBatch, numberOfObjectsPerBatch
setDataSource
public void setDataSource(com.apple.yellow.eocontrol.EODataSource aDataSource)
Sets the receiver's EODataSource (defined in the EOControl framework) to aDataSource. In the process, it performs these actions:
- Unregisters itself as an editor and message handler for the previous EODataSource's EOEditingContext (also defined in EOControl), if necessary, and registers itself with aDataSource's EOEditingContext. If the new EOEditingContext already has a message handler, however, the receiver doesn't assume that role.
- Clears the receiver's array of objects.
- Sends displayGroupDidChangeDataSource to the delegate if there is one.
See Also: dataSource
setDefaultStringMatchFormat
public void setDefaultStringMatchFormat(String format)
The default format string for pattern matching is "%@*" which means that the string value in the queryMatch dictionary is used as a prefix (this default can be overridden on a class basis using setGlobalDefaultStringMatchFormat). For example, if the queryMatch dictionary contains a value "Jo" for the key "Name", the query returns all records whose name values begin with "Jo".
See Also: defaultStringMatchFormat, setDefaultStringMatchOperator, setGlobalDefaultStringMatchFormat
setDefaultStringMatchOperator
public void setDefaultStringMatchOperator(String operator)
The default value for the query match operator is caseInsensitiveLike, which means that the query does not consider case when matching letters (this default can be overridden on a class basis using setGlobalDefaultStringMatchOperator). The other possible value for this operator is like, which matches the case of the letters exactly.
See Also: allQualifierOperators, defaultStringMatchOperator, relationalQualifierOperators, setDefaultStringMatchFormat, setGlobalDefaultStringMatchOperator
setDelegate
public void setDelegate(Object anObject)
See Also: delegate, WODisplayGroup.Delegate
setDetailKey
public void setDetailKey(String detailKey)
If the receiver is not a detail display group, this method has no effect. A display group is a detail display group if its data source is an EODetailDataSource (defined in the EOControl framework). You typically create a detail display group by dragging a to-many relationship from EOModeler to an open component in WebObjects Builder. Doing so sets the detail key and master object, so you rarely need to use this method.
See Also: hasDetailDataSource, detailKey, setMasterObject
setFetchesOnLoad
public void setFetchesOnLoad(boolean flag)
See Also: fetch, fetchesOnLoad
setInQueryMode
public void setInQueryMode(boolean flag)
See Also: inQueryMode
setInsertedObjectDefaultValues
public void setInsertedObjectDefaultValues(NSDictionary defaultValues)
See Also: insertedObjectDefaultValues
setMasterObject
public void setMasterObject(Object masterObject)
Before you use this method, you should use the setDetailKey to set the key to this relationship. You typically create a detail display group by dragging a to-Many relationship from EOModeler to an open component in WebObjects Builder. Doing so sets the master object and detail key, so you typically do not have to use this method.
If the receiver is not a detail display group, this method has no effect.
See Also: hasDetailDataSource, masterObject
setNumberOfObjectsPerBatch
public void setNumberOfObjectsPerBatch(int count)
See Also: batchCount, displayNextBatch, displayPreviousBatch, numberOfObjectsPerBatch
setObjectArray
public void setObjectArray(NSArray objects)
After setting the object array, this method restores as much of the original selection as possible. If there's no match and the receiver selects after fetching, then the first object is selected.
See Also: allObjects, displayedObjects, fetch, selectsFirstObjectAfterFetch
setQualifier
public void setQualifier(com.apple.yellow.eocontrol.EOQualifier aQualifier)
If the receiver's delegate responds to displayGroupDisplayArrayForObjects, that method is used instead of the qualifier to filter the objects.
See Also: displayedObjects, qualifier
setSelectedObject
public void setSelectedObject(Object anObject)
See Also: displayedObjects, selectionIndexes, selectedObjects
setSelectedObjects
public void setSelectedObjects(NSArray objects)
See Also: displayedObjects, selectionIndexes, selectedObject
setSelectionIndexes
public boolean setSelectionIndexes(NSArray selection)
This method checks the delegate with a displayGroupShouldChangeSelectionToIndexes message. If the delegate returns false, this method also fails and returns false. If the receiver successfully changes the selection, its observers each receive a subjectChanged message and, if necessary, a displayGroupDidChangeSelectedObjects message.
The selection set here is only a programmatic selection; the objects on the screen are not highlighted in any way. |