mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-17 08:01:27 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master' into master_upstream
This commit is contained in:
@@ -242,13 +242,15 @@
|
||||
Sets the content of the collection view to the content in \c anArray.
|
||||
This array can be of any type, and each element will be passed to the \c -setRepresentedObject: method.
|
||||
It's the responsibility of your custom collection view item to interpret the object.
|
||||
@param anArray the content array
|
||||
|
||||
If the new content array is smaller than the previous one, note that [receiver selectionIndexes] may
|
||||
refer to out of range indices. \c selectionIndexes is not changed as a result of calling the
|
||||
\c setContent: method.
|
||||
|
||||
@param anArray a content array
|
||||
*/
|
||||
- (void)setContent:(CPArray)anArray
|
||||
{
|
||||
// reset the _selectionIndexes
|
||||
[self setSelectionIndexes:[CPIndexSet indexSet]];
|
||||
|
||||
_content = anArray;
|
||||
|
||||
[self reloadContent];
|
||||
@@ -284,9 +286,11 @@
|
||||
|
||||
if (!_isSelectable)
|
||||
{
|
||||
var index = CPNotFound;
|
||||
var index = CPNotFound,
|
||||
itemCount = [_items count];
|
||||
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) != CPNotFound)
|
||||
// Be wary of invalid selection ranges since setContent: does not clear selection indexes.
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) != CPNotFound && index < itemCount)
|
||||
[_items[index] setSelected:NO];
|
||||
}
|
||||
}
|
||||
@@ -345,9 +349,11 @@
|
||||
if (!_isSelectable || [_selectionIndexes isEqual:anIndexSet])
|
||||
return;
|
||||
|
||||
var index = CPNotFound;
|
||||
var index = CPNotFound,
|
||||
itemCount = [_items count];
|
||||
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) !== CPNotFound)
|
||||
// Be wary of invalid selection ranges since setContent: does not clear selection indexes.
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) !== CPNotFound && index < itemCount)
|
||||
[_items[index] setSelected:NO];
|
||||
|
||||
_selectionIndexes = anIndexSet;
|
||||
@@ -403,7 +409,8 @@
|
||||
}
|
||||
|
||||
index = CPNotFound;
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) != CPNotFound)
|
||||
// Be wary of invalid selection ranges since setContent: does not clear selection indexes.
|
||||
while ((index = [_selectionIndexes indexGreaterThanIndex:index]) != CPNotFound && index < count)
|
||||
[_items[index] setSelected:YES];
|
||||
|
||||
[self tile];
|
||||
|
||||
@@ -1890,7 +1890,9 @@ var _loadItemInfoForItem = function(/*CPOutlineView*/ anOutlineView, /*id*/ anIt
|
||||
return [_outlineView._outlineViewDelegate outlineView:_outlineView menuForTableColumn:aTableColumn item:item]
|
||||
}
|
||||
|
||||
return nil;
|
||||
// We reimplement CPView menuForEvent: because we can't call it directly. CPTableView implements menuForEvent:
|
||||
// to call this delegate method.
|
||||
return [_outlineView menu] || [[_outlineView class] defaultMenu];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -82,6 +82,22 @@
|
||||
}
|
||||
|
||||
/*! @cond */
|
||||
+ (Class)_binderClassForBinding:(CPString)theBinding
|
||||
{
|
||||
if (theBinding == CPValueBinding)
|
||||
return [CPPredicateEditorValueBinder class];
|
||||
|
||||
return [super _binderClassForBinding:theBinding];
|
||||
}
|
||||
|
||||
- (id)_replacementKeyPathForBinding:(CPString)aBinding
|
||||
{
|
||||
if (aBinding == CPValueBinding)
|
||||
return @"predicate";
|
||||
|
||||
return [super _replacementKeyPathForBinding:aBinding];
|
||||
}
|
||||
|
||||
- (void)_initRuleEditorShared
|
||||
{
|
||||
[super _initRuleEditorShared];
|
||||
@@ -157,28 +173,40 @@
|
||||
return trees;
|
||||
}
|
||||
|
||||
- (id)_mergeTree:(id)tree
|
||||
- (CPMutableArray)_mergeTree:(CPArray)aTree
|
||||
{
|
||||
var merged = [CPMutableArray array],
|
||||
titles = [CPMutableArray array],
|
||||
count = [tree count];
|
||||
var mergedTree = [CPMutableArray array];
|
||||
if (aTree == nil)
|
||||
return mergedTree;
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
var icount = [aTree count];
|
||||
for (var i = 0; i < icount; i++)
|
||||
{
|
||||
var t = tree[i],
|
||||
title = [CPString stringWithString:[t title]];
|
||||
var anode = [aTree objectAtIndex:i],
|
||||
jcount = [mergedTree count],
|
||||
merged = NO;
|
||||
|
||||
if ([titles containsObject:title])
|
||||
for (var j = 0; j < jcount; j++)
|
||||
{
|
||||
CPLogConsole("CPPredicateEditor does not support templates merging yet. Ignoring duplicate template: " + [t description]);
|
||||
continue;
|
||||
var mergednode = [mergedTree objectAtIndex:j];
|
||||
|
||||
if ([[mergednode title] isEqualToString:[anode title]])
|
||||
{
|
||||
var children1 = [mergednode children],
|
||||
children2 = [anode children],
|
||||
children12 = [children1 arrayByAddingObjectsFromArray:children2],
|
||||
mergedChildren = [self _mergeTree:children12];
|
||||
|
||||
[mergednode setChildren:mergedChildren];
|
||||
merged = YES;
|
||||
}
|
||||
}
|
||||
|
||||
[merged addObject:t];
|
||||
[titles addObject:title];
|
||||
if (!merged)
|
||||
[mergedTree addObject:anode];
|
||||
}
|
||||
|
||||
return merged;
|
||||
return mergedTree;
|
||||
}
|
||||
|
||||
- (id)_constructTreeForTemplate:(CPPredicateEditorRowTemplate)aTemplate
|
||||
@@ -227,14 +255,19 @@
|
||||
|
||||
- (void)setObjectValue:(id)objectValue
|
||||
{
|
||||
if (![[objectValue predicateFormat] isEqualToString:[[super predicate] predicateFormat]]) // ??
|
||||
var ov = [self objectValue];
|
||||
if ((ov == nil) != (objectValue == nil) || ![ov isEqual:objectValue])
|
||||
{
|
||||
[self _setPredicate:objectValue];
|
||||
[self _reflectPredicate:objectValue];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_reflectPredicate:(id)predicate
|
||||
{
|
||||
var animation = _currentAnimation;
|
||||
_currentAnimation = nil;
|
||||
_sendAction = NO;
|
||||
|
||||
if (predicate != nil)
|
||||
{
|
||||
@@ -311,9 +344,9 @@
|
||||
treeChild = [rootItems objectAtIndex:i];
|
||||
|
||||
var currentView = [templateViews objectAtIndex:[treeChild indexIntoTemplate]],
|
||||
menuItemIndex = [treeChild menuItemIndex];
|
||||
title = [treeChild title];
|
||||
|
||||
if (menuItemIndex == -1 || [[treeChild title] isEqual:[currentView titleOfSelectedItem]])
|
||||
if (title == nil || [title isEqual:[currentView titleOfSelectedItem]])
|
||||
{
|
||||
var node = [_CPPredicateEditorRowNode rowNodeFromTree:treeChild];
|
||||
[node applyTemplate:aTemplate withViews:templateViews forOriginalTemplate:originalTemplate];
|
||||
@@ -336,9 +369,7 @@
|
||||
|
||||
- (void)_updatePredicate
|
||||
{
|
||||
[self willChangeValueForKey:@"objectValue"];
|
||||
[self _updatePredicateFromRows];
|
||||
[self didChangeValueForKey:@"objectValue"];
|
||||
}
|
||||
|
||||
- (void)_updatePredicateFromRows
|
||||
@@ -363,7 +394,7 @@
|
||||
else
|
||||
predicate = [[CPCompoundPredicate alloc] initWithType:[self _compoundPredicateTypeForRootRows] subpredicates:subpredicates];
|
||||
|
||||
[super _setPredicate:predicate];
|
||||
[self _setPredicate:predicate];
|
||||
}
|
||||
|
||||
- (id)_predicateFromRowItem:(id)rowItem
|
||||
@@ -416,7 +447,6 @@
|
||||
|
||||
- (void)_sendRuleAction
|
||||
{
|
||||
[self _updatePredicate];
|
||||
[super _sendRuleAction];
|
||||
}
|
||||
|
||||
@@ -505,4 +535,19 @@ var CPPredicateTemplatesKey = @"CPPredicateTemplates";
|
||||
|
||||
@end
|
||||
|
||||
@implementation CPPredicateEditorValueBinder : CPBinder
|
||||
{
|
||||
}
|
||||
|
||||
- (void)setPlaceholderValue:(id)aValue withMarker:(CPString)aMarker forBinding:(CPString)aBinding
|
||||
{
|
||||
[_source _reflectPredicate:nil];
|
||||
}
|
||||
|
||||
- (void)setValue:(id)aValue forBinding:(CPString)aBinding
|
||||
{
|
||||
[_source _reflectPredicate:aValue];
|
||||
}
|
||||
|
||||
@end
|
||||
/*! @endcond */
|
||||
|
||||
@@ -280,7 +280,7 @@ CPTransformableAttributeType = 1800;
|
||||
*/
|
||||
- (CPArray)leftExpressions
|
||||
{
|
||||
if (_templateType ==1 && !_leftIsWildcard)
|
||||
if (_templateType == 1 && !_leftIsWildcard)
|
||||
{
|
||||
var view = [_views objectAtIndex:0];
|
||||
return [[view itemArray] valueForKey:@"representedObject"];
|
||||
|
||||
@@ -50,9 +50,8 @@ CPRuleEditorNestingModeSimple = 3; // One compound row at the top with
|
||||
CPRuleEditorRowTypeSimple = 0;
|
||||
CPRuleEditorRowTypeCompound = 1;
|
||||
|
||||
var CPRuleEditorItemPBoardType = @"CPRuleEditorItemPBoardType";
|
||||
|
||||
var itemsContext = "items",
|
||||
var CPRuleEditorItemPBoardType = @"CPRuleEditorItemPBoardType",
|
||||
itemsContext = "items",
|
||||
valuesContext = "values",
|
||||
subrowsContext = "subrows_array",
|
||||
boundArrayContext = "bound_array";
|
||||
@@ -84,6 +83,7 @@ var itemsContext = "items",
|
||||
BOOL _disallowEmpty;
|
||||
BOOL _delegateWantsValidation;
|
||||
BOOL _editable;
|
||||
BOOL _sendAction;
|
||||
|
||||
Class _rowClass;
|
||||
|
||||
@@ -120,8 +120,8 @@ var itemsContext = "items",
|
||||
BOOL _isKeyDown;
|
||||
BOOL _nestingModeDidChange;
|
||||
|
||||
id _standardLocalizer @accessors(property=standardLocalizer);
|
||||
id _itemsAndValuesToAddForRowType;
|
||||
_CPRuleEditorLocalizer _standardLocalizer @accessors(property=standardLocalizer);
|
||||
CPDictionary _itemsAndValuesToAddForRowType;
|
||||
}
|
||||
|
||||
/*! @cond */
|
||||
@@ -150,6 +150,7 @@ var itemsContext = "items",
|
||||
_allowsEmptyCompoundRows = NO;
|
||||
_disallowEmpty = NO;
|
||||
|
||||
[self setFormattingStringsFilename:nil];
|
||||
[self setCriteriaKeyPath:@"criteria"];
|
||||
[self setSubrowsKeyPath:@"subrows"];
|
||||
[self setRowTypeKeyPath:@"rowType"];
|
||||
@@ -170,13 +171,14 @@ var itemsContext = "items",
|
||||
- (void)_initRuleEditorShared
|
||||
{
|
||||
_rowCache = [[CPMutableArray alloc] init];
|
||||
_rowClass = [RowObject class];
|
||||
_rowClass = [_CPRuleEditorRowObject class];
|
||||
_isKeyDown = NO;
|
||||
_subviewIndexOfDropLine = CPNotFound;
|
||||
_lastRow = 0;
|
||||
_delegateWantsValidation = YES;
|
||||
_suppressKeyDownHandling = NO;
|
||||
_nestingModeDidChange = NO;
|
||||
_sendAction = YES;
|
||||
_itemsAndValuesToAddForRowType = {};
|
||||
var animation = [[CPViewAnimation alloc] initWithDuration:0.5 animationCurve:CPAnimationEaseInOut];
|
||||
[self setAnimation:animation];
|
||||
@@ -395,7 +397,6 @@ var itemsContext = "items",
|
||||
*/
|
||||
- (void)setFormattingStringsFilename:(CPString)stringsFilename
|
||||
{
|
||||
// Can we set _stringsFilename to nil in cocoa ?
|
||||
if (_standardLocalizer === nil)
|
||||
_standardLocalizer = [_CPRuleEditorLocalizer new];
|
||||
|
||||
@@ -439,7 +440,6 @@ var itemsContext = "items",
|
||||
*/
|
||||
- (void)setCriteria:(CPArray)criteria andDisplayValues:(CPArray)values forRowAtIndex:(int)rowIndex
|
||||
{
|
||||
// TODO: reload from the delegate if criteria is an empty array.
|
||||
if (criteria === nil || values === nil)
|
||||
[CPException raise:CPInvalidArgumentException reason:_cmd + @". criteria and values parameters must not be nil."];
|
||||
|
||||
@@ -586,7 +586,7 @@ TODO: implement
|
||||
{
|
||||
[indexes addIndex:i];
|
||||
objectsCount --;
|
||||
// [buffer removeObjectAtIndex:indexInSubrows];
|
||||
|
||||
if ([self rowTypeForRow:i] === CPRuleEditorRowTypeCompound)
|
||||
i += [[self subrowIndexesForRow:i] count];
|
||||
}
|
||||
@@ -806,7 +806,7 @@ TODO: implement
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
var item = [items objectAtIndex:i],
|
||||
//var displayValue = [self _queryValueForItem:item inRow:aRow]; A voir. On peut aussi prendre la valeur affichée dans le row cache.
|
||||
//var displayValue = [self _queryValueForItem:item inRow:aRow]; Ask the delegate or get cached value ?.
|
||||
displayValue = [[self displayValuesForRow:aRow] objectAtIndex:i],
|
||||
predpart = [_ruleDelegate ruleEditor:self predicatePartsForCriterion:item withDisplayValue:displayValue inRow:aRow];
|
||||
|
||||
@@ -937,7 +937,7 @@ TODO: implement
|
||||
- (void)setRowClass:(Class)rowClass
|
||||
{
|
||||
if (rowClass === [CPMutableDictionary class])
|
||||
rowClass = [RowObject class];
|
||||
rowClass = [_CPRuleEditorRowObject class];
|
||||
|
||||
_rowClass = rowClass;
|
||||
}
|
||||
@@ -1060,7 +1060,6 @@ TODO: implement
|
||||
[_currentAnimation setDelegate:self];
|
||||
}
|
||||
|
||||
// TODO: delegate methods are implemented by the delegate. How do you document them in doxygen without implementing them here ? @fn not working ?
|
||||
/*!
|
||||
@name Delegate Methods
|
||||
*/
|
||||
@@ -1135,9 +1134,6 @@ TODO: implement
|
||||
{
|
||||
var view = [[_CPRuleEditorViewSliceDropSeparator alloc] initWithFrame:CGRectMake(0,-10, [self frame].size.width, 2)];
|
||||
[view setAutoresizingMask:CPViewWidthSizable];
|
||||
#if PLATFORM(DOM)
|
||||
view._DOMElement.style.webkitTransition = "opacity 300ms ease-in";
|
||||
#endif
|
||||
return view;
|
||||
}
|
||||
|
||||
@@ -1305,7 +1301,11 @@ TODO: implement
|
||||
}
|
||||
|
||||
[self removeRowsAtIndexes:rowindexes includeSubrows:YES];
|
||||
[self _postRowCountChangedNotificationOfType:CPRuleEditorRowsDidChangeNotification indexes:rowindexes]; // indexes should include childs
|
||||
|
||||
[self _updatePredicate];
|
||||
[self _sendRuleAction];
|
||||
[self _postRuleOptionChangedNotification];
|
||||
[self _postRowCountChangedNotificationOfType:CPRuleEditorRowsDidChangeNotification indexes:rowindexes];
|
||||
}
|
||||
|
||||
- (CPArray)_rootRowsArray
|
||||
@@ -1408,21 +1408,17 @@ TODO: implement
|
||||
// for CPRuleEditorNestingModeSimple only
|
||||
|
||||
var rowIndexEvent = [slice rowIndex],
|
||||
rowTypeEvent = [self rowTypeForRow:rowIndexEvent];
|
||||
rowTypeEvent = [self rowTypeForRow:rowIndexEvent],
|
||||
insertIndex = rowIndexEvent + 1,
|
||||
parentRowIndex = (rowTypeEvent === CPRuleEditorRowTypeCompound) ? rowIndexEvent:[self parentRowForRow:rowIndexEvent];
|
||||
|
||||
var parentRowIndex = (rowTypeEvent === CPRuleEditorRowTypeCompound) ? rowIndexEvent:[self parentRowForRow:rowIndexEvent];
|
||||
|
||||
[self insertRowAtIndex:rowIndexEvent + 1 withType:type asSubrowOfRow:parentRowIndex animate:YES];
|
||||
|
||||
// [self _reconfigureSubviewsAnimate:YES];
|
||||
// [self _updatePredicate];
|
||||
[self insertRowAtIndex:insertIndex withType:type asSubrowOfRow:parentRowIndex animate:YES];
|
||||
}
|
||||
|
||||
- (id)_insertNewRowAtIndex:(int)insertIndex ofType:(CPRuleEditorRowType)rowtype withParentRow:(int)parentRowIndex
|
||||
{
|
||||
var row = [[[self rowClass] alloc] init];
|
||||
|
||||
var itemsandvalues = [self _getItemsAndValuesToAddForRow:insertIndex ofType:rowtype],
|
||||
var row = [[[self rowClass] alloc] init],
|
||||
itemsandvalues = [self _getItemsAndValuesToAddForRow:insertIndex ofType:rowtype],
|
||||
newitems = [itemsandvalues valueForKey:@"item"],
|
||||
newvalues = [itemsandvalues valueForKey:@"value"];
|
||||
|
||||
@@ -1443,6 +1439,11 @@ TODO: implement
|
||||
var relInsertIndex = insertIndex - parentRowIndex - 1;
|
||||
[subrowsObjects insertObject:row atIndex:relInsertIndex];
|
||||
|
||||
[self _updatePredicate];
|
||||
[self _sendRuleAction];
|
||||
[self _postRuleOptionChangedNotification];
|
||||
[self _postRowCountChangedNotificationOfType:CPRuleEditorRowsDidChangeNotification indexes:[CPIndexSet indexSetWithIndex:insertIndex]];
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -1519,10 +1520,7 @@ TODO: implement
|
||||
}
|
||||
|
||||
[self _changedRowArray:newRows withOldRowArray:oldRows forParent:object];
|
||||
|
||||
[self _reconfigureSubviewsAnimate:[self _wantsRowAnimations]];
|
||||
[self _postRowCountChangedNotificationOfType:CPRuleEditorRowsDidChangeNotification indexes:[change objectForKey:CPKeyValueChangeIndexesKey]];
|
||||
|
||||
}
|
||||
else if (context === itemsContext)
|
||||
{
|
||||
@@ -1537,10 +1535,9 @@ TODO: implement
|
||||
var criteria = [self criteriaForRow:aRow],
|
||||
displayValues = [self displayValuesForRow:aRow],
|
||||
rowType = [self rowTypeForRow:aRow],
|
||||
anItem = toItem;
|
||||
//fromItemIndex = [criteria indexOfObjectIdenticalTo:fromItem];
|
||||
anItem = toItem,
|
||||
|
||||
var items = [criteria subarrayWithRange:CPMakeRange(0, fromItemIndex)],
|
||||
items = [criteria subarrayWithRange:CPMakeRange(0, fromItemIndex)],
|
||||
values = [displayValues subarrayWithRange:CPMakeRange(0, fromItemIndex)];
|
||||
|
||||
_lastRow = aRow;
|
||||
@@ -1563,7 +1560,9 @@ TODO: implement
|
||||
|
||||
var slice = [_slices objectAtIndex:aRow];
|
||||
[slice _reconfigureSubviews];
|
||||
[self _sendRuleAction];
|
||||
|
||||
[self _updatePredicate];
|
||||
[self _sendRuleAction];
|
||||
[self _postRuleOptionChangedNotification];
|
||||
}
|
||||
|
||||
@@ -1598,9 +1597,9 @@ TODO: implement
|
||||
{
|
||||
var newCacheGlobalIndex = (parentCacheIndex + 1) + newRowCacheIndex,
|
||||
obj = [newRows objectAtIndex:newRowCacheIndex],
|
||||
newRowType = [obj valueForKey:_typeKeyPath];
|
||||
newRowType = [obj valueForKey:_typeKeyPath],
|
||||
cache = [[_CPRuleEditorCache alloc] init];
|
||||
|
||||
var cache = [[_CPRuleEditorCache alloc] init];
|
||||
[cache setRowObject:obj];
|
||||
[cache setRowIndex:newCacheGlobalIndex];
|
||||
[cache setIndentation:parentCacheIndentation + 1];
|
||||
@@ -1676,47 +1675,45 @@ TODO: implement
|
||||
}
|
||||
}
|
||||
|
||||
- (void)bind:(CPString)binding toObject:(id)observableController withKeyPath:(CPString)keyPath options:(CPDictionary)options
|
||||
- (void)bind:(CPString)aBinding toObject:(id)observableController withKeyPath:(CPString)aKeyPath options:(CPDictionary)options
|
||||
{
|
||||
if (keyPath === nil || [observableController valueForKey:keyPath] === nil)
|
||||
{
|
||||
[CPException raise:CPInvalidArgumentException reason:"Keypath or bound object cannot be nil"];
|
||||
return;
|
||||
}
|
||||
if ([aBinding isEqualToString:@"rows"])
|
||||
{
|
||||
[self unbind:aBinding];
|
||||
[self _setBoundDataSource:observableController withKeyPath:aKeyPath options:options];
|
||||
|
||||
if ([binding isEqualToString:@"rows"])
|
||||
{
|
||||
if ([observableController respondsToSelector:@selector(objectClass)])
|
||||
_rowClass = [observableController objectClass];
|
||||
[_rowCache removeAllObjects];
|
||||
[_slices removeAllObjects];
|
||||
|
||||
[self _setBoundDataSource:observableController withKeyPath:keyPath options:options];
|
||||
}
|
||||
else if ([binding isEqualToString:CPValueBinding])
|
||||
[super bind:binding toObject:observableController withKeyPath:keyPath options:options];
|
||||
else
|
||||
[CPException raise:CPInvalidArgumentException reason:"Keypath or bound object cannot be nil"];
|
||||
var newRows = [CPArray array],
|
||||
oldRows = [self _rootRowsArray];
|
||||
|
||||
[self _changedRowArray:newRows withOldRowArray:oldRows forParent:_boundArrayOwner];
|
||||
}
|
||||
else
|
||||
[super bind:aBinding toObject:observableController withKeyPath:aKeyPath options:options];
|
||||
}
|
||||
|
||||
- (void)unbind:(id)object
|
||||
{
|
||||
_rowClass = [RowObject class];
|
||||
_rowClass = [_CPRuleEditorRowObject class];
|
||||
[super unbind:object];
|
||||
}
|
||||
|
||||
- (void)_setBoundDataSource:(id)datasource withKeyPath:(CPString)keyPath options:(CPDictionary)options
|
||||
{
|
||||
if (_boundArrayOwner !== nil)
|
||||
[_boundArrayOwner removeObserver:self forKeyPath:_boundArrayKeyPath];
|
||||
if ([observableController respondsToSelector:@selector(objectClass)])
|
||||
_rowClass = [observableController objectClass];
|
||||
|
||||
_boundArrayKeyPath = keyPath;
|
||||
_boundArrayOwner = datasource;
|
||||
|
||||
var boundRows = [_boundArrayOwner valueForKey:_boundArrayKeyPath];
|
||||
//var boundRows = [_boundArrayOwner valueForKey:_boundArrayKeyPath];
|
||||
|
||||
[_boundArrayOwner addObserver:self forKeyPath:_boundArrayKeyPath options:CPKeyValueObservingOptionOld | CPKeyValueObservingOptionNew context:boundArrayContext];
|
||||
|
||||
if ([boundRows isKindOfClass:[CPArray class]] && [boundRows count] > 0)
|
||||
[_boundArrayOwner setValue:boundRows forKey:_boundArrayKeyPath];
|
||||
//if ([boundRows isKindOfClass:[CPArray class]] && [boundRows count] > 0)
|
||||
// [_boundArrayOwner setValue:boundRows forKey:_boundArrayKeyPath];
|
||||
}
|
||||
|
||||
- (void)_setPredicate:(CPPredicate)predicate
|
||||
@@ -1770,12 +1767,15 @@ TODO: implement
|
||||
|
||||
- (void)_reconfigureSubviewsAnimate:(BOOL)animate
|
||||
{
|
||||
[self _updateSliceRows];
|
||||
|
||||
var viewAnimations = [CPMutableArray array],
|
||||
added_slices = [CPMutableArray array],
|
||||
count = [_slices count];
|
||||
|
||||
[self _updateSliceRows];
|
||||
|
||||
if ([[self superview] isKindOfClass:[CPClipView class]])
|
||||
[self setFrameSize:CGSizeMake(CGRectGetWidth([self frame]), count * _sliceHeight)];
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var aslice = [_slices objectAtIndex:i],
|
||||
@@ -2256,6 +2256,11 @@ TODO: implement
|
||||
- (void)draggedView:(CPView)dragView endedAt:(CPPoint)aPoint operation:(CPDragOperation)operation
|
||||
{
|
||||
_draggingRows = nil;
|
||||
|
||||
[self _updatePredicate];
|
||||
[self _sendRuleAction];
|
||||
[self _postRuleOptionChangedNotification];
|
||||
[self _postRowCountChangedNotificationOfType:CPRuleEditorRowsDidChangeNotification indexes:nil]; // FIXME
|
||||
}
|
||||
|
||||
- (BOOL)wantsPeriodicDraggingUpdates
|
||||
@@ -2279,16 +2284,13 @@ TODO: implement
|
||||
|
||||
- (void)_postRuleOptionChangedNotification
|
||||
{
|
||||
[self reloadPredicate];
|
||||
[self _sendRuleAction];
|
||||
[[CPNotificationCenter defaultCenter] postNotificationName:CPRuleEditorRulesDidChangeNotification object:self];
|
||||
}
|
||||
|
||||
- (void)_postRowCountChangedNotificationOfType:(CPString)notificationName indexes:indexes
|
||||
{
|
||||
[self reloadPredicate];
|
||||
[self _sendRuleAction];
|
||||
[[CPNotificationCenter defaultCenter] postNotificationName:notificationName object:self userInfo:[CPDictionary dictionaryWithObject:indexes forKey:"indexes"]];
|
||||
var userInfo = [CPDictionary dictionaryWithObject:indexes forKey:"indexes"];
|
||||
[[CPNotificationCenter defaultCenter] postNotificationName:notificationName object:self userInfo:userInfo];
|
||||
}
|
||||
|
||||
- (CPIndexSet)_globalIndexesForSubrowIndexes:(CPIndexSet)indexes ofParentObject:(id)parentRowObject
|
||||
@@ -2308,9 +2310,9 @@ TODO: implement
|
||||
if ([self rowTypeForRow:globalChildIndex] === CPRuleEditorRowTypeCompound)
|
||||
{
|
||||
var rowObject = [[self _rowCacheForIndex:current_index] rowObject],
|
||||
subrows = [self _subrowObjectsOfObject:rowObject];
|
||||
subrows = [self _subrowObjectsOfObject:rowObject],
|
||||
subIndexes = [self _globalIndexesForSubrowIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0,[subrows count])] ofParentObject:rowObject];
|
||||
|
||||
var subIndexes = [self _globalIndexesForSubrowIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0,[subrows count])] ofParentObject:rowObject];
|
||||
numberOfChildrenOfPreviousBrother = [subIndexes count];
|
||||
}
|
||||
|
||||
@@ -2325,8 +2327,7 @@ TODO: implement
|
||||
var action = [self action],
|
||||
target = [self target];
|
||||
|
||||
if (action && target)
|
||||
[self sendAction:[self action] to:[self target]];
|
||||
[self sendAction:action to:target];
|
||||
}
|
||||
|
||||
- (BOOL)_sendsActionOnIncompleteTextChange
|
||||
@@ -2366,8 +2367,8 @@ TODO: implement
|
||||
|
||||
for (var i = 0; i < numOfChildren; ++i)
|
||||
{
|
||||
var aChild = [self _queryChild:i ofItem:parentItem withRowType:type];
|
||||
var availChild = aChild,
|
||||
var aChild = [self _queryChild:i ofItem:parentItem withRowType:type],
|
||||
availChild = aChild,
|
||||
availValue = value;
|
||||
|
||||
if (criterion !== aChild)
|
||||
@@ -2466,7 +2467,7 @@ var CriteriaKey = @"criteria",
|
||||
DisplayValuesKey = @"displayValues",
|
||||
RowTypeKey = @"rowType";
|
||||
|
||||
@implementation RowObject : CPObject
|
||||
@implementation _CPRuleEditorRowObject : CPObject
|
||||
{
|
||||
CPArray subrows @accessors;
|
||||
CPArray criteria @accessors;
|
||||
@@ -2476,7 +2477,7 @@ var CriteriaKey = @"criteria",
|
||||
|
||||
- (id)copy
|
||||
{
|
||||
var copy = [[RowObject alloc] init];
|
||||
var copy = [[_CPRuleEditorRowObject alloc] init];
|
||||
[copy setSubrows:[[CPArray alloc] initWithArray:subrows copyItems:YES]];
|
||||
[copy setCriteria:[[CPArray alloc] initWithArray:criteria copyItems:YES]];
|
||||
[copy setDisplayValues:[[CPArray alloc] initWithArray:displayValues copyItems:YES]];
|
||||
@@ -2487,7 +2488,7 @@ var CriteriaKey = @"criteria",
|
||||
|
||||
- (CPString)description
|
||||
{
|
||||
return "<RowObject>\nsubrows = " + [subrows description] + "\ncriteria = " + [criteria description] + "\ndisplayValues = " + [displayValues description];
|
||||
return "<" + [self className] + ">\nsubrows = " + [subrows description] + "\ncriteria = " + [criteria description] + "\ndisplayValues = " + [displayValues description];
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(id)coder
|
||||
|
||||
@@ -14,24 +14,21 @@
|
||||
|
||||
+ (id)rowNodeFromTree:(id)aTree
|
||||
{
|
||||
var mapTable = {};
|
||||
return [_CPPredicateEditorRowNode _rowNodeFromTree:aTree withTemplateTable:mapTable];
|
||||
return [_CPPredicateEditorRowNode _rowNodeFromTree:aTree withTemplateTable:{}];
|
||||
}
|
||||
|
||||
+ (id)_rowNodeFromTree:(id)aTree withTemplateTable:(id)templateTable
|
||||
{
|
||||
var node,
|
||||
views,
|
||||
var views,
|
||||
copiedContainer;
|
||||
|
||||
node = [[_CPPredicateEditorRowNode alloc] init];
|
||||
node.tree = aTree;
|
||||
var uuid = [[aTree template] UID],
|
||||
cachedNode = templateTable[uuid],
|
||||
node = [[_CPPredicateEditorRowNode alloc] init];
|
||||
|
||||
var template = [aTree template],
|
||||
uuid = [template UID],
|
||||
cachedNode = templateTable[uuid];
|
||||
[node setTree:aTree];
|
||||
|
||||
if (cachedNode === nil)
|
||||
if (!cachedNode)
|
||||
{
|
||||
views = [CPMutableArray array];
|
||||
copiedContainer = [CPMutableArray array];
|
||||
@@ -43,8 +40,8 @@
|
||||
copiedContainer = [cachedNode copiedTemplateContainer];
|
||||
}
|
||||
|
||||
node.templateViews = views;
|
||||
node.copiedTemplateContainer = copiedContainer;
|
||||
[node setTemplateViews:views];
|
||||
[node setCopiedTemplateContainer:copiedContainer];
|
||||
|
||||
var nodeChildren = [CPMutableArray array],
|
||||
treeChildren = [aTree children],
|
||||
@@ -65,7 +62,8 @@
|
||||
|
||||
- (BOOL)applyTemplate:(id)template withViews:(id)views forOriginalTemplate:(id)originalTemplate
|
||||
{
|
||||
var t = [tree template];
|
||||
var t = [tree template],
|
||||
count = [children count];
|
||||
|
||||
if (t !== template)
|
||||
{
|
||||
@@ -74,9 +72,7 @@
|
||||
[copiedTemplateContainer addObject:template];
|
||||
}
|
||||
|
||||
var count = [children count];
|
||||
|
||||
for (var i; i < count; i++)
|
||||
for (var i = 0; i < count; i++)
|
||||
[children[i] applyTemplate:template withViews:views forOriginalTemplate:originalTemplate];
|
||||
}
|
||||
|
||||
@@ -92,7 +88,6 @@
|
||||
{
|
||||
if ([copiedTemplateContainer count] === 0)
|
||||
{
|
||||
CPLogConsole("COPYING TEMPLATE");
|
||||
var copy = [[tree template] copy];
|
||||
[copiedTemplateContainer addObject:copy];
|
||||
[templateViews addObjectsFromArray:[copy templateViews]];
|
||||
|
||||
@@ -3,62 +3,80 @@
|
||||
* Copyright (c) 2011 Pear, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
var GRADIENT_START_COLOR = "#fcfcfc",
|
||||
GRADIENT_END_COLOR = "#dfdfdf",
|
||||
BORDER_COLOR = "#BDBDBD";
|
||||
|
||||
var GRADIENT_NORMAL,
|
||||
GRADIENT_HIGHLIGHTED,
|
||||
IE_FILTER = "progid:DXImageTransform.Microsoft.gradient(startColorstr='#fcfcfc', endColorstr='#dfdfdf')";
|
||||
GRADIENT_PROPERTY;
|
||||
|
||||
if (CPBrowserIsEngine(CPWebKitBrowserEngine))
|
||||
{
|
||||
GRADIENT_NORMAL = "-webkit-gradient(linear, left top, left bottom, from(" + GRADIENT_START_COLOR + "), to(" + GRADIENT_END_COLOR + "))",
|
||||
GRADIENT_HIGHLIGHTED = "-webkit-gradient(linear, left top, left bottom, from(" + GRADIENT_END_COLOR + "), to(" + GRADIENT_START_COLOR + "))";
|
||||
GRADIENT_PROPERTY = "background";
|
||||
}
|
||||
else if (CPBrowserIsEngine(CPGeckoBrowserEngine))
|
||||
{
|
||||
GRADIENT_NORMAL = "-moz-linear-gradient(top, " + GRADIENT_START_COLOR + ", " + GRADIENT_END_COLOR + ")",
|
||||
GRADIENT_HIGHLIGHTED = "-moz-linear-gradient(top, " + GRADIENT_END_COLOR + ", " + GRADIENT_START_COLOR + ")";
|
||||
GRADIENT_PROPERTY = "background";
|
||||
}
|
||||
else if (CPBrowserIsEngine(CPInternetExplorerBrowserEngine))
|
||||
{
|
||||
GRADIENT_NORMAL = "progid:DXImageTransform.Microsoft.gradient(startColorstr='" + GRADIENT_START_COLOR + "', endColorstr='" + GRADIENT_END_COLOR + "')";
|
||||
GRADIENT_HIGHLIGHTED = "progid:DXImageTransform.Microsoft.gradient(startColorstr='" + GRADIENT_END_COLOR + "', endColorstr='" + GRADIENT_START_COLOR + "')";
|
||||
GRADIENT_PROPERTY = "filter";
|
||||
}else
|
||||
{
|
||||
GRADIENT_NORMAL = GRADIENT_START_COLOR;
|
||||
GRADIENT_HIGHLIGHTED = GRADIENT_END_COLOR;
|
||||
GRADIENT_PROPERTY = "background";
|
||||
}
|
||||
|
||||
@implementation _CPRuleEditorPopUpButton : CPPopUpButton
|
||||
{
|
||||
CPInteger radius;
|
||||
}
|
||||
|
||||
+ (void)initialize
|
||||
- (void)_sharedInit
|
||||
{
|
||||
if (CPBrowserIsEngine(CPWebKitBrowserEngine))
|
||||
{
|
||||
GRADIENT_NORMAL = "-webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)))";
|
||||
GRADIENT_HIGHLIGHTED = "-webkit-gradient(linear, left top, left bottom, from(rgb(223, 223, 223)), to(rgb(252, 252, 252)))";
|
||||
}
|
||||
else if (CPBrowserIsEngine(CPGeckoBrowserEngine))
|
||||
{
|
||||
GRADIENT_NORMAL = "-moz-linear-gradient(top, rgb(252, 252, 252), rgb(223, 223, 223))";
|
||||
GRADIENT_HIGHLIGHTED = "-moz-linear-gradient(top, rgb(223, 223, 223), rgb(252, 252, 252))";
|
||||
}
|
||||
[self setBordered:NO];
|
||||
|
||||
var style = _DOMElement.style;
|
||||
style.border = "1px solid " + BORDER_COLOR;
|
||||
style[GRADIENT_PROPERTY] = GRADIENT_NORMAL;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)aFrame
|
||||
{
|
||||
if (self = [super initWithFrame:aFrame])
|
||||
{
|
||||
var style = _DOMElement.style;
|
||||
style.backgroundImage = GRADIENT_NORMAL;
|
||||
style.border = "1px solid rgb(189, 189, 189)";
|
||||
style.filter = IE_FILTER;
|
||||
[self _sharedInit];
|
||||
|
||||
[self setTextColor:[CPColor colorWithWhite:101 / 255 alpha:1]];
|
||||
[self setBordered:NO];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
self = [super initWithCoder:aCoder];
|
||||
[self _sharedInit];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)hitTest:(CPPoint)point
|
||||
{
|
||||
var slice = [self superview];
|
||||
if (!CPRectContainsPoint([self frame], point) || ![self sliceIsEditable])
|
||||
return nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setHighlighted:(BOOL)shouldHighlight
|
||||
{
|
||||
_DOMElement.style.backgroundImage = (shouldHighlight) ? GRADIENT_HIGHLIGHTED : GRADIENT_NORMAL;
|
||||
}
|
||||
|
||||
- (BOOL)sliceIsEditable
|
||||
{
|
||||
return [[self superview] isEditable];
|
||||
var superview = [self superview];
|
||||
return ![superview isKindOfClass:[_CPRuleEditorViewSlice]] || [superview isEditable];
|
||||
}
|
||||
|
||||
- (BOOL)trackMouse:(CPEvent)theEvent
|
||||
@@ -80,13 +98,10 @@ var GRADIENT_NORMAL,
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
radius = FLOOR(CGRectGetHeight([self bounds])/2);
|
||||
|
||||
radius = FLOOR(CGRectGetHeight([self bounds]) / 2);
|
||||
var style = _DOMElement.style,
|
||||
radiusCSS = radius + "px";
|
||||
|
||||
//style.webkitBorderRadius = radiusCSS;
|
||||
//style.mozBorderRadius = radiusCSS;
|
||||
style.borderRadius = radiusCSS;
|
||||
|
||||
[super layoutSubviews];
|
||||
@@ -94,20 +109,19 @@ var GRADIENT_NORMAL,
|
||||
|
||||
- (void)drawRect:(CGRect)aRect
|
||||
{
|
||||
var bounds = [self bounds],
|
||||
context = [[CPGraphicsContext currentContext] graphicsPort];
|
||||
|
||||
var arrow_width = FLOOR(CGRectGetHeight(bounds)/3.5);
|
||||
var context = [[CPGraphicsContext currentContext] graphicsPort],
|
||||
bounds = [self bounds],
|
||||
arrow_width = FLOOR(CGRectGetHeight(bounds) / 3.5);
|
||||
|
||||
CGContextTranslateCTM(context, CGRectGetWidth(bounds) - radius - arrow_width, CGRectGetHeight(bounds) / 2);
|
||||
|
||||
var arrowsPath = [CPBezierPath bezierPath];
|
||||
[arrowsPath moveToPoint:CGPointMake(0, 1)];
|
||||
[arrowsPath lineToPoint:CGPointMake(arrow_width, 1)];
|
||||
[arrowsPath lineToPoint:CGPointMake(arrow_width/2, arrow_width + 1)];
|
||||
[arrowsPath lineToPoint:CGPointMake(arrow_width / 2, arrow_width + 1)];
|
||||
[arrowsPath closePath];
|
||||
|
||||
CGContextSetFillColor(context, [CPColor colorWithWhite:101/255 alpha:1]);
|
||||
CGContextSetFillColor(context, [CPColor colorWithWhite:101 / 255 alpha:1]);
|
||||
[arrowsPath fill];
|
||||
|
||||
CGContextScaleCTM(context, 1 , -1);
|
||||
@@ -121,37 +135,42 @@ var GRADIENT_NORMAL,
|
||||
CPInteger radius;
|
||||
}
|
||||
|
||||
- (void)_sharedInit
|
||||
{
|
||||
[self setBordered:NO];
|
||||
|
||||
var style = _DOMElement.style;
|
||||
style.border = "1px solid " + BORDER_COLOR;
|
||||
style[GRADIENT_PROPERTY] = GRADIENT_NORMAL;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)aFrame
|
||||
{
|
||||
self = [super initWithFrame:aFrame];
|
||||
if (self)
|
||||
{
|
||||
[self setFont:[CPFont boldFontWithName:@"Apple Symbol" size:12.0]];
|
||||
[self setTextColor:[CPColor colorWithWhite:150/255 alpha:1]];
|
||||
[self setAlignment:CPCenterTextAlignment];
|
||||
[self setAutoresizingMask:CPViewMinXMargin];
|
||||
[self setImagePosition:CPImageOnly];
|
||||
[self setBordered:NO];
|
||||
var style = _DOMElement.style;
|
||||
style.border = "1px solid rgb(189, 189, 189)";
|
||||
style.filter = IE_FILTER;
|
||||
}
|
||||
if (self = [super initWithFrame:aFrame])
|
||||
[self _sharedInit];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
self = [super initWithCoder:aCoder];
|
||||
[self _sharedInit];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
radius = FLOOR(CGRectGetHeight([self bounds])/2);
|
||||
radius = FLOOR(CGRectGetHeight([self bounds]) / 2);
|
||||
|
||||
var style = _DOMElement.style,
|
||||
radiusCSS = radius + "px";
|
||||
|
||||
style.borderRadius = radiusCSS;
|
||||
style.backgroundImage = ([self isHighlighted]) ? GRADIENT_HIGHLIGHTED : GRADIENT_NORMAL;
|
||||
style[GRADIENT_PROPERTY] = ([self isHighlighted]) ? GRADIENT_HIGHLIGHTED : GRADIENT_NORMAL;
|
||||
|
||||
[super layoutSubviews];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
_addButton = [self _createAddRowButton];
|
||||
_subtractButton = [self _createDeleteRowButton];
|
||||
//[_addButton setToolTip:[_ruleEditor _toolTipForAddSimpleRowButton]];
|
||||
//[_subtractButton setToolTip:[_ruleEditor _toolTipForDeleteRowButton]];
|
||||
[_addButton setToolTip:[_ruleEditor _toolTipForAddSimpleRowButton]];
|
||||
[_subtractButton setToolTip:[_ruleEditor _toolTipForDeleteRowButton]];
|
||||
[_addButton setHidden:!editable];
|
||||
[_subtractButton setHidden:!editable];
|
||||
[self addSubview:_addButton];
|
||||
@@ -54,26 +54,36 @@ var CONTROL_HEIGHT = 16.,
|
||||
[center addObserver:self selector:@selector(_textDidChange:) name:CPControlTextDidChangeNotification object:nil];
|
||||
}
|
||||
|
||||
- (CPButton)_createAddRowButton
|
||||
- (CPButton)_createRowButton
|
||||
{
|
||||
var button = [[_CPRuleEditorButton alloc] initWithFrame:CGRectMakeZero()];
|
||||
[button setImage:[_ruleEditor _addImage]];
|
||||
[button setFont:[CPFont boldFontWithName:@"Apple Symbol" size:12.0]];
|
||||
[button setTextColor:[CPColor colorWithWhite:150 / 255 alpha:1]];
|
||||
[button setAlignment:CPCenterTextAlignment];
|
||||
[button setAutoresizingMask:CPViewMinXMargin];
|
||||
[button setImagePosition:CPImageOnly];
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
- (CPButton)_createAddRowButton
|
||||
{
|
||||
var button = [self _createRowButton];
|
||||
|
||||
[button setImage:[_ruleEditor _addImage]];
|
||||
[button setAction:@selector(_addOption:)];
|
||||
[button setTarget:self];
|
||||
[button setAutoresizingMask:CPViewMinXMargin];
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
- (CPButton)_createDeleteRowButton
|
||||
{
|
||||
var button = [[_CPRuleEditorButton alloc] initWithFrame:CGRectMakeZero()];
|
||||
[button setImage:[_ruleEditor _removeImage]];
|
||||
var button = [self _createRowButton];
|
||||
|
||||
[button setImage:[_ruleEditor _removeImage]];
|
||||
[button setAction:@selector(_deleteOption:)];
|
||||
[button setTarget:self];
|
||||
[button setAutoresizingMask:CPViewMinXMargin];
|
||||
|
||||
return button;
|
||||
}
|
||||
@@ -87,12 +97,14 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (CPPopUpButton)_createPopUpButtonWithItems:(CPArray)itemsArray selectedItemIndex:(int)index
|
||||
{
|
||||
var title = [[itemsArray objectAtIndex:index] title];
|
||||
var font = [_ruleEditor font],
|
||||
var title = [[itemsArray objectAtIndex:index] title],
|
||||
font = [_ruleEditor font],
|
||||
width = [title sizeWithFont:font].width + 20,
|
||||
rect = CGRectMake(0, 0, (width - width % 40) + 80, CONTROL_HEIGHT);
|
||||
rect = CGRectMake(0, 0, (width - width % 40) + 80, CONTROL_HEIGHT),
|
||||
|
||||
var popup = [[_CPRuleEditorPopUpButton alloc] initWithFrame:rect];
|
||||
popup = [[_CPRuleEditorPopUpButton alloc] initWithFrame:rect];
|
||||
|
||||
[popup setTextColor:[CPColor colorWithWhite:101 / 255 alpha:1]];
|
||||
[popup setValue:font forThemeAttribute:@"font"];
|
||||
|
||||
var count = [itemsArray count];
|
||||
@@ -111,13 +123,14 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (_CPRuleEditorTextField)_createStaticTextFieldWithStringValue:(CPString )text
|
||||
{
|
||||
text = [[_ruleEditor standardLocalizer] localizedStringForString:text];
|
||||
var textField = [[_CPRuleEditorTextField alloc] initWithFrame:CPMakeRect(0, 0, 200, CONTROL_HEIGHT)],
|
||||
refont = [_ruleEditor font],
|
||||
font = [CPFont fontWithName:[refont familyName] size:[refont size] + 2],
|
||||
|
||||
localizedText = [[_ruleEditor standardLocalizer] localizedStringForString:text];
|
||||
|
||||
var textField = [[_CPRuleEditorTextField alloc] initWithFrame:CPMakeRect(0, 0, 200, CONTROL_HEIGHT)];
|
||||
var font = [_ruleEditor font];
|
||||
font = [CPFont fontWithName:font._name size:font._size + 2];
|
||||
[textField setValue:font forThemeAttribute:@"font"];
|
||||
[textField setStringValue:text];
|
||||
[textField setStringValue:localizedText];
|
||||
[textField sizeToFit];
|
||||
|
||||
return textField;
|
||||
@@ -182,9 +195,10 @@ var CONTROL_HEIGHT = 16.,
|
||||
parent,
|
||||
numberOfCriteria,
|
||||
numberOfChildren,
|
||||
firstResponderIndex;
|
||||
firstResponderIndex,
|
||||
|
||||
var ruleItems = [CPMutableArray array];
|
||||
ruleItems = [CPMutableArray array],
|
||||
responder = [[self window] firstResponder];
|
||||
|
||||
[self _emptyRulePartSubviews];
|
||||
|
||||
@@ -192,7 +206,6 @@ var CONTROL_HEIGHT = 16.,
|
||||
numberOfCriteria = [criteria count];
|
||||
|
||||
firstResponderIndex = numberOfCriteria - 1;
|
||||
var responder = [[self window] firstResponder];
|
||||
if (responder)
|
||||
firstResponderIndex = [_ruleOptionViews indexOfObjectIdenticalTo:responder];
|
||||
|
||||
@@ -213,16 +226,16 @@ var CONTROL_HEIGHT = 16.,
|
||||
numberOfChildren = [childItems count];
|
||||
if (numberOfChildren > 1)
|
||||
{
|
||||
var menuItems = [CPMutableArray arrayWithCapacity:numberOfChildren];
|
||||
var menuItems = [CPMutableArray arrayWithCapacity:numberOfChildren],
|
||||
selectedIndex = [childItems indexOfObject:criterion];
|
||||
|
||||
var selectedIndex = [childItems indexOfObject:criterion];
|
||||
if (selectedIndex == CPNotFound)
|
||||
break;
|
||||
|
||||
for (var j = 0; j < numberOfChildren; ++j)
|
||||
{
|
||||
var childItem = [childItems objectAtIndex:j];
|
||||
var childValue = [childValues objectAtIndex:j];
|
||||
var childItem = [childItems objectAtIndex:j],
|
||||
childValue = [childValues objectAtIndex:j];
|
||||
|
||||
if ([childValue isKindOfClass:[CPMenuItem class]])
|
||||
{
|
||||
@@ -250,8 +263,8 @@ var CONTROL_HEIGHT = 16.,
|
||||
}
|
||||
else
|
||||
{
|
||||
var value = [childValues objectAtIndex:0];
|
||||
var type = [value valueType];
|
||||
var value = [childValues objectAtIndex:0],
|
||||
type = [value valueType];
|
||||
|
||||
if (type === 0)
|
||||
ruleView = [self _createStaticTextFieldWithStringValue:value];
|
||||
@@ -308,7 +321,6 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
// CPLogConsole(_cmd);
|
||||
[self _relayoutSubviewsWidthChanged:YES];
|
||||
}
|
||||
|
||||
@@ -319,11 +331,11 @@ var CONTROL_HEIGHT = 16.,
|
||||
leftButtonMinX,
|
||||
rowHeight = [_ruleEditor rowHeight],
|
||||
count = [_ruleOptionViews count],
|
||||
sliceFrame = [self frame];
|
||||
sliceFrame = [self frame],
|
||||
|
||||
buttonFrame = CGRectMake(CGRectGetWidth(sliceFrame) - BUTTON_HEIGHT - [self _rowButtonsRightHorizontalPadding], ([_ruleEditor rowHeight] - BUTTON_HEIGHT) / 2 - 2, BUTTON_HEIGHT, BUTTON_HEIGHT);
|
||||
|
||||
var buttonFrame = CGRectMake(CGRectGetWidth(sliceFrame) - BUTTON_HEIGHT - [self _rowButtonsRightHorizontalPadding], ([_ruleEditor rowHeight] - BUTTON_HEIGHT)/2 - 2, BUTTON_HEIGHT, BUTTON_HEIGHT);
|
||||
[_addButton setFrame:buttonFrame];
|
||||
|
||||
buttonFrame.origin.x -= BUTTON_HEIGHT + [self _rowButtonsInterviewHorizontalPadding];
|
||||
[_subtractButton setFrame:buttonFrame];
|
||||
|
||||
@@ -339,7 +351,7 @@ var CONTROL_HEIGHT = 16.,
|
||||
var ruleOptionView = _ruleOptionViews[i],
|
||||
optionFrame = _ruleOptionFrames[i];
|
||||
|
||||
optionFrame.origin.y = (rowHeight - CGRectGetHeight(optionFrame))/2 - 2;
|
||||
optionFrame.origin.y = (rowHeight - CGRectGetHeight(optionFrame)) / 2 - 2;
|
||||
if (widthChanged)
|
||||
{
|
||||
optionFrame.origin.x = optionViewOriginX;
|
||||
@@ -418,7 +430,7 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (float)_rowButtonsRightHorizontalPadding
|
||||
{
|
||||
return 10.;
|
||||
return ([[_ruleEditor superview] isKindOfClass:[CPClipView class]]) ? 18. : 10.;
|
||||
}
|
||||
|
||||
- (void)_setRowTypeToAddFromPlusButton:(int)type
|
||||
@@ -473,13 +485,14 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (void)_sendRuleAction:(id)sender
|
||||
{
|
||||
[_ruleEditor _updatePredicate];
|
||||
[_ruleEditor _sendRuleAction];
|
||||
}
|
||||
|
||||
- (void)_textDidChange:(CPNotification)aNotif
|
||||
{
|
||||
if ([[aNotif object] superview] == self && [_ruleEditor _sendsActionOnIncompleteTextChange])
|
||||
[_ruleEditor _sendRuleAction];
|
||||
[self _sendRuleAction:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -70,11 +70,14 @@
|
||||
[self assert:"selection changed: 1" equals:_globalResults];
|
||||
_globalResults = nil;
|
||||
|
||||
// setting the same content again should still trigger the delegate but with no selection
|
||||
// setContent: by itself should not affect the selection.
|
||||
[_collectionView setContent:content1];
|
||||
[self assert:"selection changed: 0" equals:_globalResults];
|
||||
[self assert:nil equals:_globalResults];
|
||||
// Manually clear the selection.
|
||||
[_collectionView setSelectionIndexes:[CPIndexSet indexSet]];
|
||||
_globalResults = nil;
|
||||
|
||||
|
||||
// now lets change the contents
|
||||
[_collectionView setContent:content2];
|
||||
// we set the selection to 0 again, but on the NEW content
|
||||
@@ -94,6 +97,19 @@
|
||||
[self assert:[CPIndexSet indexSet] equals:[_collectionView selectionIndexes]];
|
||||
}
|
||||
|
||||
- (void)testSetContentAndSelectionIndexes
|
||||
{
|
||||
// Changing the content does not automatically clear the selection indexes. The previous
|
||||
// selection indexes are preserved, even if now invalid or out of range. This is what
|
||||
// Cocoa does and necessary to prevent a new empty selection from overwriting
|
||||
// CPArrayController's selectsInsertedObjects selections.
|
||||
|
||||
[_collectionView setContent:[1, 2, 3]];
|
||||
[_collectionView setSelectionIndexes:[CPIndexSet indexSetWithIndex:1]];
|
||||
[_collectionView setContent:[3, 1, 2]];
|
||||
[self assert:[CPIndexSet indexSetWithIndex:1] equals:[_collectionView selectionIndexes]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation _CPCollectionViewWithHooks : CPCollectionView
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
@import <AppKit/AppKit.j>
|
||||
|
||||
@implementation CPPredicateEditorTest : OJTestCase
|
||||
{
|
||||
CPPredicateEditor _editor;
|
||||
}
|
||||
|
||||
- (void)setUp
|
||||
{
|
||||
_editor = [[CPPredicateEditor alloc] initWithFrame:CGRectMakeZero()];
|
||||
}
|
||||
|
||||
- (void)testTemplatesMerging
|
||||
{
|
||||
var le1 = [CPExpression expressionForKeyPath:@"keypath1"],
|
||||
le2 = [CPExpression expressionForKeyPath:@"keypath2"],
|
||||
le3 = [CPExpression expressionForKeyPath:@"keypath3"];
|
||||
|
||||
var lexps1 = [le1, le2],
|
||||
lexps2 = [le2, le3];
|
||||
|
||||
var ops1 = [CPBeginsWithPredicateOperatorType, CPEndsWithPredicateOperatorType],
|
||||
ops2 = [CPGreaterThanPredicateOperatorType, CPEqualToPredicateOperatorType];
|
||||
|
||||
var t1 = [[CPPredicateEditorRowTemplate alloc] initWithLeftExpressions:lexps1 rightExpressionAttributeType:CPStringAttributeType modifier:0 operators:ops1 options:0],
|
||||
t2 = [[CPPredicateEditorRowTemplate alloc] initWithLeftExpressions:lexps2 rightExpressionAttributeType:CPInteger16AttributeType modifier:0 operators:ops2 options:0];
|
||||
|
||||
var errorFormat = @"The left criterion %@ should have children with the following templates:\n%@\nbut was:\n%@";
|
||||
|
||||
[_editor setRowTemplates:[t1, t2]];
|
||||
|
||||
var trees = _editor._rootTrees;
|
||||
var count = [trees count];
|
||||
|
||||
// We are expecting 3 criterion on the left.
|
||||
[self assertTrue:(count == 3) message:"We should have 3 criterion on the left, was " + count];
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var aTree = [trees objectAtIndex:i],
|
||||
title = [aTree title],
|
||||
templates = [[aTree children] valueForKey:@"template"],
|
||||
expected;
|
||||
|
||||
if ([title isEqualToString:@"keypath1"])
|
||||
expected = [t1, t1];
|
||||
else if ([title isEqualToString:@"keypath2"])
|
||||
expected = [t1, t1, t2, t2];
|
||||
else if ([title isEqualToString:@"keypath3"])
|
||||
expected = [t2, t2];
|
||||
|
||||
[self assertTrue:[templates isEqualToArray:expected] message:[CPString stringWithFormat:errorFormat, title, [expected description], [templates description]]];
|
||||
}
|
||||
}
|
||||
@@ -7,13 +7,13 @@
|
||||
*/
|
||||
|
||||
@import <AppKit/CPScrollView.j>
|
||||
@import "Predicatetransformer.j"
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPWindow window;
|
||||
CPWindow window;
|
||||
CPPredicateEditor predicateEditor;
|
||||
CPTextField predicateField;
|
||||
|
||||
|
||||
CPTableView leftTable;
|
||||
CPTableView rightTable;
|
||||
CPPopUpButton rightExpressionsType;
|
||||
@@ -25,6 +25,12 @@
|
||||
CPMutableArray rightConstants;
|
||||
}
|
||||
|
||||
+ (void)initialize
|
||||
{
|
||||
var transformer = [[PredicateTransformer alloc] init];
|
||||
[CPValueTransformer setValueTransformer:transformer forName:@"PredicateTransformer"];
|
||||
}
|
||||
|
||||
- (void)awakeFromCib
|
||||
{
|
||||
operators = [CPMutableArray new];
|
||||
@@ -33,30 +39,19 @@
|
||||
|
||||
[templateBox setCornerRadius:10];
|
||||
[self updateAddTemplateButton];
|
||||
|
||||
[predicateEditor setAction:@selector(predicateEditorAction:)];
|
||||
[predicateEditor setTarget:self];
|
||||
|
||||
[window setBackgroundColor:[CPColor colorWithHexString:@"f3f4f5"]];
|
||||
[window setFullBridge:YES];
|
||||
}
|
||||
|
||||
- (IBAction)displayPredicate:(id)sender
|
||||
{
|
||||
var pred = [CPPredicate predicateWithFormat:[sender stringValue]];
|
||||
if (pred)
|
||||
[predicateEditor setObjectValue:pred];
|
||||
}
|
||||
|
||||
- (IBAction)predicateEditorAction:(id)sender
|
||||
{
|
||||
// CPLogConsole(_cmd + [predicateEditor displayValuesForRow:1]);
|
||||
[predicateField setStringValue:[[predicateEditor objectValue] predicateFormat]];
|
||||
CPLogConsole(_cmd);
|
||||
}
|
||||
|
||||
- (void)ruleEditorRowsDidChange:(CPNotification)notification
|
||||
{
|
||||
|
||||
CPLogConsole(_cmd);
|
||||
}
|
||||
|
||||
// Templates maker
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// PredicateTransformer.m
|
||||
// PredicateEditor
|
||||
//
|
||||
// Created by x on 22/05/11.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
@implementation PredicateTransformer : CPValueTransformer
|
||||
{
|
||||
}
|
||||
|
||||
+ (Class)transformedValueClass
|
||||
{
|
||||
return [CPString class];
|
||||
}
|
||||
|
||||
+ (BOOL)allowsReverseTransformation
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (CPString)transformedValue:(CPPredicate)predicate
|
||||
{
|
||||
if (predicate == nil || [predicate isEqual:[CPNull null]])
|
||||
return @"";
|
||||
|
||||
return [predicate predicateFormat];
|
||||
}
|
||||
|
||||
- (CPPredicate)reverseTransformedValue:(CPString)aValue
|
||||
{
|
||||
if (aValue == nil || [aValue isEqualToString:@""])
|
||||
return nil;
|
||||
|
||||
var predicate;
|
||||
|
||||
try
|
||||
{
|
||||
predicate = [CPPredicate predicateWithFormat:aValue];
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
CPLogConsole(e);
|
||||
predicate = nil;
|
||||
}
|
||||
finally
|
||||
{
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@ var THEME_ATTRIBUTES = [@"slice-top-border-color", @"slice-bottom-border-color",
|
||||
|
||||
- (void)ruleEditorAction:(id)sender
|
||||
{
|
||||
[ruleEditor reloadPredicate];
|
||||
CPLogConsole(_cmd);
|
||||
[predicateField setStringValue:[[ruleEditor predicate] predicateFormat]];
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -84,8 +84,15 @@ var CPRuleEditorCustomControlClass = @"CPRuleEditorCustomControlClass";
|
||||
|
||||
if (custom_control_class != nil)
|
||||
{
|
||||
var custom_class = CPClassFromString(custom_control_class);
|
||||
return [[custom_class alloc] initWithFrame:CGRectMake(0, 0, 100, 18)];
|
||||
var control = [criterion objectForKey:("control_"+row)];
|
||||
if (control == nil)
|
||||
{
|
||||
var custom_class = CPClassFromString(custom_control_class);
|
||||
control = [[custom_class alloc] initWithFrame:CGRectMake(0, 0, 100, 18)];
|
||||
[criterion setObject:control forKey:("control_"+row)];
|
||||
}
|
||||
|
||||
return control;
|
||||
}
|
||||
|
||||
return [criterion objectForKey:@"valeur"];
|
||||
|
||||
@@ -309,11 +309,13 @@ var rootItems = [CPArray arrayWithObject:[CPDictionary dictionaryWithObjectsAndK
|
||||
// Resize the sheet if needed
|
||||
- (void)ruleEditorRowsDidChange:(CPNotification)notif
|
||||
{
|
||||
/*
|
||||
var frame = [predicateSheet frame],
|
||||
newHeight = [predicateEditor numberOfRows] * [predicateEditor rowHeight] + 103;
|
||||
|
||||
frame.size.height = MAX([predicateSheet minSize].height, newHeight);
|
||||
[predicateSheet setFrame:frame display:[predicateSheet isSheet] animate:[predicateSheet isSheet]];
|
||||
*/
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,22 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1060</int>
|
||||
<string key="IBDocument.SystemVersion">10H574</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.35</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<int key="IBDocument.SystemTarget">1070</int>
|
||||
<string key="IBDocument.SystemVersion">11C74</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.23</string>
|
||||
<string key="IBDocument.HIToolboxVersion">567.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">823</string>
|
||||
<string key="NS.object.0">1938</string>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<integer value="2"/>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSScroller</string>
|
||||
<string>NSPredicateEditor</string>
|
||||
<string>NSMenuItem</string>
|
||||
<string>NSMenu</string>
|
||||
<string>NSScrollView</string>
|
||||
<string>NSTextFieldCell</string>
|
||||
<string>NSButton</string>
|
||||
<string>NSButtonCell</string>
|
||||
<string>NSPredicateEditorRowTemplate</string>
|
||||
<string>NSCustomObject</string>
|
||||
<string>NSView</string>
|
||||
<string>NSWindowTemplate</string>
|
||||
<string>NSTextField</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</array>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="NSCustomObject" id="1001">
|
||||
<string key="NSClassName">AppController</string>
|
||||
@@ -30,22 +45,25 @@
|
||||
<object class="NSWindowTemplate" id="713251541">
|
||||
<int key="NSWindowStyleMask">79</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{571, 431}, {548, 204}}</string>
|
||||
<string key="NSWindowRect">{{571, 431}, {553, 292}}</string>
|
||||
<int key="NSWTFlags">611844096</int>
|
||||
<string key="NSWindowTitle">Predicate Editor</string>
|
||||
<string key="NSWindowClass">NSWindow</string>
|
||||
<nil key="NSViewClass"/>
|
||||
<string key="NSWindowContentMaxSize">{548, 500}</string>
|
||||
<string key="NSWindowContentMinSize">{548, 150}</string>
|
||||
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||
<string key="NSWindowContentMaxSize">{700, 500}</string>
|
||||
<string key="NSWindowContentMinSize">{200, 150}</string>
|
||||
<object class="NSView" key="NSWindowView" id="38861806">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSTextField" id="629296188">
|
||||
<reference key="NSNextResponder" ref="38861806"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{67, 167}, {461, 22}}</string>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{67, 255}, {466, 22}}</string>
|
||||
<reference key="NSSuperview" ref="38861806"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="309697106"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="182421212">
|
||||
<int key="NSCellFlags">-1804468671</int>
|
||||
@@ -81,8 +99,10 @@
|
||||
<object class="NSTextField" id="588364402">
|
||||
<reference key="NSNextResponder" ref="38861806"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{17, 169}, {45, 17}}</string>
|
||||
<string key="NSFrame">{{17, 257}, {45, 17}}</string>
|
||||
<reference key="NSSuperview" ref="38861806"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="629296188"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="570311509">
|
||||
<int key="NSCellFlags">68288064</int>
|
||||
@@ -123,16 +143,17 @@
|
||||
<reference key="NSNextResponder" ref="243174374"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSRuleEditorViewSliceRow" id="970747435">
|
||||
<object class="NSRuleEditorViewSliceRow" id="57089285">
|
||||
<reference key="NSNextResponder" ref="859555406"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="1044975386">
|
||||
<reference key="NSNextResponder" ref="970747435"/>
|
||||
<object class="NSButton" id="176164335">
|
||||
<reference key="NSNextResponder" ref="57089285"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{478, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="970747435"/>
|
||||
<reference key="NSNextKeyView" ref="678362294"/>
|
||||
<string key="NSFrame">{{482, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="57089285"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="53252343"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -150,9 +171,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="1044975386"/>
|
||||
<reference key="NSControlView" ref="176164335"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="970747435"/>
|
||||
<reference key="NSTarget" ref="57089285"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<object class="NSFont" key="NSAlternateImage" id="28">
|
||||
@@ -165,12 +186,13 @@
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="834339231">
|
||||
<reference key="NSNextResponder" ref="970747435"/>
|
||||
<object class="NSButton" id="593104041">
|
||||
<reference key="NSNextResponder" ref="57089285"/>
|
||||
<int key="NSvFlags">-2147483391</int>
|
||||
<string key="NSFrame">{{458, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="970747435"/>
|
||||
<reference key="NSNextKeyView" ref="1044975386"/>
|
||||
<string key="NSFrame">{{462, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="57089285"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="176164335"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -184,9 +206,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="834339231"/>
|
||||
<reference key="NSControlView" ref="593104041"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="970747435"/>
|
||||
<reference key="NSTarget" ref="57089285"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -196,10 +218,11 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="751559971">
|
||||
<reference key="NSNextResponder" ref="970747435"/>
|
||||
<reference key="NSNextResponder" ref="57089285"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{7, 3}, {58, 19}}</string>
|
||||
<reference key="NSSuperview" ref="970747435"/>
|
||||
<reference key="NSSuperview" ref="57089285"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="451187338"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
@@ -269,11 +292,12 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="451187338">
|
||||
<reference key="NSNextResponder" ref="970747435"/>
|
||||
<reference key="NSNextResponder" ref="57089285"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{71, 3}, {167, 19}}</string>
|
||||
<reference key="NSSuperview" ref="970747435"/>
|
||||
<reference key="NSNextKeyView" ref="834339231"/>
|
||||
<reference key="NSSuperview" ref="57089285"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="593104041"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="15688605">
|
||||
@@ -314,8 +338,9 @@
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{506, 25}</string>
|
||||
<string key="NSFrameSize">{510, 25}</string>
|
||||
<reference key="NSSuperview" ref="859555406"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="751559971"/>
|
||||
<int key="NSRuleRowIndex">0</int>
|
||||
<int key="NSRuleIndentation">0</int>
|
||||
@@ -329,7 +354,7 @@
|
||||
<string key="NSRuleOptionFrames.0">{{7, 3}, {58, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.1">{{71, 3}, {167, 19}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="386001162">
|
||||
<dictionary class="NSMutableDictionary" id="844127754">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="192540818">
|
||||
<int key="NSPredicateTemplateType">2</int>
|
||||
@@ -345,7 +370,7 @@
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">NO</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="370083478">
|
||||
<dictionary class="NSMutableDictionary" id="513553205">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="192540818"/>
|
||||
</dictionary>
|
||||
@@ -353,22 +378,23 @@
|
||||
<int key="NSRuleOptionInitialFrames.count">2</int>
|
||||
<string key="NSRuleOptionInitialFrames.0">{{7, 3}, {58, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{71, 3}, {167, 19}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="1044975386"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="834339231"/>
|
||||
<reference key="NSRuleOptionAddButton" ref="176164335"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="593104041"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
</object>
|
||||
<object class="NSRuleEditorViewSliceRow" id="678362294">
|
||||
<object class="NSRuleEditorViewSliceRow" id="53252343">
|
||||
<reference key="NSNextResponder" ref="859555406"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="681475162">
|
||||
<reference key="NSNextResponder" ref="678362294"/>
|
||||
<object class="NSButton" id="240097527">
|
||||
<reference key="NSNextResponder" ref="53252343"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{478, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="678362294"/>
|
||||
<reference key="NSNextKeyView" ref="627241226"/>
|
||||
<string key="NSFrame">{{482, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="53252343"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="653866211"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -382,9 +408,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="681475162"/>
|
||||
<reference key="NSControlView" ref="240097527"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="678362294"/>
|
||||
<reference key="NSTarget" ref="53252343"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -393,12 +419,13 @@
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="612212070">
|
||||
<reference key="NSNextResponder" ref="678362294"/>
|
||||
<object class="NSButton" id="399358349">
|
||||
<reference key="NSNextResponder" ref="53252343"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{458, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="678362294"/>
|
||||
<reference key="NSNextKeyView" ref="681475162"/>
|
||||
<string key="NSFrame">{{462, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="53252343"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="240097527"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -412,9 +439,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="612212070"/>
|
||||
<reference key="NSControlView" ref="399358349"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="678362294"/>
|
||||
<reference key="NSTarget" ref="53252343"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -424,10 +451,11 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="519363494">
|
||||
<reference key="NSNextResponder" ref="678362294"/>
|
||||
<reference key="NSNextResponder" ref="53252343"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{37, 3}, {89, 19}}</string>
|
||||
<reference key="NSSuperview" ref="678362294"/>
|
||||
<reference key="NSSuperview" ref="53252343"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="807524155"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
@@ -505,10 +533,11 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="807524155">
|
||||
<reference key="NSNextResponder" ref="678362294"/>
|
||||
<reference key="NSNextResponder" ref="53252343"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{132, 3}, {99, 19}}</string>
|
||||
<reference key="NSSuperview" ref="678362294"/>
|
||||
<reference key="NSSuperview" ref="53252343"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="592417439"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
@@ -576,11 +605,12 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="592417439">
|
||||
<reference key="NSNextResponder" ref="678362294"/>
|
||||
<reference key="NSNextResponder" ref="53252343"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{237, 4}, {160, 18}}</string>
|
||||
<reference key="NSSuperview" ref="678362294"/>
|
||||
<reference key="NSNextKeyView" ref="612212070"/>
|
||||
<reference key="NSSuperview" ref="53252343"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="399358349"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell">
|
||||
<int key="NSCellFlags">343014976</int>
|
||||
@@ -594,8 +624,9 @@
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 25}, {506, 25}}</string>
|
||||
<string key="NSFrame">{{0, 25}, {510, 25}}</string>
|
||||
<reference key="NSSuperview" ref="859555406"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="519363494"/>
|
||||
<int key="NSRuleRowIndex">1</int>
|
||||
<int key="NSRuleIndentation">1</int>
|
||||
@@ -611,7 +642,7 @@
|
||||
<string key="NSRuleOptionFrames.1">{{132, 3}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.2">{{237, 4}, {160, 18}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="555444892">
|
||||
<dictionary class="NSMutableDictionary" id="68804799">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="426439543">
|
||||
<int key="NSPredicateTemplateType">1</int>
|
||||
@@ -628,11 +659,11 @@
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">YES</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="993021838">
|
||||
<dictionary class="NSMutableDictionary" id="995282622">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="426439543"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="524882063">
|
||||
<dictionary class="NSMutableDictionary" id="447698900">
|
||||
<integer value="3" key="depth"/>
|
||||
<reference key="pattern" ref="426439543"/>
|
||||
</dictionary>
|
||||
@@ -641,22 +672,23 @@
|
||||
<string key="NSRuleOptionInitialFrames.0">{{37, 3}, {89, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{132, 3}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.2">{{237, 4}, {160, 18}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="681475162"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="612212070"/>
|
||||
<reference key="NSRuleOptionAddButton" ref="240097527"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="399358349"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
</object>
|
||||
<object class="NSRuleEditorViewSliceRow" id="627241226">
|
||||
<object class="NSRuleEditorViewSliceRow" id="653866211">
|
||||
<reference key="NSNextResponder" ref="859555406"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="988543597">
|
||||
<reference key="NSNextResponder" ref="627241226"/>
|
||||
<object class="NSButton" id="265492672">
|
||||
<reference key="NSNextResponder" ref="653866211"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{478, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="627241226"/>
|
||||
<reference key="NSNextKeyView" ref="243174374"/>
|
||||
<string key="NSFrame">{{482, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="653866211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="430778576"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -670,9 +702,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="988543597"/>
|
||||
<reference key="NSControlView" ref="265492672"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="627241226"/>
|
||||
<reference key="NSTarget" ref="653866211"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -681,12 +713,13 @@
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="976606280">
|
||||
<reference key="NSNextResponder" ref="627241226"/>
|
||||
<object class="NSButton" id="586107535">
|
||||
<reference key="NSNextResponder" ref="653866211"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{458, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="627241226"/>
|
||||
<reference key="NSNextKeyView" ref="988543597"/>
|
||||
<string key="NSFrame">{{462, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="653866211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="265492672"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -700,9 +733,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="976606280"/>
|
||||
<reference key="NSControlView" ref="586107535"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="627241226"/>
|
||||
<reference key="NSTarget" ref="653866211"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -712,10 +745,11 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="368682153">
|
||||
<reference key="NSNextResponder" ref="627241226"/>
|
||||
<reference key="NSNextResponder" ref="653866211"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{37, 3}, {57, 19}}</string>
|
||||
<reference key="NSSuperview" ref="627241226"/>
|
||||
<reference key="NSSuperview" ref="653866211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="877623883"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
@@ -768,10 +802,11 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="877623883">
|
||||
<reference key="NSNextResponder" ref="627241226"/>
|
||||
<reference key="NSNextResponder" ref="653866211"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{100, 3}, {115, 19}}</string>
|
||||
<reference key="NSSuperview" ref="627241226"/>
|
||||
<reference key="NSSuperview" ref="653866211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="528682323"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
@@ -838,11 +873,12 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="528682323">
|
||||
<reference key="NSNextResponder" ref="627241226"/>
|
||||
<reference key="NSNextResponder" ref="653866211"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{221, 4}, {25, 18}}</string>
|
||||
<reference key="NSSuperview" ref="627241226"/>
|
||||
<reference key="NSNextKeyView" ref="976606280"/>
|
||||
<reference key="NSSuperview" ref="653866211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="586107535"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell">
|
||||
<int key="NSCellFlags">343014976</int>
|
||||
@@ -856,8 +892,9 @@
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 50}, {506, 25}}</string>
|
||||
<string key="NSFrame">{{0, 50}, {510, 25}}</string>
|
||||
<reference key="NSSuperview" ref="859555406"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="368682153"/>
|
||||
<int key="NSRuleRowIndex">2</int>
|
||||
<int key="NSRuleIndentation">1</int>
|
||||
@@ -873,7 +910,7 @@
|
||||
<string key="NSRuleOptionFrames.1">{{100, 3}, {115, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.2">{{221, 4}, {25, 18}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="405896585">
|
||||
<dictionary class="NSMutableDictionary" id="369299780">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="232290224">
|
||||
<int key="NSPredicateTemplateType">1</int>
|
||||
@@ -890,11 +927,11 @@
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">YES</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="397980673">
|
||||
<dictionary class="NSMutableDictionary" id="130330531">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="232290224"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="327891002">
|
||||
<dictionary class="NSMutableDictionary" id="470118458">
|
||||
<integer value="3" key="depth"/>
|
||||
<reference key="pattern" ref="232290224"/>
|
||||
</dictionary>
|
||||
@@ -903,23 +940,25 @@
|
||||
<string key="NSRuleOptionInitialFrames.0">{{37, 3}, {57, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{100, 3}, {115, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.2">{{221, 4}, {25, 18}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="988543597"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="976606280"/>
|
||||
<reference key="NSRuleOptionAddButton" ref="265492672"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="586107535"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {506, 99}}</string>
|
||||
<string key="NSFrame">{{1, 1}, {510, 182}}</string>
|
||||
<reference key="NSSuperview" ref="243174374"/>
|
||||
<reference key="NSNextKeyView" ref="970747435"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="57089285"/>
|
||||
</object>
|
||||
</array>
|
||||
<set class="NSMutableSet" key="NSDragTypes">
|
||||
<string>NSRuleEditorItemPBoardType</string>
|
||||
</set>
|
||||
<string key="NSFrameSize">{506, 99}</string>
|
||||
<string key="NSFrameSize">{510, 182}</string>
|
||||
<reference key="NSSuperview" ref="727310373"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="859555406"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<double key="NSRuleEditorAlignmentGridWidth">75</double>
|
||||
@@ -940,8 +979,8 @@
|
||||
<array class="NSMutableArray" key="NSBoundArray">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="386001162"/>
|
||||
<reference ref="370083478"/>
|
||||
<reference ref="844127754"/>
|
||||
<reference ref="513553205"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="751559971"/>
|
||||
@@ -951,9 +990,9 @@
|
||||
<array class="NSMutableArray" key="subrows">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="555444892"/>
|
||||
<reference ref="993021838"/>
|
||||
<reference ref="524882063"/>
|
||||
<reference ref="68804799"/>
|
||||
<reference ref="995282622"/>
|
||||
<reference ref="447698900"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="519363494"/>
|
||||
@@ -965,9 +1004,9 @@
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="405896585"/>
|
||||
<reference ref="397980673"/>
|
||||
<reference ref="327891002"/>
|
||||
<reference ref="369299780"/>
|
||||
<reference ref="130330531"/>
|
||||
<reference ref="470118458"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="368682153"/>
|
||||
@@ -982,9 +1021,9 @@
|
||||
</array>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="NSRuleEditorSlices">
|
||||
<reference ref="970747435"/>
|
||||
<reference ref="678362294"/>
|
||||
<reference ref="627241226"/>
|
||||
<reference ref="57089285"/>
|
||||
<reference ref="53252343"/>
|
||||
<reference ref="653866211"/>
|
||||
</array>
|
||||
<array key="NSPredicateTemplates">
|
||||
<reference ref="192540818"/>
|
||||
@@ -994,8 +1033,9 @@
|
||||
<nil key="NSPredicateEditorPredicate"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{1, 1}, {506, 99}}</string>
|
||||
<string key="NSFrame">{{1, 1}, {510, 182}}</string>
|
||||
<reference key="NSSuperview" ref="309697106"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="243174374"/>
|
||||
<reference key="NSDocView" ref="243174374"/>
|
||||
<object class="NSColor" key="NSBGColor">
|
||||
@@ -1007,26 +1047,31 @@
|
||||
<object class="NSScroller" id="430778576">
|
||||
<reference key="NSNextResponder" ref="309697106"/>
|
||||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{492, 1}, {15, 49}}</string>
|
||||
<string key="NSFrame">{{491, 1}, {15, 73}}</string>
|
||||
<reference key="NSSuperview" ref="309697106"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="950565514"/>
|
||||
<reference key="NSTarget" ref="309697106"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
<double key="NSPercent">0.97999999999999998</double>
|
||||
<double key="NSPercent">0.97333333333333338</double>
|
||||
</object>
|
||||
<object class="NSScroller" id="1049098804">
|
||||
<reference key="NSNextResponder" ref="309697106"/>
|
||||
<int key="NSvFlags">-2147483392</int>
|
||||
<string key="NSFrame">{{-100, -100}, {360, 15}}</string>
|
||||
<reference key="NSSuperview" ref="309697106"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="727310373"/>
|
||||
<int key="NSsFlags">1</int>
|
||||
<reference key="NSTarget" ref="309697106"/>
|
||||
<string key="NSAction">_doScroller:</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{20, 53}, {508, 101}}</string>
|
||||
<string key="NSFrame">{{20, 53}, {512, 184}}</string>
|
||||
<reference key="NSSuperview" ref="38861806"/>
|
||||
<reference key="NSNextKeyView" ref="727310373"/>
|
||||
<int key="NSsFlags">530</int>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1049098804"/>
|
||||
<int key="NSsFlags">133650</int>
|
||||
<reference key="NSVScroller" ref="430778576"/>
|
||||
<reference key="NSHScroller" ref="1049098804"/>
|
||||
<reference key="NSContentView" ref="727310373"/>
|
||||
@@ -1034,8 +1079,10 @@
|
||||
<object class="NSButton" id="951404550">
|
||||
<reference key="NSNextResponder" ref="38861806"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{477, 12}, {51, 25}}</string>
|
||||
<string key="NSFrame">{{481, 20}, {51, 25}}</string>
|
||||
<reference key="NSSuperview" ref="38861806"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<int key="NSTag">1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="168224546">
|
||||
@@ -1055,8 +1102,10 @@
|
||||
<object class="NSButton" id="950565514">
|
||||
<reference key="NSNextResponder" ref="38861806"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{391, 12}, {76, 25}}</string>
|
||||
<string key="NSFrame">{{395, 20}, {76, 25}}</string>
|
||||
<reference key="NSSuperview" ref="38861806"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="951404550"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="238505225">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
@@ -1073,12 +1122,15 @@
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{548, 204}</string>
|
||||
<string key="NSFrameSize">{553, 292}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="588364402"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
|
||||
<string key="NSMinSize">{548, 172}</string>
|
||||
<string key="NSMaxSize">{548, 522}</string>
|
||||
<string key="NSMinSize">{200, 172}</string>
|
||||
<string key="NSMaxSize">{700, 522}</string>
|
||||
<bool key="NSWindowIsRestorable">YES</bool>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
@@ -1171,11 +1223,11 @@
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="38861806"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="950565514"/>
|
||||
<reference ref="951404550"/>
|
||||
<reference ref="309697106"/>
|
||||
<reference ref="629296188"/>
|
||||
<reference ref="588364402"/>
|
||||
<reference ref="951404550"/>
|
||||
<reference ref="950565514"/>
|
||||
<reference ref="309697106"/>
|
||||
</array>
|
||||
<reference key="parent" ref="713251541"/>
|
||||
</object>
|
||||
@@ -1408,37 +1460,22 @@
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1.IBEditorWindowLastContentRect">{{439, 592}, {548, 204}}</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1.IBWindowTemplateEditedContentRect">{{439, 592}, {548, 204}}</string>
|
||||
<boolean value="YES" key="1.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<boolean value="YES" key="1.windowTemplate.hasMaxSize"/>
|
||||
<boolean value="YES" key="1.windowTemplate.hasMinSize"/>
|
||||
<string key="1.windowTemplate.maxSize">{548, 500}</string>
|
||||
<string key="1.windowTemplate.minSize">{548, 150}</string>
|
||||
<string key="100.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSAffineTransform" key="24.IBViewBoundsToFrameTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDGgAAwzsAAA</bytes>
|
||||
</object>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSAffineTransform" key="26.IBViewBoundsToFrameTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwzYAAA</bytes>
|
||||
</object>
|
||||
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSAffineTransform" key="44.IBViewBoundsToFrameTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwxgAAA</bytes>
|
||||
</object>
|
||||
<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="46.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="47.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="48.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="49.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="50.IBEditorWindowLastContentRect">{{487, 675}, {126, 41}}</string>
|
||||
<string key="50.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="51.IBEditorWindowLastContentRect">{{569, 618}, {137, 98}}</string>
|
||||
<string key="51.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@@ -1448,15 +1485,18 @@
|
||||
<string key="63.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="64.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="65.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSAffineTransform" key="65.IBViewBoundsToFrameTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABD7oAAwiQAAA</bytes>
|
||||
</object>
|
||||
<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="78.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="79.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="80.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="81.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<object class="NSAffineTransform" key="81.IBViewBoundsToFrameTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDw4AAwiQAAA</bytes>
|
||||
</object>
|
||||
<string key="82.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="85.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="86.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="90.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="94.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="98.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="99.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
@@ -1500,27 +1540,19 @@
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/AppController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||
<integer value="1060" key="NS.object.0"/>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||
<real value="4200" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NSMenuCheckmark">{9, 8}</string>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE: The working directory should be the main capp directory when this script is run
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE: The working directory should be the main capp directory when this script is run
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Remove the generated README.html once the build has finished.
|
||||
#
|
||||
@@ -7,4 +7,4 @@
|
||||
# $1 Cappuccino documentation directory
|
||||
#
|
||||
|
||||
rm "$1"/README.html
|
||||
rm "$1"/README.html
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE: The working directory should be the main capp directory when this script is run
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE: The working directory should be the main capp directory when this script is run
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function processor_msg ()
|
||||
{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
project_home="$(dirname "$PWD")"
|
||||
extras="$project_home/ci-extra.sh"
|
||||
|
||||
@@ -280,7 +280,7 @@ class LintChecker(object):
|
||||
if option:
|
||||
default = check.get('optionDefault', False)
|
||||
|
||||
if not self.view.settings().get(option, default):
|
||||
if self.view and not self.view.settings().get(option, default):
|
||||
continue
|
||||
|
||||
line = self.line
|
||||
@@ -982,7 +982,7 @@ if __name__ == '__main__':
|
||||
print usage.replace('%prog', os.path.basename(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
|
||||
checker = LintChecker(basedir=basedir, var_declarations=LintChecker.VAR_DECLARATIONS.index(options.var_declarations), verbose=options.verbose)
|
||||
checker = LintChecker(basedir=basedir, view=None, var_declarations=LintChecker.VAR_DECLARATIONS.index(options.var_declarations), verbose=options.verbose)
|
||||
pathsToCheck = []
|
||||
|
||||
for filename in filenames:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
chmod +x capp_lint
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
|
||||
Reference in New Issue
Block a user