API 0.9.5
CPRuleEditor Class Reference

A view for creating and configuring criteria. More...

#import <CPRuleEditor.h>

Inheritance diagram for CPRuleEditor:

List of all members.

Instance Methods

Configuring a Rule Editor
(id) - delegate
 Returns the receiver’s delegate.
(void) - setDelegate:
 Sets the receiver’s delegate.
(BOOL) - isEditable
 Returns a Boolean value that indicates whether the receiver is editable.
(void) - setEditable:
 Sets whether the receiver is editable.
(CPRuleEditorNestingMode) - nestingMode
 Returns the nesting mode for the receiver.
(void) - setNestingMode:
 Sets the nesting mode for the receiver.
(BOOL) - canRemoveAllRows
 Returns a Boolean value that indicates whether all the rows can be removed.
(void) - setCanRemoveAllRows:
 Sets whether all the rows can be removed.
(BOOL) - allowsEmptyCompoundRows
 Returns a Boolean value that indicates whether compounds rows can be childless.
(void) - setAllowsEmptyCompoundRows:
 Sets whether compounds rows can be childless.
(CPInteger) - rowHeight
 Returns the row height for the receiver.
(void) - setRowHeight:
 Sets the row height for the receiver.
Working with Formatting
(CPDictionary- formattingDictionary
 Returns the formatting dictionary for the receiver.
(void) - setFormattingDictionary:
 Sets the formatting dictionary for the receiver.
(CPString- formattingStringsFilename
 Returns the name of the strings file for the receiver.
(void) - setFormattingStringsFilename:
 Sets the name of the strings file used for formatting.
Providing Data
(void) - reloadCriteria
 Instructs the receiver to refetch criteria from its delegate. You can use this method to indicate that the available criteria may have changed and should be refetched from the delegate and the popups recalculated.
(void) - setCriteria:andDisplayValues:forRowAtIndex:
 Modifies the row at a given index to contain the given items and values.
(id) - criteriaForRow:
 Returns the currently chosen items for a given row.
Working with the Selection
(CPMutableArray- displayValuesForRow:
 Returns the chosen values for a given row.
(int) - numberOfRows
 Returns the number of rows in the receiver.
(int) - parentRowForRow:
 Returns the index of the parent of a given row.
(CPRuleEditorRowType) - rowTypeForRow:
 Returns the type of a given row.
(CPIndexSet- subrowIndexesForRow:
 Returns the immediate subrows of a given row.
(CPIndexSet- selectedRowIndexes
 Returns the indexes of the receiver’s selected rows.
(void) - selectRowIndexes:byExtendingSelection:
 Sets in the receiver the indexes of rows that are selected.
Manipulating Rows
(void) - addRow:
 Adds a row to the receiver.
(void) - insertRowAtIndex:withType:asSubrowOfRow:animate:
 Adds a new row of a given type at a given location.
(void) - removeRowAtIndex:
 Removes the row at a given index.
(void) - removeRowsAtIndexes:includeSubrows:
 Removes the rows at a given index.
Working with Predicates
(CPPredicate- predicate
 Returns the predicate for the receiver.
(void) - reloadPredicate
 Instructs the receiver to regenerate its predicate by invoking the corresponding delegate method. You typically invoke this method because something has changed (for example, a view's value).
(CPPredicate- predicateForRow:
 Returns the predicate for a given row.
Supporting Bindings
(Class) - rowClass
 Returns the class used to create a new row in the “rows” binding.
(void) - setRowClass:
 Sets the class to use to create a new row in the "rows” binding.
(CPString- rowTypeKeyPath
 Returns the key path for the row type.
(void) - setRowTypeKeyPath:
 Sets the key path for the row type.
(CPString- subrowsKeyPath
 Returns the key path for the subrows.
(void) - setSubrowsKeyPath:
 Sets the key path for the subrows.
(CPString- criteriaKeyPath
 Returns the criteria key path.
(void) - setCriteriaKeyPath:
 Sets the key path for the criteria.
(CPString- displayValuesKeyPath
 Returns the display values key path.
(void) - setDisplayValuesKeyPath:
 Sets the key path for the display values.
Configuring Rows Animation
(id) - animation
 Returns the current animation for the receiver.
(void) - setAnimation:
 Sets the current animation for the receiver.

Detailed Description

A view for creating and configuring criteria.

A CPRuleEditor object is a view that allows the user to visually create and configure a list of options which are expressed by the rule editor as a predicate (see Predicate documentation). The view has a delegate which offers a tree of choices to the view. The choices are presented by the view to the user as a row of popup buttons, static text fields, and custom views. Each row in the list represents a particular path down the tree of choices.

CPRuleEditor exposes one binding, rows. You can bind rows to an ordered collection (such as an instance of CPMutableArray). Each object in the collection should have the following properties:

@"rowType"
An integer representing the type of the row (CPRuleEditorRowType).

@"subrows"
An ordered to-many relation (such as an instance of CPMutableArray) containing the directly nested subrows for the given row.

@"displayValues"
An ordered to-many relation containing the display values for the row.

@"criteria"
An ordered to-many relation containing the criteria for the row.

Definition at line 2 of file CPRuleEditor.h.


Method Documentation

- (void) addRow: (id)  sender

Adds a row to the receiver.

Parameters:
senderTypically the object that sent the message.
See also:
- insertRowAtIndex:withType:asSubrowOfRow:animate:

Definition at line 639 of file CPRuleEditor.j.

- (BOOL) allowsEmptyCompoundRows

Returns a Boolean value that indicates whether compounds rows can be childless.

Returns:
YES if compounds rows can be childless, otherwise NO.
See also:
- setAllowsEmptyCompoundRows:

Definition at line 302 of file CPRuleEditor.j.

- (id) animation

Returns the current animation for the receiver.

Returns:
The current animation for the receiver.
See also:
- setAnimation:

Definition at line 1019 of file CPRuleEditor.j.

- (BOOL) canRemoveAllRows

Returns a Boolean value that indicates whether all the rows can be removed.

Returns:
YES if all the rows can be removed, otherwise NO.
See also:
- setCanRemoveAllRows:

Definition at line 281 of file CPRuleEditor.j.

- (id) criteriaForRow: (int)  row

Returns the currently chosen items for a given row.

Parameters:
rowThe index of a row in the receiver.
Returns:
The currently chosen items for row row.

Definition at line 453 of file CPRuleEditor.j.

- (CPString) criteriaKeyPath

Returns the criteria key path.

Returns:
The criteria key path. The default value is "criteria". The key path is used to get the criteria for a row in the "rows" binding. The criteria objects are what the delegate returns from -#ruleEditor:child:forCriterion:withRowType: . The corresponding property should be an ordered to-many relationship.
See also:
- setCriteriaKeyPath:

Definition at line 971 of file CPRuleEditor.j.

- (id) delegate

Returns the receiver’s delegate.

Returns:
The receiver’s delegate.
See also:
- setDelegate:

Definition at line 195 of file CPRuleEditor.j.

- (CPMutableArray) displayValuesForRow: (int)  row

Returns the chosen values for a given row.

Parameters:
rowThe index of a row in the receiver.
Returns:
The chosen values (strings, views, or menu items) for row row. The values returned are the same as those returned from the delegate method -#ruleEditor:displayValueForCriterion:inRow:

Definition at line 472 of file CPRuleEditor.j.

- (CPString) displayValuesKeyPath

Returns the display values key path.

Returns:
The display values key path. The default is "displayValues". The key path is used to get the display values for a row in the "rows" binding. The display values are what the delegate returns from -#ruleEditor:displayValueForCriterion:inRow: The corresponding property should be an ordered to-many relationship.
See also:
- setDisplayValuesKeyPath:

Definition at line 994 of file CPRuleEditor.j.

- (CPDictionary) formattingDictionary

Returns the formatting dictionary for the receiver.

Returns:
The formatting dictionary for the receiver.
See also:
- setFormattingDictionary:
- setFormattingStringsFilename:

Definition at line 352 of file CPRuleEditor.j.

- (CPString) formattingStringsFilename

Returns the name of the strings file for the receiver.

Returns:
The name of the strings file for the receiver.
See also:
- setFormattingStringsFilename:

Definition at line 375 of file CPRuleEditor.j.

- (void) insertRowAtIndex: (int)  rowIndex
withType: (unsigned int)  rowType
asSubrowOfRow: (int)  parentRow
animate: (BOOL)  shouldAnimate 

Adds a new row of a given type at a given location.

Parameters:
rowIndexThe index at which the new row should be inserted. rowIndex must be greater than parentRow, and much specify a row that does not fall amongst the children of some other parent.
rowTypeThe type of the new row.
parentRowThe index of the row of which the new row is a child. Pass -1 to indicate that the new row should be a root row.
shouldAnimateYES if creation of the new row should be animated, otherwise NO.
Note:
Currently, shouldAnimate has no effect, rows are always animated when calling this method.
See also:
- addRow:

Definition at line 682 of file CPRuleEditor.j.

- (BOOL) isEditable

Returns a Boolean value that indicates whether the receiver is editable.

Returns:
YES if the receiver is editable, otherwise NO. The default is YES.
See also:
- setEditable:

Definition at line 226 of file CPRuleEditor.j.

- (CPRuleEditorNestingMode) nestingMode

Returns the nesting mode for the receiver.

Returns:
The nesting mode for the receiver.
See also:
- setNestingMode:

Definition at line 254 of file CPRuleEditor.j.

- (int) numberOfRows

Returns the number of rows in the receiver.

Returns:
The number of rows in the receiver.

Definition at line 485 of file CPRuleEditor.j.

- (int) parentRowForRow: (int)  rowIndex

Returns the index of the parent of a given row.

Parameters:
rowIndexThe index of a row in the receiver.
Returns:
The index of the parent of the row at rowIndex. If the row at rowIndex is a root row, returns -1.

Definition at line 495 of file CPRuleEditor.j.

- (CPPredicate) predicate

Returns the predicate for the receiver.

Returns:
If the delegate implements -#ruleEditor:predicatePartsForCriterion:withDisplayValue:inRow:, the predicate for the receiver. If not, or if the delegate does not return enough parts to construct a full predicate, returns nil.
See also:
- predicateForRow:

Definition at line 768 of file CPRuleEditor.j.

- (CPPredicate) predicateForRow: (CPInteger)  aRow

Returns the predicate for a given row.

Parameters:
aRowThe index of a row in the receiver.
Returns:
The predicate for the row at aRow. You should rarely have a need to call this directly, but you can override this method in a subclass to perform specialized predicate handling for certain criteria or display values.

Definition at line 788 of file CPRuleEditor.j.

- (void) reloadCriteria

Instructs the receiver to refetch criteria from its delegate. You can use this method to indicate that the available criteria may have changed and should be refetched from the delegate and the popups recalculated.

Definition at line 416 of file CPRuleEditor.j.

- (void) reloadPredicate

Instructs the receiver to regenerate its predicate by invoking the corresponding delegate method. You typically invoke this method because something has changed (for example, a view's value).

Definition at line 777 of file CPRuleEditor.j.

- (void) removeRowAtIndex: (int)  rowIndex

Removes the row at a given index.

Parameters:
rowIndexThe index of a row in the receiver.
Warning:
Raises a CPRangeException if rowIndex is less than 0 or greater than or equal to the number of rows.
See also:
- removeRowsAtIndexes:includeSubrows:

Definition at line 701 of file CPRuleEditor.j.

- (void) removeRowsAtIndexes: (CPIndexSet rowIndexes
includeSubrows: (BOOL)  includeSubrows 

Removes the rows at a given index.

Parameters:
rowIndexesIndexes of one or more rows in the receiver.
includeSubrowsIf YES, then sub-rows of deleted rows are also deleted; if NO, then each sub-row is adopted by its first non-deleted ancestor, or becomes a root row.
Warning:
Raises a CPRangeException if any index in rowIndexes is less than 0 or greater than or equal to the number of rows.
See also:
- removeRowAtIndex:

Definition at line 718 of file CPRuleEditor.j.

- (Class) rowClass

Returns the class used to create a new row in the “rows” binding.

Returns:
The class used to create a new row in the "rows" binding.
See also:
- setRowClass:

Definition at line 900 of file CPRuleEditor.j.

- (CPInteger) rowHeight

Returns the row height for the receiver.

Returns:
The row height for the receiver.
See also:
- setRowHeight:

Definition at line 323 of file CPRuleEditor.j.

- (CPRuleEditorRowType) rowTypeForRow: (int)  rowIndex

Returns the type of a given row.

Parameters:
rowIndexThe index of a row in the receiver.
Returns:
The type of the row at rowIndex.
Warning:
Raises a CPRangeException if rowIndex is less than 0 or greater than or equal to the number of rows.

Definition at line 536 of file CPRuleEditor.j.

- (CPString) rowTypeKeyPath

Returns the key path for the row type.

Returns:
The key path for the row type. The default value is "rowType". The key path is used to get the row type in the “rows” binding. The corresponding property should be a number that specifies an CPRuleEditorRowType value.
See also:
- setRowTypeKeyPath:

Definition at line 925 of file CPRuleEditor.j.

- (CPIndexSet) selectedRowIndexes

Returns the indexes of the receiver’s selected rows.

Returns:
The indexes of the receiver’s selected rows.

Definition at line 595 of file CPRuleEditor.j.

- (void) selectRowIndexes: (CPIndexSet indexes
byExtendingSelection: (BOOL)  extend 

Sets in the receiver the indexes of rows that are selected.

Parameters:
indexesThe indexes of rows in the receiver to select.
extendIf NO, the selected rows are specified by indexes. If YES, the rows indicated by indexes are added to the collection of already selected rows, providing multiple selection.

Definition at line 605 of file CPRuleEditor.j.

- (void) setAllowsEmptyCompoundRows: (BOOL)  allows

Sets whether compounds rows can be childless.

Parameters:
allowsYES if compounds rows can be childless, otherwise NO.
See also:
- allowsEmptyCompoundRows

Definition at line 312 of file CPRuleEditor.j.

- (void) setAnimation: (CPViewAnimation animation

Sets the current animation for the receiver.

Parameters:
animationA CPViewAnimation object used to animate rows. The default is a CPViewAnimation with a 0.5s duration and a CPAnimationEaseInOut curve.
See also:
- animation

Definition at line 1030 of file CPRuleEditor.j.

- (void) setCanRemoveAllRows: (BOOL)  canRemove

Sets whether all the rows can be removed.

Parameters:
canRemoveYES if all the rows can be removed, otherwise NO.
See also:
- canRemoveAllRows

Definition at line 291 of file CPRuleEditor.j.

- (void) setCriteria: (CPArray criteria
andDisplayValues: (CPArray values
forRowAtIndex: (int)  rowIndex 

Modifies the row at a given index to contain the given items and values.

Parameters:
criteriaThe array of criteria for the row at rowIndex. Pass an empty array to force the receiver to query its delegate. This value must not be nil.
valuesThe array of values for the row at rowIndex. Pass an empty array to force the receiver to query its delegate. This value must not be nil.
rowIndexThe index of a row in the receiver.

It is your responsibility to ensure that each item in the array is a child of the previous item, and that the first item is a root item for the row type. If the last item has child items, then the items array will be extended by querying the delegate for child items until a childless item is reached.

Definition at line 431 of file CPRuleEditor.j.

- (void) setCriteriaKeyPath: (CPString keyPath

Sets the key path for the criteria.

Parameters:
keyPathThe key path for the criteria.
See also:
- criteriaKeyPath

Definition at line 981 of file CPRuleEditor.j.

- (void) setDelegate: (id)  aDelegate

Sets the receiver’s delegate.

Parameters:
aDelegateThe delegate for the receiver. CPRuleEditor requires a delegate that implements the required delegate methods to function.
See also:
- delegate

Definition at line 206 of file CPRuleEditor.j.

- (void) setDisplayValuesKeyPath: (CPString keyPath

Sets the key path for the display values.

Parameters:
keyPathThe key path for the the display values.
See also:
- displayValuesKeyPath

Definition at line 1004 of file CPRuleEditor.j.

- (void) setEditable: (BOOL)  editable

Sets whether the receiver is editable.

Parameters:
editableYES if the receiver is editable, otherwise NO.
See also:
- isEditable:

Definition at line 236 of file CPRuleEditor.j.

- (void) setFormattingDictionary: (CPDictionary dictionary

Sets the formatting dictionary for the receiver.

Parameters:
dictionaryThe formatting dictionary for the receiver. If you set the formatting dictionary with this method, it sets the current formatting strings file name to nil.
See also:
- formattingDictionary
- formattingStringsFilename

Definition at line 364 of file CPRuleEditor.j.

- (void) setFormattingStringsFilename: (CPString stringsFilename

Sets the name of the strings file used for formatting.

Parameters:
stringsFilenameThe name of the strings file for the receiver. CPRuleEditor looks for a strings file with the given name in the main bundle and (if appropriate) the bundle containing the nib file from which it was loaded. If it finds a strings file resource with the given name, CPRuleEditor loads it and sets it as the formatting dictionary for the receiver. You can obtain the resulting dictionary using formattingDictionary. If you set the formatting dictionary with -setFormattingDictionary:, it sets the current formatting strings file name nil.
See also:
- formattingStringsFilename

Definition at line 387 of file CPRuleEditor.j.

- (void) setNestingMode: (CPRuleEditorNestingMode)  mode

Sets the nesting mode for the receiver.

Parameters:
modeThe nesting mode for the receiver. You typically set the nesting mode at view creation time and do not subsequently modify it. The default is CPRuleEditorNestingModeSimple.
See also:
- nestingMode
Note:
Currently CPRuleEditorNestingModeCompound is experimental.

Definition at line 266 of file CPRuleEditor.j.

- (void) setRowClass: (Class)  rowClass

Sets the class to use to create a new row in the "rows” binding.

Parameters:
rowClassThe class to use to create a new row in the "rows” binding.
See also:
- rowClass

Definition at line 910 of file CPRuleEditor.j.

- (void) setRowHeight: (float)  height

Sets the row height for the receiver.

Parameters:
heightThe row height for the receiver.
See also:
- rowHeight

Definition at line 333 of file CPRuleEditor.j.

- (void) setRowTypeKeyPath: (CPString keyPath

Sets the key path for the row type.

Parameters:
keyPathThe key path for the row type.
See also:
- rowTypeKeyPath

Definition at line 935 of file CPRuleEditor.j.

- (void) setSubrowsKeyPath: (CPString keyPath

Sets the key path for the subrows.

Parameters:
keyPathThe key path for the subrows.
See also:
- subrowsKeyPath

Definition at line 958 of file CPRuleEditor.j.

- (CPIndexSet) subrowIndexesForRow: (int)  rowIndex

Returns the immediate subrows of a given row.

Parameters:
rowIndexThe index of a row in the receiver, or -1 to get the top-level rows.
Returns:
The immediate subrows of the row at rowIndex. Rows are numbered starting at 0.

Definition at line 557 of file CPRuleEditor.j.

- (CPString) subrowsKeyPath

Returns the key path for the subrows.

Returns:
The key path for the subrows. The default value is "subrows". The key path is used to get the nested rows in the “rows” binding. The corresponding property should be an ordered to-many relationship containing additional bound row objects.
See also:
- setSubrowsKeyPath:

Definition at line 948 of file CPRuleEditor.j.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Defines