Merge remote-tracking branch 'refs/remotes/origin/master' into master_upstream

This commit is contained in:
Stefan Eilers
2012-05-01 23:35:44 +02:00
31 changed files with 1183 additions and 1080 deletions
+16 -9
View File
@@ -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];
+3 -1
View File
@@ -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
+65 -20
View File
@@ -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"];
+74 -73
View File
@@ -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
+12 -17
View File
@@ -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]];
+72 -53
View File
@@ -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
+46 -33
View File
@@ -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
+18 -2
View File
@@ -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
+54
View File
@@ -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
View File
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
project_home="$(dirname "$PWD")"
extras="$project_home/ci-extra.sh"
+2 -2
View File
@@ -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 -1
View File
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
chmod +x capp_lint
+1 -1
View File
@@ -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