mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-27 05:57:04 +00:00
- Fixed a bug where the right control was incorrectly recreated with a default value when switching operators.
- As per cocoa, the predicate is recomputed when you send the right control action, not when you change text. Update-as-you-type can be turned ON by subclassing -_sendsActionOnIncompleteTextChange method. Default is NO. - Rewrote _reconfigureSubviews method, should be faster.
This commit is contained in:
committed by
Klaas Pieter Annema
parent
ea660e3dd4
commit
2b52f7d8da
@@ -315,7 +315,9 @@
|
||||
|
||||
if (menuItemIndex == -1 || [[treeChild title] isEqual:[currentView titleOfSelectedItem]])
|
||||
{
|
||||
var node = [_CPPredicateEditorRowNode _rowNodeFromTree:treeChild withTemplate:aTemplate];
|
||||
var node = [_CPPredicateEditorRowNode rowNodeFromTree:treeChild];
|
||||
[node applyTemplate:aTemplate withViews:templateViews forOriginalTemplate:originalTemplate];
|
||||
|
||||
[criteria addObject:node];
|
||||
[values addObject:[node displayValue]];
|
||||
break;
|
||||
@@ -334,9 +336,9 @@
|
||||
|
||||
- (void)_updatePredicate
|
||||
{
|
||||
//[self willChangeValueForKey:@"objectValue"];
|
||||
[self willChangeValueForKey:@"objectValue"];
|
||||
[self _updatePredicateFromRows];
|
||||
//[self didChangeValueForKey:@"objectValue"];
|
||||
[self didChangeValueForKey:@"objectValue"];
|
||||
}
|
||||
|
||||
- (void)_updatePredicateFromRows
|
||||
@@ -366,34 +368,41 @@
|
||||
- (id)_predicateFromRowItem:(id)rowItem
|
||||
{
|
||||
var subpredicates = [CPArray array],
|
||||
subrows = [rowItem valueForKey:[super subrowsKeyPath]],
|
||||
rowType = [rowItem valueForKey:_typeKeyPath];
|
||||
|
||||
if (rowType == CPRuleEditorRowTypeCompound)
|
||||
{
|
||||
var subrows = [rowItem valueForKey:_subrowsArrayKeyPath],
|
||||
count = [subrows count];
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var predicate = [self _predicateFromRowItem:subrows[i]];
|
||||
[subpredicates addObject:predicate];
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var subrow = [subrows objectAtIndex:i];
|
||||
var predicate = [self _predicateFromRowItem:subrow];
|
||||
[subpredicates addObject:predicate];
|
||||
}
|
||||
}
|
||||
|
||||
var criteria = [rowItem valueForKey:[super criteriaKeyPath]],
|
||||
displayValues = [rowItem valueForKey:[super displayValuesKeyPath]],
|
||||
leftNode = [criteria objectAtIndex:0],
|
||||
templateViews = [leftNode templateViews],
|
||||
count = [criteria count];
|
||||
var criteria = [rowItem valueForKey:_itemsKeyPath],
|
||||
displayValues = [rowItem valueForKey:_valuesKeyPath],
|
||||
count = [criteria count],
|
||||
lastItem = [criteria lastObject],
|
||||
template = [lastItem templateForRow],
|
||||
templateViews = [template templateViews];
|
||||
|
||||
for (var j = 0; j < count; j++)
|
||||
{
|
||||
var view = [templateViews objectAtIndex:j],
|
||||
value = [displayValues objectAtIndex:j];
|
||||
[[criteria objectAtIndex:j] setTemplateViews:templateViews];
|
||||
|
||||
if ([view respondsToSelector:@selector(selectItemWithTitle:)])
|
||||
if ([view isKindOfClass:[CPPopUpButton class]])
|
||||
[view selectItemWithTitle:value];
|
||||
else
|
||||
else if ([view respondsToSelector:@selector(setObjectValue:)])
|
||||
[view setObjectValue:[value objectValue]];
|
||||
|
||||
}
|
||||
|
||||
return [[leftNode templateForRow] predicateWithSubpredicates:subpredicates];
|
||||
return [template predicateWithSubpredicates:subpredicates];
|
||||
}
|
||||
|
||||
- (CPCompoundPredicateType)_compoundPredicateTypeForRootRows
|
||||
@@ -403,32 +412,39 @@
|
||||
|
||||
#pragma mark Control delegate
|
||||
|
||||
- (void)_sendRuleAction
|
||||
{
|
||||
[self _updatePredicate];
|
||||
[super _sendRuleAction];
|
||||
}
|
||||
|
||||
- (BOOL)_sendsActionOnIncompleteTextChange
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
/*
|
||||
- (void)_setDefaultTargetAndActionOnView:(CPView)view
|
||||
{
|
||||
if ([view isKindOfClass:[CPControl class]])
|
||||
{
|
||||
[view setAction:@selector(_templateControlValueDidChange:)];
|
||||
[view setTarget:self];
|
||||
[view setAction:@selector(_templateControlValueDidChange:)];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)controlTextDidEndEditing:(CPNotification)notification
|
||||
{
|
||||
[self _updatePredicate];
|
||||
}
|
||||
|
||||
- (void)_templateControlValueDidChange:(id)sender
|
||||
{
|
||||
//[self _updatePredicate];
|
||||
}
|
||||
|
||||
- (void)controlTextDidBeginEditing:(CPNotification)notification
|
||||
{
|
||||
}
|
||||
|
||||
- (void)controlTextDidEndEditing:(CPNotification)notification
|
||||
{
|
||||
}
|
||||
- (void)controlTextDidChange:(CPNotification)notification
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma mark RuleEditor delegate methods
|
||||
|
||||
@@ -439,24 +455,22 @@
|
||||
var trees = (type == CPRuleEditorRowTypeSimple) ? _rootTrees : _rootHeaderTrees;
|
||||
return [trees count];
|
||||
}
|
||||
|
||||
return [[rowItem children] count];
|
||||
}
|
||||
|
||||
- (id)_queryChild:(int)index ofItem:(id)rowItem withRowType:(int)type
|
||||
- (id)_queryChild:(int)childIndex ofItem:(id)rowItem withRowType:(int)type
|
||||
{
|
||||
if (rowItem == nil)
|
||||
{
|
||||
var trees = (type == CPRuleEditorRowTypeSimple) ? _rootTrees : _rootHeaderTrees;
|
||||
return [_CPPredicateEditorRowNode rowNodeFromTree:trees[index]];
|
||||
return [_CPPredicateEditorRowNode rowNodeFromTree:trees[childIndex]];
|
||||
}
|
||||
|
||||
return [[rowItem children] objectAtIndex:index];
|
||||
return [[rowItem children] objectAtIndex:childIndex];
|
||||
}
|
||||
|
||||
- (id)_queryValueForItem:(id)rowItem inRow:(int)rowIndex
|
||||
{
|
||||
[rowItem copyTemplateIfNecessary];
|
||||
return [rowItem displayValue];
|
||||
}
|
||||
|
||||
|
||||
@@ -657,18 +657,18 @@ CPTransformableAttributeType = 1800;
|
||||
|
||||
if (attributeType >= CPInteger16AttributeType && attributeType <= CPFloatAttributeType)
|
||||
{
|
||||
view = [self _textFieldWithFrame:CGRectMake(0,0,50,26)];
|
||||
view = [self _textFieldWithFrame:CGRectMake(0, 0, 50, 26)];
|
||||
}
|
||||
else if (attributeType == CPStringAttributeType)
|
||||
{
|
||||
view = [self _textFieldWithFrame:CGRectMake(0,0,150,26)];
|
||||
view = [self _textFieldWithFrame:CGRectMake(0, 0, 150, 26)];
|
||||
}
|
||||
else if (attributeType == CPBooleanAttributeType)
|
||||
{
|
||||
view = [[CPCheckBox alloc] initWithFrame:CGRectMake(0,0,50,26)];
|
||||
view = [[CPCheckBox alloc] initWithFrame:CGRectMake(0, 0, 50, 26)];
|
||||
}
|
||||
else if (attributeType == CPDateAttributeType)
|
||||
view = [[CPDatePicker alloc] initWithFrame:CGRectMake(0,0,150,26)];
|
||||
view = [[CPDatePicker alloc] initWithFrame:CGRectMake(0, 0, 150, 26)];
|
||||
else
|
||||
return nil;
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ var itemsContext = "items",
|
||||
/*!
|
||||
@ingroup appkit
|
||||
@class CPRuleEditor
|
||||
|
||||
|
||||
@brief A view for creating and configuring criteria.
|
||||
|
||||
A CPRuleEditor object is a view that allows the user to visually create and configure a list of options which are expressed by the rule editor as a predicate (see Predicate documentation). The view has a delegate which offers a tree of choices to the view. The choices are presented by the view to the user as a row of popup buttons, static text fields, and custom views. Each row in the list represents a particular path down the tree of choices.
|
||||
@@ -157,7 +157,6 @@ var itemsContext = "items",
|
||||
[self setBoundArrayKeyPath:@"boundArray"];
|
||||
|
||||
_slicesHolder = [[_CPRuleEditorViewSliceHolder alloc] initWithFrame:[self bounds]];
|
||||
[_slicesHolder setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
[self addSubview:_slicesHolder];
|
||||
|
||||
_boundArrayOwner = [[_CPRuleEditorViewUnboundRowHolder alloc] init];
|
||||
@@ -182,6 +181,8 @@ var itemsContext = "items",
|
||||
var animation = [[CPViewAnimation alloc] initWithDuration:0.5 animationCurve:CPAnimationEaseInOut];
|
||||
[self setAnimation:animation];
|
||||
|
||||
[_slicesHolder setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
|
||||
_dropLineView = [self _createSliceDropSeparator];
|
||||
[_slicesHolder addSubview:_dropLineView];
|
||||
|
||||
@@ -617,7 +618,7 @@ TODO: implement
|
||||
|
||||
if (lastSelected >= [self numberOfRows])
|
||||
[CPException raise:CPRangeException reason:@"row indexes " + indexes + " are out of range"];
|
||||
|
||||
|
||||
if (!extend)
|
||||
[self _deselectAll];
|
||||
|
||||
@@ -627,7 +628,7 @@ TODO: implement
|
||||
rowIndex = [slice rowIndex],
|
||||
contains = [indexes containsIndex:rowIndex];
|
||||
shouldSelect = (contains && !(extend && [slice _isSelected]));
|
||||
|
||||
|
||||
if (contains)
|
||||
[slice _setSelected:shouldSelect];
|
||||
[slice _setLastSelected:(rowIndex == lastSelected)];
|
||||
@@ -1053,7 +1054,7 @@ TODO: implement
|
||||
@param rowType The type of the row.
|
||||
@return An object representing the requested child (or root) criterion. This object is used by the delegate to represent that position in the tree, and is passed as a parameter in subsequent calls to the delegate.
|
||||
@discussion This method is required.
|
||||
|
||||
|
||||
- (id)ruleEditor:(CPRuleEditor)editor child:(CPInteger)index forCriterion:(id)criterion withRowType:(CPRuleEditorRowType)rowType
|
||||
*/
|
||||
|
||||
@@ -1358,9 +1359,9 @@ TODO: implement
|
||||
|
||||
- (CPMutableArray)_getItemsAndValuesToAddForRow:(int)rowIndex ofType:(CPRuleEditorRowType)type
|
||||
{
|
||||
var cachedItemsAndValues = _itemsAndValuesToAddForRowType[type];
|
||||
if (cachedItemsAndValues)
|
||||
return cachedItemsAndValues;
|
||||
//var cachedItemsAndValues = _itemsAndValuesToAddForRowType[type];
|
||||
//if (cachedItemsAndValues)
|
||||
// return cachedItemsAndValues;
|
||||
|
||||
var itemsAndValues = [CPMutableArray array],
|
||||
items = [CPMutableArray array],
|
||||
@@ -1513,41 +1514,38 @@ TODO: implement
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_changedItem:(id)oldItem toItem:(id)newItem inRow:(int)rowIndex atCriteriaIndex:(int)indexInCriteria
|
||||
- (void)_changedItem:(id)fromItem toItem:(id)toItem inRow:(int)aRow atCriteriaIndex:(int)fromItemIndex
|
||||
{
|
||||
var criteria = [self criteriaForRow:rowIndex],
|
||||
values = [self displayValuesForRow:rowIndex],
|
||||
type = [self rowTypeForRow:rowIndex],
|
||||
var criteria = [self criteriaForRow:aRow],
|
||||
displayValues = [self displayValuesForRow:aRow],
|
||||
rowType = [self rowTypeForRow:aRow],
|
||||
anItem = toItem;
|
||||
//fromItemIndex = [criteria indexOfObjectIdenticalTo:fromItem];
|
||||
|
||||
itemToAdd = newItem,
|
||||
relativeIndexInCriteria = 0,
|
||||
num_childs = 1000,
|
||||
var items = [criteria subarrayWithRange:CPMakeRange(0, fromItemIndex)],
|
||||
values = [displayValues subarrayWithRange:CPMakeRange(0, fromItemIndex)];
|
||||
|
||||
remainingRange = CPMakeRange(0, indexInCriteria),
|
||||
finalCriteria = [[CPMutableArray alloc] initWithArray:[criteria subarrayWithRange:remainingRange]],
|
||||
finalValues = [[CPMutableArray alloc] initWithArray:[values subarrayWithRange:remainingRange]];
|
||||
_lastRow = aRow;
|
||||
|
||||
while (num_childs > 0)
|
||||
while (YES)
|
||||
{
|
||||
var displayvalue = [self _queryValueForItem:itemToAdd inRow:rowIndex];
|
||||
[items addObject:anItem];
|
||||
var value = [self _queryValueForItem:anItem inRow:aRow];
|
||||
[values addObject:value];
|
||||
|
||||
[finalCriteria addObject:itemToAdd];
|
||||
[finalValues addObject:displayvalue];
|
||||
if (![self _queryNumberOfChildrenOfItem:anItem withRowType:rowType])
|
||||
break;
|
||||
|
||||
num_childs = [self _queryNumberOfChildrenOfItem:itemToAdd withRowType:type];
|
||||
|
||||
if (num_childs > 0)
|
||||
itemToAdd = [self _queryChild:0 ofItem:itemToAdd withRowType:type];
|
||||
|
||||
relativeIndexInCriteria++;
|
||||
anItem = [self _queryChild:0 ofItem:anItem withRowType:rowType];
|
||||
}
|
||||
|
||||
var object = [[self _rowCacheForIndex:rowIndex] rowObject];
|
||||
[object setValue:finalCriteria forKey:_itemsKeyPath];
|
||||
[object setValue:finalValues forKey:_valuesKeyPath];
|
||||
|
||||
[[_slices objectAtIndex:rowIndex] _reconfigureSubviews];
|
||||
var object = [[self _rowCacheForIndex:aRow] rowObject];
|
||||
[object setValue:items forKey:_itemsKeyPath];
|
||||
[object setValue:values forKey:_valuesKeyPath];
|
||||
|
||||
var slice = [_slices objectAtIndex:aRow];
|
||||
[slice _reconfigureSubviews];
|
||||
[self _sendRuleAction];
|
||||
[self _postRuleOptionChangedNotification];
|
||||
}
|
||||
|
||||
@@ -1667,11 +1665,17 @@ TODO: implement
|
||||
return;
|
||||
}
|
||||
|
||||
if ([observableController respondsToSelector:@selector(objectClass)])
|
||||
_rowClass = [observableController objectClass];
|
||||
|
||||
if ([binding isEqualToString:@"rows"])
|
||||
[self _setBoundDataSource:observableController withKeyPath:keyPath options:options];
|
||||
{
|
||||
if ([observableController respondsToSelector:@selector(objectClass)])
|
||||
_rowClass = [observableController objectClass];
|
||||
|
||||
[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"];
|
||||
}
|
||||
|
||||
- (void)unbind:(id)object
|
||||
@@ -1801,19 +1805,18 @@ TODO: implement
|
||||
|
||||
- (void)animationDidEnd:(CPViewAnimation)animation
|
||||
{
|
||||
var nextSimple = [self _getItemsAndValuesToAddForRow:0 ofType:CPRuleEditorRowTypeSimple],
|
||||
nextCompound = [self _getItemsAndValuesToAddForRow:0 ofType:CPRuleEditorRowTypeCompound];
|
||||
// var nextSimple = [self _getItemsAndValuesToAddForRow:0 ofType:CPRuleEditorRowTypeSimple],
|
||||
// nextCompound = [self _getItemsAndValuesToAddForRow:0 ofType:CPRuleEditorRowTypeCompound];
|
||||
|
||||
_itemsAndValuesToAddForRowType = {CPRuleEditorRowTypeSimple:nextSimple, CPRuleEditorRowTypeCompound:nextCompound};
|
||||
// _itemsAndValuesToAddForRowType = {CPRuleEditorRowTypeSimple:nextSimple, CPRuleEditorRowTypeCompound:nextCompound};
|
||||
}
|
||||
|
||||
- (void)_updateSliceRows
|
||||
{
|
||||
var width = [self frame].size.width,
|
||||
count = [_slices count],
|
||||
i;
|
||||
count = [_slices count];
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var slice = [_slices objectAtIndex:i],
|
||||
targetRect = CGRectMake(0, i * _sliceHeight, width, _sliceHeight);
|
||||
@@ -1937,7 +1940,7 @@ TODO: implement
|
||||
var modifierFlags = [event modifierFlags],
|
||||
extend = (modifierFlags & CPCommandKeyMask) || (modifierFlags & CPShiftKeyMask),
|
||||
rowIndexes = [CPIndexSet indexSetWithIndex:[slice rowIndex]];
|
||||
|
||||
|
||||
[self selectRowIndexes:rowIndexes byExtendingSelection:extend];
|
||||
}
|
||||
|
||||
@@ -2091,7 +2094,7 @@ TODO: implement
|
||||
if ([selected_indices containsIndex:mainRowIndex])
|
||||
[draggingRows addIndexes:selected_indices];
|
||||
_draggingRows = [self _includeSubslicesForSlicesAtIndexes:draggingRows];
|
||||
|
||||
|
||||
var firstIndex = [_draggingRows firstIndex],
|
||||
firstSlice = [_slices objectAtIndex:firstIndex],
|
||||
dragview = [[CPView alloc] initWithFrame:[firstSlice frame]];
|
||||
@@ -2307,6 +2310,61 @@ TODO: implement
|
||||
[self sendAction:[self action] to:[self target]];
|
||||
}
|
||||
|
||||
- (BOOL)_sendsActionOnIncompleteTextChange
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)_getAllAvailableItems:(id)items values:(id)values asChildrenOfItem:(id)parentItem inRow:(int)aRow
|
||||
{
|
||||
var type,
|
||||
indexofCriterion,
|
||||
numOfChildren;
|
||||
|
||||
var availItems = [CPMutableArray array],
|
||||
availValues = [CPMutableArray array];
|
||||
|
||||
var criterion = nil,
|
||||
value = nil;
|
||||
|
||||
_lastRow = aRow;
|
||||
type = [self rowTypeForRow:aRow];
|
||||
numOfChildren = [self _queryNumberOfChildrenOfItem:parentItem withRowType:type];
|
||||
|
||||
var criteria = [self criteriaForRow:aRow];
|
||||
indexofCriterion = [criteria indexOfObject:criterion];
|
||||
|
||||
if (parentItem != nil
|
||||
&& indexofCriterion != CPNotFound
|
||||
&& indexofCriterion < [criteria count] - 1)
|
||||
{
|
||||
var next = indexofCriterion + 1;
|
||||
|
||||
criterion = [criteria objectAtIndex:next];
|
||||
var values = [self displayValuesForRow:aRow];
|
||||
value = [values objectAtIndex:next];
|
||||
}
|
||||
|
||||
for (var i = 0; i < numOfChildren; ++i)
|
||||
{
|
||||
var aChild = [self _queryChild:i ofItem:parentItem withRowType:type];
|
||||
var availChild = aChild,
|
||||
availValue = value;
|
||||
|
||||
if ( criterion != aChild )
|
||||
availValue = [self _queryValueForItem:aChild inRow:aRow];
|
||||
|
||||
if ( !availValue )
|
||||
availValue = [self _queryValueForItem:availChild inRow:aRow];
|
||||
|
||||
[availItems addObject:availChild];
|
||||
[availValues addObject:availValue];
|
||||
}
|
||||
|
||||
[items addObjectsFromArray:availItems];
|
||||
[values addObjectsFromArray:availValues];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPRuleEditorAlignmentGridWidthKey = @"CPRuleEditorAlignmentGridWidth",
|
||||
@@ -2508,24 +2566,31 @@ var dropSeparatorColor = [CPColor colorWithHexString:@"4886ca"];
|
||||
|
||||
@end
|
||||
|
||||
@implementation CPControl (ToolTip)
|
||||
@implementation CPObject (CPRuleEditorSliceRow)
|
||||
|
||||
- (void)setToolTip:(CPString)aToolTip
|
||||
- (int)valueType
|
||||
{
|
||||
if (_toolTip == aToolTip)
|
||||
return;
|
||||
var result = 0;
|
||||
|
||||
_toolTip = aToolTip;
|
||||
#if PLATFORM(DOM)
|
||||
_DOMElement.title = aToolTip;
|
||||
#endif
|
||||
}
|
||||
var isString = [self isKindOfClass:[CPString class]];
|
||||
if ( !isString )
|
||||
{
|
||||
var isView = [self isKindOfClass:[CPView class]];
|
||||
result = 1;
|
||||
if ( !isView )
|
||||
{
|
||||
var ismenuItem = [self isKindOfClass:[CPMenuItem class]];
|
||||
result = 2;
|
||||
if ( !ismenuItem )
|
||||
{
|
||||
[CPException raise:CPGenericException reason:@"Unknown Type For " + self];
|
||||
result = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (CPString)toolTip
|
||||
{
|
||||
return _toolTip;
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
/*! @endcond */
|
||||
@@ -12,60 +12,101 @@
|
||||
CPArray children @accessors(copy);
|
||||
}
|
||||
|
||||
- (BOOL)applyTemplate:(id)template withViews:(id)views forOriginalTemplate:(id)arg3
|
||||
{
|
||||
return YES; // not in use
|
||||
}
|
||||
|
||||
+ (id)rowNodeFromTree:(id)aTree
|
||||
{
|
||||
return [_CPPredicateEditorRowNode _rowNodeFromTree:aTree withTemplate:[aTree template]];
|
||||
var mapTable = {};
|
||||
return [_CPPredicateEditorRowNode _rowNodeFromTree:aTree withTemplateTable:mapTable];
|
||||
}
|
||||
|
||||
+ (id)_rowNodeFromTree:(id)aTree withTemplate:(id)template
|
||||
+ (id)_rowNodeFromTree:(id)aTree withTemplateTable:(id)templateTable
|
||||
{
|
||||
var nodeChildren = [CPArray array],
|
||||
var node,
|
||||
views,
|
||||
copiedContainer;
|
||||
|
||||
node = [[_CPPredicateEditorRowNode alloc] init];
|
||||
node.tree = aTree;
|
||||
|
||||
var template = [aTree template],
|
||||
uuid = [template UID];
|
||||
|
||||
var cachedNode = templateTable[uuid];
|
||||
|
||||
if (cachedNode == nil)
|
||||
{
|
||||
views = [CPMutableArray array];
|
||||
copiedContainer = [CPMutableArray array];
|
||||
templateTable[uuid] = node;
|
||||
}
|
||||
else
|
||||
{
|
||||
views = [cachedNode templateViews];
|
||||
copiedContainer = [cachedNode copiedTemplateContainer];
|
||||
}
|
||||
|
||||
node.templateViews = views;
|
||||
node.copiedTemplateContainer = copiedContainer;
|
||||
|
||||
var nodeChildren = [CPMutableArray array],
|
||||
treeChildren = [aTree children],
|
||||
count = [treeChildren count];
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var childnode = [self _rowNodeFromTree:treeChildren[i] withTemplate:template];
|
||||
[nodeChildren addObject:childnode];
|
||||
var treeChild = treeChildren[i],
|
||||
child = [_CPPredicateEditorRowNode _rowNodeFromTree:treeChild withTemplateTable:templateTable];
|
||||
|
||||
[nodeChildren addObject:child];
|
||||
}
|
||||
|
||||
var node = [_CPPredicateEditorRowNode new];
|
||||
[node setTree:aTree];
|
||||
[node setCopiedTemplateContainer:[CPMutableArray arrayWithObject:template]];
|
||||
[node setTemplateViews:[template templateViews]];
|
||||
[node setChildren:nodeChildren];
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
- (BOOL)applyTemplate:(id)template withViews:(id)views forOriginalTemplate:(id)originalTemplate
|
||||
{
|
||||
var t = [tree template];
|
||||
if (t !== template)
|
||||
{
|
||||
[templateViews setArray:views];
|
||||
[copiedTemplateContainer removeAllObjects];
|
||||
[copiedTemplateContainer addObject:template];
|
||||
}
|
||||
|
||||
var count = [children count];
|
||||
for (var i; i < count; i++)
|
||||
[children[i] applyTemplate:template withViews:views forOriginalTemplate:originalTemplate];
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)node
|
||||
{
|
||||
return (self === node || tree === [node tree]);
|
||||
if (![node isKindOfClass:[_CPPredicateEditorRowNode class]])
|
||||
return NO;
|
||||
|
||||
return (tree === [node tree]);
|
||||
}
|
||||
|
||||
- (void)copyTemplateIfNecessary
|
||||
{
|
||||
if ([[self templateForRow] rightIsWildcard])
|
||||
if ([copiedTemplateContainer count] == 0)
|
||||
{
|
||||
CPLogConsole("COPYING TEMPLATE");
|
||||
var copy = [[tree template] copy];
|
||||
[self setCopiedTemplateContainer:[CPMutableArray arrayWithObject:copy]];
|
||||
[self setTemplateViews:[copy templateViews]];
|
||||
[copiedTemplateContainer addObject:copy];
|
||||
[templateViews addObjectsFromArray:[copy templateViews]];
|
||||
}
|
||||
}
|
||||
|
||||
- (CPView)templateView
|
||||
{
|
||||
[self copyTemplateIfNecessary];
|
||||
return [templateViews objectAtIndex:[tree indexIntoTemplate]];
|
||||
}
|
||||
|
||||
- (id)templateForRow
|
||||
{
|
||||
[self copyTemplateIfNecessary];
|
||||
return [copiedTemplateContainer lastObject];
|
||||
}
|
||||
|
||||
@@ -77,15 +118,15 @@
|
||||
- (id)displayValue
|
||||
{
|
||||
var title = [self title];
|
||||
if (title == nil)
|
||||
return [self templateView];
|
||||
if (title != nil)
|
||||
return title;
|
||||
|
||||
return title;
|
||||
return [self templateView];
|
||||
}
|
||||
|
||||
- (CPString)description
|
||||
{
|
||||
return [CPString stringWithFormat:@"<%@ %@ %@ %p>", [self className], [self title], [self displayValue], self];
|
||||
return [CPString stringWithFormat:@"<%@ %@ %@ tree:%@ tviews:%@", [self className],[self UID], [self title], [tree UID], [templateViews description]];
|
||||
}
|
||||
|
||||
@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];
|
||||
@@ -81,15 +81,16 @@ var CONTROL_HEIGHT = 16.,
|
||||
- (CPMenuItem)_createMenuItemWithTitle:(CPString )title
|
||||
{
|
||||
title = [[_ruleEditor standardLocalizer] localizedStringForString:title];
|
||||
return [[CPMenuItem alloc] initWithTitle:title action:nil keyEquivalent:@""];
|
||||
var mItem = [[CPMenuItem alloc] initWithTitle:title action:nil keyEquivalent:@""];
|
||||
return mItem;
|
||||
}
|
||||
|
||||
- (CPPopUpButton)_createPopUpButtonWithItems:(CPArray)itemsArray selectedItemIndex:(int)index
|
||||
{
|
||||
var title = [[itemsArray objectAtIndex:index] title],
|
||||
font = [_ruleEditor font],
|
||||
var title = [[itemsArray objectAtIndex:index] title];
|
||||
var font = [_ruleEditor font],
|
||||
width = [title sizeWithFont:font].width + 20,
|
||||
rect = CGRectMake(0, ([_ruleEditor rowHeight] - CONTROL_HEIGHT)/2, (width - width % 40) + 80, CONTROL_HEIGHT);
|
||||
rect = CGRectMake(0, 0, (width - width % 40) + 80, CONTROL_HEIGHT);
|
||||
|
||||
var popup = [[_CPRuleEditorPopUpButton alloc] initWithFrame:rect];
|
||||
[popup setValue:font forThemeAttribute:@"font"];
|
||||
@@ -143,10 +144,10 @@ var CONTROL_HEIGHT = 16.,
|
||||
{
|
||||
var layoutdict = [sender representedObject],
|
||||
newItem = [layoutdict objectForKey:@"item"],
|
||||
indexInCriteria = [[layoutdict objectForKey:@"indexInCriteria"] intValue],
|
||||
indexInCriteria = [layoutdict objectForKey:@"indexInCriteria"],
|
||||
oldItem = [_correspondingRuleItems objectAtIndex:indexInCriteria];
|
||||
|
||||
if (newItem != oldItem)
|
||||
if (![newItem isEqual:oldItem])
|
||||
{
|
||||
[_correspondingRuleItems replaceObjectAtIndex:indexInCriteria withObject:newItem];
|
||||
[_ruleEditor _changedItem:oldItem toItem:newItem inRow:_rowIndex atCriteriaIndex:indexInCriteria];
|
||||
@@ -172,150 +173,189 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (void)_reconfigureSubviews
|
||||
{
|
||||
var numItems;
|
||||
currentItem = nil,
|
||||
optionView = nil,
|
||||
indexInCriteria = 0,
|
||||
var ruleItems,
|
||||
criteria,
|
||||
repObject,
|
||||
menuItem,
|
||||
ruleView,
|
||||
criterion,
|
||||
parent,
|
||||
numberOfCriteria,
|
||||
numberOfChildren,
|
||||
firstResponderIndex;
|
||||
|
||||
rowtype = [_ruleEditor rowTypeForRow:_rowIndex],
|
||||
displayValues = [_ruleEditor displayValuesForRow:_rowIndex];
|
||||
var ruleItems = [CPMutableArray array];
|
||||
|
||||
[self _emptyRulePartSubviews];
|
||||
[_correspondingRuleItems removeAllObjects];
|
||||
|
||||
while ((numItems = [_ruleEditor _queryNumberOfChildrenOfItem:currentItem withRowType:rowtype]) > 0)
|
||||
criteria = [_ruleEditor criteriaForRow:_rowIndex];
|
||||
numberOfCriteria = [criteria count];
|
||||
|
||||
firstResponderIndex = numberOfCriteria - 1;
|
||||
var responder = [[self window] firstResponder];
|
||||
if (responder)
|
||||
firstResponderIndex = [_ruleOptionViews indexOfObjectIdenticalTo:responder];
|
||||
|
||||
for (var i = 0; i < numberOfCriteria; i++)
|
||||
{
|
||||
var isCustomRightControl = NO;
|
||||
isStaticTextField = NO,
|
||||
isPopupMenu = NO,
|
||||
isMultiValue = numItems > 1,
|
||||
selectedMenuItemIndex = 0,
|
||||
selectedItem = nil,
|
||||
current_display_value = nil,
|
||||
ruleView = nil;
|
||||
parent = nil;
|
||||
criterion = [criteria objectAtIndex:i];
|
||||
|
||||
itemsArray = [CPMutableArray array],
|
||||
display_value_cached = [displayValues objectAtIndex:indexInCriteria];
|
||||
if (i > 0)
|
||||
parent = [criteria objectAtIndex:i - 1];
|
||||
|
||||
for (var childIndex = 0; childIndex < numItems; childIndex++)
|
||||
var childItems = [],
|
||||
childValues = [];
|
||||
|
||||
[_ruleEditor _getAllAvailableItems:childItems values:childValues asChildrenOfItem:parent inRow:_rowIndex];
|
||||
|
||||
numberOfChildren = [childItems count];
|
||||
if (numberOfChildren > 1)
|
||||
{
|
||||
var childItem = [_ruleEditor _queryChild:childIndex ofItem:currentItem withRowType:rowtype];
|
||||
current_display_value = [_ruleEditor _queryValueForItem:childItem inRow:_rowIndex];
|
||||
var menuItems = [CPMutableArray arrayWithCapacity:numberOfChildren];
|
||||
|
||||
if (isMultiValue)
|
||||
var selectedIndex = [childItems indexOfObject:criterion];
|
||||
if (selectedIndex == CPNotFound)
|
||||
break;
|
||||
|
||||
for (var j = 0; j < numberOfChildren; ++j)
|
||||
{
|
||||
var menuItem;
|
||||
var childItem = [childItems objectAtIndex:j];
|
||||
var childValue = [childValues objectAtIndex:j];
|
||||
|
||||
if ([current_display_value isKindOfClass:[CPString class]])
|
||||
menuItem = [self _createMenuItemWithTitle:current_display_value];
|
||||
else if ([current_display_value isKindOfClass:[CPMenuItem class]])
|
||||
menuItem = current_display_value;
|
||||
else
|
||||
[CPException raise:CPInternalInconsistencyException reason:@"Display value must be a string or a menu item"];
|
||||
|
||||
var layoutDictionary = [CPDictionary dictionaryWithObjectsAndKeys:childItem, @"item", indexInCriteria, @"indexInCriteria"];
|
||||
|
||||
[menuItem setAction:@selector(_ruleOptionPopupChangedAction:)];
|
||||
[menuItem setTarget:self];
|
||||
[menuItem setRepresentedObject:layoutDictionary];
|
||||
[menuItem setTag:indexInCriteria];
|
||||
|
||||
[itemsArray addObject:menuItem];
|
||||
isPopupMenu = YES;
|
||||
|
||||
if ((childIndex == numItems - 1 && selectedItem == nil)
|
||||
|| ([current_display_value isEqual:display_value_cached])
|
||||
|| ([current_display_value isKindOfClass:[CPView class]]
|
||||
&& [[current_display_value objectValue] isEqualTo:[display_value_cached objectValue]]))
|
||||
if ([childValue isKindOfClass:[CPMenuItem class]])
|
||||
{
|
||||
selectedItem = childItem;
|
||||
selectedMenuItemIndex = childIndex;
|
||||
[[childValue menu] removeItem:childValue];
|
||||
menuItem = childValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([childValue isEqualToString:@""])
|
||||
menuItem = [self _createMenuSeparatorItem];
|
||||
else
|
||||
{
|
||||
menuItem = [self _createMenuItemWithTitle:childValue];
|
||||
[menuItem setTarget:self];
|
||||
[menuItem setAction:@selector(_ruleOptionPopupChangedAction:)];
|
||||
}
|
||||
}
|
||||
|
||||
repObject = [CPDictionary dictionaryWithObjectsAndKeys:childItem, @"item", childValue, @"value", i, @"indexInCriteria"];
|
||||
[menuItem setRepresentedObject:repObject];
|
||||
[menuItems addObject:menuItem];
|
||||
}
|
||||
else if ([current_display_value isKindOfClass:[CPString class]])
|
||||
|
||||
ruleView = [self _createPopUpButtonWithItems:menuItems selectedItemIndex:selectedIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
var value = [childValues objectAtIndex:0];
|
||||
var type = [value valueType];
|
||||
|
||||
if (type === 0)
|
||||
ruleView = [self _createStaticTextFieldWithStringValue:value];
|
||||
else
|
||||
{
|
||||
isStaticTextField = YES;
|
||||
selectedItem = childItem;
|
||||
selectedMenuItemIndex =0;
|
||||
if (type !== 1)
|
||||
{
|
||||
[CPException raise:CPInternalInconsistencyException reason:@"Display value must be a string or a menu item"];
|
||||
continue;
|
||||
}
|
||||
|
||||
ruleView = value;
|
||||
[ruleView setTarget:self];
|
||||
[ruleView setAction:@selector(_sendRuleAction:)];
|
||||
if ([ruleView respondsToSelector:@selector(setDelegate:)])
|
||||
[ruleView setDelegate:self];
|
||||
}
|
||||
else if ([current_display_value isKindOfClass:[CPView class]])
|
||||
{
|
||||
isCustomRightControl = YES;
|
||||
selectedItem = childItem;
|
||||
selectedMenuItemIndex = 0;
|
||||
} else
|
||||
[CPException raise:CPInternalInconsistencyException reason:@"Display value must be a string or a custom control"];
|
||||
}
|
||||
|
||||
if (isPopupMenu)
|
||||
if (ruleView != nil)
|
||||
{
|
||||
optionView = [self _createPopUpButtonWithItems:itemsArray selectedItemIndex:selectedMenuItemIndex];
|
||||
}
|
||||
else if (isStaticTextField)
|
||||
{
|
||||
optionView = [self _createStaticTextFieldWithStringValue:[current_display_value description]];
|
||||
}
|
||||
else if (isCustomRightControl)
|
||||
{
|
||||
optionView = display_value_cached; //display_value_cached
|
||||
[optionView setTarget:self];
|
||||
[optionView setAction:@selector(_sendRuleAction:)];
|
||||
if ([optionView respondsToSelector:@selector(setEditable:)])
|
||||
[optionView setEditable:editable];
|
||||
}
|
||||
[_ruleOptionViews addObject:ruleView];
|
||||
var frame = [ruleView frame];
|
||||
[_ruleOptionInitialViewFrames addObject:frame];
|
||||
[_ruleOptionFrames addObject:frame];
|
||||
|
||||
if (optionView)
|
||||
{
|
||||
[_ruleOptionViews addObject:optionView];
|
||||
[_ruleOptionInitialViewFrames addObject:[optionView frame]];
|
||||
[_ruleOptionFrames addObject:[optionView frame]];
|
||||
}
|
||||
if (!criterion)
|
||||
criterion = [CPNull null];
|
||||
|
||||
[_correspondingRuleItems addObject:selectedItem];
|
||||
currentItem = selectedItem;
|
||||
indexInCriteria++;
|
||||
[ruleItems addObject:criterion];
|
||||
}
|
||||
}
|
||||
|
||||
[self _relayoutSubviewsWidthChanged:(CGRectGetWidth([self frame]) != [_ruleEditor rowHeight])];
|
||||
[_correspondingRuleItems setArray:ruleItems];
|
||||
|
||||
if (!editable)
|
||||
[self _updateEnabledStateForSubviews];
|
||||
|
||||
[self _relayoutSubviewsWidthChanged:YES];
|
||||
|
||||
if (firstResponderIndex != CPNotFound)
|
||||
{
|
||||
var aView = [_ruleOptionViews objectAtIndex:firstResponderIndex];
|
||||
[[self window] makeFirstResponder:aView]; // This is not working. bug in CPPopUpButton firstResponder ?
|
||||
}
|
||||
|
||||
//[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)_updateEnabledStateForSubviews
|
||||
{
|
||||
[_ruleOptionViews makeObjectsPerformSelector:@selector(setEnabled:) withObject:NO];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
// CPLogConsole(_cmd);
|
||||
[self _relayoutSubviewsWidthChanged:YES];
|
||||
}
|
||||
|
||||
- (void)_relayoutSubviewsWidthChanged:(BOOL)widthChanged
|
||||
{
|
||||
var optionViewOriginX,
|
||||
leftHorizontalPadding,
|
||||
leftButtonMinX,
|
||||
rowHeight = [_ruleEditor rowHeight],
|
||||
count = [_ruleOptionViews count],
|
||||
sliceFrame = [self frame];
|
||||
|
||||
if (widthChanged)
|
||||
optionViewOriginX = [self _leftmostViewFixedHorizontalPadding] + [self _indentationHorizontalPadding]*[self indentation];
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var ruleOptionView = _ruleOptionViews[i],
|
||||
optionFrame = _ruleOptionFrames[i],
|
||||
initialFrame = _ruleOptionInitialViewFrames[i];
|
||||
|
||||
optionFrame.origin.y = (rowHeight - CGRectGetHeight(optionFrame))/2 - 2;
|
||||
if (widthChanged)
|
||||
{
|
||||
optionFrame.origin.x = optionViewOriginX;
|
||||
optionFrame.size.width = MIN(CGRectGetMinX(optionFrame) + CGRectGetWidth(initialFrame), CGRectGetMinX([_subtractButton frame]) - [self _rowButtonsLeftHorizontalPadding]) - CGRectGetMinX(optionFrame);
|
||||
}
|
||||
|
||||
[ruleOptionView setFrame:optionFrame];
|
||||
[self addSubview:ruleOptionView];
|
||||
if (widthChanged)
|
||||
optionViewOriginX += CGRectGetWidth(optionFrame) + [self _interviewHorizontalPadding];
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
if (widthChanged)
|
||||
{
|
||||
optionViewOriginX = [self _leftmostViewFixedHorizontalPadding] + [self _indentationHorizontalPadding] * _indentation;
|
||||
leftHorizontalPadding = [self _rowButtonsLeftHorizontalPadding];
|
||||
leftButtonMinX = CGRectGetMinX(buttonFrame);
|
||||
}
|
||||
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var ruleOptionView = _ruleOptionViews[i],
|
||||
optionFrame = _ruleOptionFrames[i];
|
||||
|
||||
optionFrame.origin.y = (rowHeight - CGRectGetHeight(optionFrame))/2 - 2;
|
||||
if (widthChanged)
|
||||
{
|
||||
optionFrame.origin.x = optionViewOriginX;
|
||||
if (i == count - 1 && ![self _isRulePopup:ruleOptionView])
|
||||
{
|
||||
var initialFrame = _ruleOptionInitialViewFrames[i];
|
||||
optionFrame.size.width = MIN(CGRectGetWidth(initialFrame), leftButtonMinX - leftHorizontalPadding - optionViewOriginX);
|
||||
}
|
||||
}
|
||||
|
||||
[ruleOptionView setFrame:optionFrame];
|
||||
[self addSubview:ruleOptionView];
|
||||
|
||||
if (widthChanged)
|
||||
optionViewOriginX += CGRectGetWidth(optionFrame) + [self _interviewHorizontalPadding];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_updateButtonVisibilities
|
||||
@@ -438,31 +478,10 @@ var CONTROL_HEIGHT = 16.,
|
||||
|
||||
- (void)_textDidChange:(CPNotification)aNotif
|
||||
{
|
||||
if ([[aNotif object] superview] == self)
|
||||
if ([[aNotif object] superview] == self && [_ruleEditor _sendsActionOnIncompleteTextChange])
|
||||
[_ruleEditor _sendRuleAction];
|
||||
}
|
||||
|
||||
/*
|
||||
- (BOOL)_dropsIndentWhenImmediatelyBelow
|
||||
{
|
||||
}
|
||||
- (double)_minWidthForPass:(int)pass forView:(id)view withProposedMinWidth:(double)minWidth
|
||||
{
|
||||
}
|
||||
- (id)_sortOptionDictionariesByLayoutOrder:(id)fp8
|
||||
{
|
||||
}
|
||||
- (void)_setHideNonPartDrawing:(BOOL)value
|
||||
{
|
||||
}
|
||||
- (void)_tightenResizables:(id)fp8 intoGivenWidth:(double)fp12
|
||||
{
|
||||
}
|
||||
- (void)_updateEnabledStateForSubviews
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
||||
|
||||
@implementation _CPRuleEditorTextField : CPTextField
|
||||
@@ -490,4 +509,4 @@ var CONTROL_HEIGHT = 16.,
|
||||
return [self superview];
|
||||
}
|
||||
|
||||
@end
|
||||
@end
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPWindow window;
|
||||
CPRuleEditor predicateEditor;
|
||||
CPPredicateEditor predicateEditor;
|
||||
CPTextField predicateField;
|
||||
|
||||
CPTableView leftTable;
|
||||
@@ -33,6 +33,9 @@
|
||||
|
||||
[templateBox setCornerRadius:10];
|
||||
[self updateAddTemplateButton];
|
||||
|
||||
[predicateEditor setAction:@selector(predicateEditorAction:)];
|
||||
[predicateEditor setTarget:self];
|
||||
|
||||
[window setBackgroundColor:[CPColor colorWithHexString:@"f3f4f5"]];
|
||||
[window setFullBridge:YES];
|
||||
@@ -47,13 +50,13 @@
|
||||
|
||||
- (IBAction)predicateEditorAction:(id)sender
|
||||
{
|
||||
[predicateEditor reloadPredicate];
|
||||
// CPLogConsole(_cmd + [predicateEditor displayValuesForRow:1]);
|
||||
[predicateField setStringValue:[[predicateEditor objectValue] predicateFormat]];
|
||||
}
|
||||
|
||||
- (void)ruleEditorRowsDidChange:(CPNotification)notification
|
||||
{
|
||||
CPLogConsole(_cmd);
|
||||
|
||||
}
|
||||
|
||||
// Templates maker
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1151,11 +1151,12 @@
|
||||
<string key="NSFrame">{{20, 476}, {611, 22}}</string>
|
||||
<reference key="NSSuperview" ref="439893737"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="869316024"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="1062851196">
|
||||
<int key="NSCellFlags">-1804468671</int>
|
||||
<int key="NSCellFlags2">268436480</int>
|
||||
<string key="NSContents">string ENDSWITH "foo"</string>
|
||||
<string key="NSContents">string MATCHES "foo"</string>
|
||||
<reference key="NSSupport" ref="112893232"/>
|
||||
<reference key="NSControlView" ref="884566601"/>
|
||||
<bool key="NSDrawsBackground">YES</bool>
|
||||
@@ -1195,17 +1196,17 @@
|
||||
<reference key="NSNextResponder" ref="407607490"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSRuleEditorViewSliceRow" id="939521342">
|
||||
<object class="NSRuleEditorViewSliceRow" id="356804940">
|
||||
<reference key="NSNextResponder" ref="211063809"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="261593316">
|
||||
<reference key="NSNextResponder" ref="939521342"/>
|
||||
<object class="NSButton" id="163892837">
|
||||
<reference key="NSNextResponder" ref="356804940"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{581, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="939521342"/>
|
||||
<reference key="NSSuperview" ref="356804940"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="838952732"/>
|
||||
<reference key="NSNextKeyView" ref="460920540"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -1223,9 +1224,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="261593316"/>
|
||||
<reference key="NSControlView" ref="163892837"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="939521342"/>
|
||||
<reference key="NSTarget" ref="356804940"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<object class="NSFont" key="NSAlternateImage" id="28">
|
||||
@@ -1238,13 +1239,13 @@
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="81758585">
|
||||
<reference key="NSNextResponder" ref="939521342"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<object class="NSButton" id="870073061">
|
||||
<reference key="NSNextResponder" ref="356804940"/>
|
||||
<int key="NSvFlags">-2147483391</int>
|
||||
<string key="NSFrame">{{561, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="939521342"/>
|
||||
<reference key="NSSuperview" ref="356804940"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="261593316"/>
|
||||
<reference key="NSNextKeyView" ref="163892837"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -1258,9 +1259,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="81758585"/>
|
||||
<reference key="NSControlView" ref="870073061"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="939521342"/>
|
||||
<reference key="NSTarget" ref="356804940"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -1270,10 +1271,10 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="862982389">
|
||||
<reference key="NSNextResponder" ref="939521342"/>
|
||||
<reference key="NSNextResponder" ref="356804940"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{7, 4}, {58, 19}}</string>
|
||||
<reference key="NSSuperview" ref="939521342"/>
|
||||
<reference key="NSSuperview" ref="356804940"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="735996687"/>
|
||||
<int key="NSTag">-1</int>
|
||||
@@ -1338,12 +1339,12 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="735996687">
|
||||
<reference key="NSNextResponder" ref="939521342"/>
|
||||
<reference key="NSNextResponder" ref="356804940"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{71, 4}, {167, 19}}</string>
|
||||
<reference key="NSSuperview" ref="939521342"/>
|
||||
<reference key="NSSuperview" ref="356804940"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="81758585"/>
|
||||
<reference key="NSNextKeyView" ref="870073061"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="740771535">
|
||||
@@ -1400,7 +1401,7 @@
|
||||
<string key="NSRuleOptionFrames.0">{{7, 4}, {58, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.1">{{71, 4}, {167, 19}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="677427269">
|
||||
<dictionary class="NSMutableDictionary" id="244855320">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="171372468">
|
||||
<int key="NSPredicateTemplateType">2</int>
|
||||
@@ -1416,7 +1417,7 @@
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">NO</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="489242046">
|
||||
<dictionary class="NSMutableDictionary" id="430874292">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="171372468"/>
|
||||
</dictionary>
|
||||
@@ -1424,23 +1425,23 @@
|
||||
<int key="NSRuleOptionInitialFrames.count">2</int>
|
||||
<string key="NSRuleOptionInitialFrames.0">{{7, 4}, {58, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{71, 4}, {167, 19}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="261593316"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="81758585"/>
|
||||
<reference key="NSRuleOptionAddButton" ref="163892837"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="870073061"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
</object>
|
||||
<object class="NSRuleEditorViewSliceRow" id="838952732">
|
||||
<object class="NSRuleEditorViewSliceRow" id="460920540">
|
||||
<reference key="NSNextResponder" ref="211063809"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="536084415">
|
||||
<reference key="NSNextResponder" ref="838952732"/>
|
||||
<object class="NSButton" id="562951042">
|
||||
<reference key="NSNextResponder" ref="460920540"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{581, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="838952732"/>
|
||||
<reference key="NSSuperview" ref="460920540"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="407607490"/>
|
||||
<reference key="NSNextKeyView" ref="629602464"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -1454,9 +1455,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="536084415"/>
|
||||
<reference key="NSControlView" ref="562951042"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="838952732"/>
|
||||
<reference key="NSTarget" ref="460920540"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -1465,13 +1466,13 @@
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="106975478">
|
||||
<reference key="NSNextResponder" ref="838952732"/>
|
||||
<object class="NSButton" id="446117794">
|
||||
<reference key="NSNextResponder" ref="460920540"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{561, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="838952732"/>
|
||||
<reference key="NSSuperview" ref="460920540"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="536084415"/>
|
||||
<reference key="NSNextKeyView" ref="562951042"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
@@ -1485,9 +1486,9 @@
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="106975478"/>
|
||||
<reference key="NSControlView" ref="446117794"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="838952732"/>
|
||||
<reference key="NSTarget" ref="460920540"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
@@ -1497,10 +1498,10 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="78209235">
|
||||
<reference key="NSNextResponder" ref="838952732"/>
|
||||
<reference key="NSNextResponder" ref="460920540"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{37, 4}, {79, 19}}</string>
|
||||
<reference key="NSSuperview" ref="838952732"/>
|
||||
<reference key="NSSuperview" ref="460920540"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="729950799"/>
|
||||
<int key="NSTag">-1</int>
|
||||
@@ -1509,19 +1510,6 @@
|
||||
<int key="NSCellFlags">67239488</int>
|
||||
<int key="NSCellFlags2">4196352</int>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<object class="NSKeyPathExpression" key="NSRepresentedObject" id="76879785">
|
||||
<int key="NSExpressionType">3</int>
|
||||
<string key="NSSelectorName">valueForKey:</string>
|
||||
<object class="NSSelfExpression" key="NSOperand" id="482739528">
|
||||
<int key="NSExpressionType">1</int>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="NSArguments">
|
||||
<object class="NSKeyPathSpecifierExpression">
|
||||
<int key="NSExpressionType">10</int>
|
||||
<string key="NSKeyPath">string</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<reference key="NSControlView" ref="78209235"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
@@ -1529,9 +1517,9 @@
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="232834514">
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="186315633">
|
||||
<reference key="NSMenu" ref="586880274"/>
|
||||
<string key="NSTitle">astring</string>
|
||||
<string key="NSTitle">string</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
@@ -1539,15 +1527,14 @@
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSRepObject" ref="76879785"/>
|
||||
<reference key="NSTarget" ref="83480964"/>
|
||||
</object>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="586880274">
|
||||
<string key="NSTitle"/>
|
||||
<array class="NSMutableArray" key="NSMenuItems">
|
||||
<reference ref="232834514"/>
|
||||
<object class="NSMenuItem" id="540884058">
|
||||
<reference ref="186315633"/>
|
||||
<object class="NSMenuItem" id="477727226">
|
||||
<reference key="NSMenu" ref="586880274"/>
|
||||
<string key="NSTitle">string2</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
@@ -1556,17 +1543,6 @@
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<object class="NSKeyPathExpression" key="NSRepObject">
|
||||
<int key="NSExpressionType">3</int>
|
||||
<string key="NSSelectorName">valueForKey:</string>
|
||||
<reference key="NSOperand" ref="482739528"/>
|
||||
<array class="NSMutableArray" key="NSArguments">
|
||||
<object class="NSKeyPathSpecifierExpression">
|
||||
<int key="NSExpressionType">10</int>
|
||||
<string key="NSKeyPath">string2</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<reference key="NSTarget" ref="83480964"/>
|
||||
</object>
|
||||
</array>
|
||||
@@ -1579,10 +1555,10 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="729950799">
|
||||
<reference key="NSNextResponder" ref="838952732"/>
|
||||
<reference key="NSNextResponder" ref="460920540"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{122, 4}, {99, 19}}</string>
|
||||
<reference key="NSSuperview" ref="838952732"/>
|
||||
<reference key="NSSuperview" ref="460920540"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="770001068"/>
|
||||
<int key="NSTag">-1</int>
|
||||
@@ -1591,7 +1567,7 @@
|
||||
<int key="NSCellFlags">67239488</int>
|
||||
<int key="NSCellFlags2">4196352</int>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<integer value="8" key="NSRepresentedObject"/>
|
||||
<integer value="4" key="NSRepresentedObject"/>
|
||||
<reference key="NSControlView" ref="729950799"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
@@ -1599,9 +1575,9 @@
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="978983751">
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="46876958">
|
||||
<reference key="NSMenu" ref="454623134"/>
|
||||
<string key="NSTitle">begins with</string>
|
||||
<string key="NSTitle">is</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
@@ -1609,48 +1585,24 @@
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<integer value="8" key="NSRepObject"/>
|
||||
<integer value="4" key="NSRepObject"/>
|
||||
<reference key="NSTarget" ref="215986163"/>
|
||||
</object>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="454623134">
|
||||
<string key="NSTitle"/>
|
||||
<array class="NSMutableArray" key="NSMenuItems">
|
||||
<reference ref="978983751"/>
|
||||
<object class="NSMenuItem" id="531788973">
|
||||
<reference ref="46876958"/>
|
||||
<object class="NSMenuItem" id="637036835">
|
||||
<reference key="NSMenu" ref="454623134"/>
|
||||
<string key="NSTitle">is not</string>
|
||||
<string key="NSTitle">matches</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<integer value="5" key="NSRepObject"/>
|
||||
<reference key="NSTarget" ref="215986163"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="756867223">
|
||||
<reference key="NSMenu" ref="454623134"/>
|
||||
<string key="NSTitle">ends with</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<integer value="9" key="NSRepObject"/>
|
||||
<reference key="NSTarget" ref="215986163"/>
|
||||
</object>
|
||||
<object class="NSMenuItem" id="254043602">
|
||||
<reference key="NSMenu" ref="454623134"/>
|
||||
<string key="NSTitle">contains</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<integer value="99" key="NSRepObject"/>
|
||||
<integer value="6" key="NSRepObject"/>
|
||||
<reference key="NSTarget" ref="215986163"/>
|
||||
</object>
|
||||
</array>
|
||||
@@ -1663,12 +1615,12 @@
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="770001068">
|
||||
<reference key="NSNextResponder" ref="838952732"/>
|
||||
<reference key="NSNextResponder" ref="460920540"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{227, 4}, {160, 18}}</string>
|
||||
<reference key="NSSuperview" ref="838952732"/>
|
||||
<reference key="NSSuperview" ref="460920540"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="106975478"/>
|
||||
<reference key="NSNextKeyView" ref="446117794"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell">
|
||||
<int key="NSCellFlags">343014976</int>
|
||||
@@ -1705,7 +1657,7 @@
|
||||
<string key="NSRuleOptionFrames.1">{{122, 4}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.2">{{227, 4}, {160, 18}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="866224734">
|
||||
<dictionary class="NSMutableDictionary" id="182370408">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="626549045">
|
||||
<int key="NSPredicateTemplateType">1</int>
|
||||
@@ -1722,11 +1674,11 @@
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">YES</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="353749474">
|
||||
<dictionary class="NSMutableDictionary" id="261381641">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="626549045"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="638210389">
|
||||
<dictionary class="NSMutableDictionary" id="174024543">
|
||||
<integer value="3" key="depth"/>
|
||||
<reference key="pattern" ref="626549045"/>
|
||||
</dictionary>
|
||||
@@ -1735,8 +1687,240 @@
|
||||
<string key="NSRuleOptionInitialFrames.0">{{37, 4}, {79, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{122, 4}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.2">{{227, 4}, {160, 18}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="536084415"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="106975478"/>
|
||||
<reference key="NSRuleOptionAddButton" ref="562951042"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="446117794"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
</object>
|
||||
<object class="NSRuleEditorViewSliceRow" id="629602464">
|
||||
<reference key="NSNextResponder" ref="211063809"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="274860396">
|
||||
<reference key="NSNextResponder" ref="629602464"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{581, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="629602464"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="407607490"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134348800</int>
|
||||
<string key="NSContents">+</string>
|
||||
<reference key="NSSupport" ref="29"/>
|
||||
<array class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<string key="AXDescription">add</string>
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="274860396"/>
|
||||
<string key="NSAction">_addOption:</string>
|
||||
<reference key="NSTarget" ref="629602464"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSButton" id="694388602">
|
||||
<reference key="NSNextResponder" ref="629602464"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{561, 4}, {18, 18}}</string>
|
||||
<reference key="NSSuperview" ref="629602464"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="274860396"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSRuleEditorButtonCell" key="NSCell">
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134348800</int>
|
||||
<string key="NSContents">-</string>
|
||||
<reference key="NSSupport" ref="29"/>
|
||||
<array class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<string key="AXDescription">remove</string>
|
||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<reference key="NSControlView" ref="694388602"/>
|
||||
<string key="NSAction">_deleteOption:</string>
|
||||
<reference key="NSTarget" ref="629602464"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="28"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="718999757">
|
||||
<reference key="NSNextResponder" ref="629602464"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{37, 4}, {79, 19}}</string>
|
||||
<reference key="NSSuperview" ref="629602464"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="122014713"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="24005362">
|
||||
<int key="NSCellFlags">67239488</int>
|
||||
<int key="NSCellFlags2">4196352</int>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="718999757"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="549316260"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="845117556">
|
||||
<reference key="NSMenu" ref="830052663"/>
|
||||
<string key="NSTitle">one op</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<int key="NSState">1</int>
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<reference key="NSTarget" ref="24005362"/>
|
||||
</object>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="830052663">
|
||||
<string key="NSTitle"/>
|
||||
<array class="NSMutableArray" key="NSMenuItems">
|
||||
<reference ref="845117556"/>
|
||||
</array>
|
||||
</object>
|
||||
<int key="NSPreferredEdge">3</int>
|
||||
<bool key="NSUsesItemFromMenu">YES</bool>
|
||||
<bool key="NSAltersState">YES</bool>
|
||||
<int key="NSArrowPosition">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSPopUpButton" id="122014713">
|
||||
<reference key="NSNextResponder" ref="629602464"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{122, 4}, {99, 19}}</string>
|
||||
<reference key="NSSuperview" ref="629602464"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="798358360"/>
|
||||
<int key="NSTag">-1</int>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="1062860772">
|
||||
<int key="NSCellFlags">67239488</int>
|
||||
<int key="NSCellFlags2">4196352</int>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<integer value="4" key="NSRepresentedObject"/>
|
||||
<reference key="NSControlView" ref="122014713"/>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">36</int>
|
||||
<reference key="NSAlternateImage" ref="549316260"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
<object class="NSMenuItem" key="NSMenuItem" id="112417180">
|
||||
<reference key="NSMenu" ref="542577028"/>
|
||||
<string key="NSTitle">is</string>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<int key="NSState">1</int>
|
||||
<reference key="NSOnImage" ref="35465992"/>
|
||||
<reference key="NSMixedImage" ref="502551668"/>
|
||||
<string key="NSAction">_popUpItemAction:</string>
|
||||
<integer value="4" key="NSRepObject"/>
|
||||
<reference key="NSTarget" ref="1062860772"/>
|
||||
</object>
|
||||
<bool key="NSMenuItemRespectAlignment">YES</bool>
|
||||
<object class="NSMenu" key="NSMenu" id="542577028">
|
||||
<string key="NSTitle"/>
|
||||
<array class="NSMutableArray" key="NSMenuItems">
|
||||
<reference ref="112417180"/>
|
||||
</array>
|
||||
</object>
|
||||
<int key="NSPreferredEdge">3</int>
|
||||
<bool key="NSUsesItemFromMenu">YES</bool>
|
||||
<bool key="NSAltersState">YES</bool>
|
||||
<int key="NSArrowPosition">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSTextField" id="798358360">
|
||||
<reference key="NSNextResponder" ref="629602464"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{227, 4}, {160, 18}}</string>
|
||||
<reference key="NSSuperview" ref="629602464"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="694388602"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell">
|
||||
<int key="NSCellFlags">343014976</int>
|
||||
<int key="NSCellFlags2">4326400</int>
|
||||
<string key="NSContents"/>
|
||||
<reference key="NSSupport" ref="26"/>
|
||||
<reference key="NSControlView" ref="798358360"/>
|
||||
<bool key="NSDrawsBackground">YES</bool>
|
||||
<reference key="NSBackgroundColor" ref="1001319303"/>
|
||||
<reference key="NSTextColor" ref="879899608"/>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 52}, {609, 26}}</string>
|
||||
<reference key="NSSuperview" ref="211063809"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="718999757"/>
|
||||
<int key="NSRuleRowIndex">2</int>
|
||||
<int key="NSRuleIndentation">1</int>
|
||||
<reference key="NSContainingRuleEditorView" ref="407607490"/>
|
||||
<nil key="NSRuleBackgroundColor"/>
|
||||
<array class="NSMutableArray" key="NSRuleOptionViews">
|
||||
<reference ref="718999757"/>
|
||||
<reference ref="122014713"/>
|
||||
<reference ref="798358360"/>
|
||||
</array>
|
||||
<int key="NSRuleOptionFrames.count">3</int>
|
||||
<string key="NSRuleOptionFrames.0">{{37, 4}, {79, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.1">{{122, 4}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionFrames.2">{{227, 4}, {160, 18}}</string>
|
||||
<array class="NSMutableArray" key="NSRuleOptionItems">
|
||||
<dictionary class="NSMutableDictionary" id="501663521">
|
||||
<integer value="1" key="depth"/>
|
||||
<object class="NSPredicateEditorRowTemplate" key="pattern" id="450238823">
|
||||
<int key="NSPredicateTemplateType">1</int>
|
||||
<int key="NSPredicateTemplateOptions">0</int>
|
||||
<int key="NSPredicateTemplateModifier">0</int>
|
||||
<int key="NSPredicateTemplateLeftAttributeType">0</int>
|
||||
<int key="NSPredicateTemplateRightAttributeType">700</int>
|
||||
<array key="NSPredicateTemplateViews">
|
||||
<reference ref="718999757"/>
|
||||
<reference ref="122014713"/>
|
||||
<reference ref="798358360"/>
|
||||
</array>
|
||||
<bool key="NSPredicateTemplateLeftIsWildcard">NO</bool>
|
||||
<bool key="NSPredicateTemplateRightIsWildcard">YES</bool>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="908038237">
|
||||
<integer value="2" key="depth"/>
|
||||
<reference key="pattern" ref="450238823"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" id="247067485">
|
||||
<integer value="3" key="depth"/>
|
||||
<reference key="pattern" ref="450238823"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
<int key="NSRuleOptionInitialFrames.count">3</int>
|
||||
<string key="NSRuleOptionInitialFrames.0">{{37, 4}, {79, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.1">{{122, 4}, {99, 19}}</string>
|
||||
<string key="NSRuleOptionInitialFrames.2">{{227, 4}, {160, 18}}</string>
|
||||
<reference key="NSRuleOptionAddButton" ref="274860396"/>
|
||||
<reference key="NSRuleOptionSubtractButton" ref="694388602"/>
|
||||
<int key="NSRuleOptionRowType">0</int>
|
||||
<int key="NSRuleOptionPlusButtonRowType">0</int>
|
||||
<bool key="NSRuleOptionEditable">YES</bool>
|
||||
@@ -1745,7 +1929,7 @@
|
||||
<string key="NSFrameSize">{609, 162}</string>
|
||||
<reference key="NSSuperview" ref="407607490"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="939521342"/>
|
||||
<reference key="NSNextKeyView" ref="356804940"/>
|
||||
</object>
|
||||
</array>
|
||||
<set class="NSMutableSet" key="NSDragTypes">
|
||||
@@ -1758,10 +1942,10 @@
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<double key="NSRuleEditorAlignmentGridWidth">75</double>
|
||||
<double key="NSRuleEditorSliceHeight">26</double>
|
||||
<string key="NSRuleEditorStringsFileName">format</string>
|
||||
<string key="NSRuleEditorStringsFileName"/>
|
||||
<bool key="NSRuleEditorEditable">YES</bool>
|
||||
<bool key="NSRuleEditorAllowsEmptyCompoundRows">NO</bool>
|
||||
<bool key="NSRuleEditorDisallowEmpty">NO</bool>
|
||||
<bool key="NSRuleEditorDisallowEmpty">YES</bool>
|
||||
<int key="NSRuleEditorNestingMode">3</int>
|
||||
<string key="NSRuleEditorRowTypeKeyPath">rowType</string>
|
||||
<string key="NSRuleEditorSubrowsArrayKeyPath">subrows</string>
|
||||
@@ -1775,8 +1959,8 @@
|
||||
<array class="NSMutableArray" key="NSBoundArray">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="677427269"/>
|
||||
<reference ref="489242046"/>
|
||||
<reference ref="244855320"/>
|
||||
<reference ref="430874292"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="862982389"/>
|
||||
@@ -1786,9 +1970,9 @@
|
||||
<array class="NSMutableArray" key="subrows">
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="866224734"/>
|
||||
<reference ref="353749474"/>
|
||||
<reference ref="638210389"/>
|
||||
<reference ref="182370408"/>
|
||||
<reference ref="261381641"/>
|
||||
<reference ref="174024543"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="78209235"/>
|
||||
@@ -1798,17 +1982,33 @@
|
||||
<integer value="0" key="rowType"/>
|
||||
<array class="NSMutableArray" key="subrows"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary">
|
||||
<array class="NSMutableArray" key="criteria">
|
||||
<reference ref="501663521"/>
|
||||
<reference ref="908038237"/>
|
||||
<reference ref="247067485"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="displayValues">
|
||||
<reference ref="718999757"/>
|
||||
<reference ref="122014713"/>
|
||||
<reference ref="798358360"/>
|
||||
</array>
|
||||
<integer value="0" key="rowType"/>
|
||||
<array class="NSMutableArray" key="subrows"/>
|
||||
</dictionary>
|
||||
</array>
|
||||
</dictionary>
|
||||
</array>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="NSRuleEditorSlices">
|
||||
<reference ref="939521342"/>
|
||||
<reference ref="838952732"/>
|
||||
<reference ref="356804940"/>
|
||||
<reference ref="460920540"/>
|
||||
<reference ref="629602464"/>
|
||||
</array>
|
||||
<array key="NSPredicateTemplates">
|
||||
<reference ref="171372468"/>
|
||||
<reference ref="626549045"/>
|
||||
<reference ref="450238823"/>
|
||||
</array>
|
||||
<nil key="NSPredicateEditorPredicate"/>
|
||||
</object>
|
||||
@@ -1862,7 +2062,7 @@
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSView" id="73349307">
|
||||
<reference key="NSNextResponder" ref="196312022"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSButton" id="872974531">
|
||||
<reference key="NSNextResponder" ref="73349307"/>
|
||||
@@ -1870,6 +2070,7 @@
|
||||
<string key="NSFrame">{{9, 11}, {25, 25}}</string>
|
||||
<reference key="NSSuperview" ref="73349307"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="738552837"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="556816448">
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
@@ -4145,6 +4346,7 @@
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="171372468"/>
|
||||
<reference ref="626549045"/>
|
||||
<reference ref="450238823"/>
|
||||
</array>
|
||||
<reference key="parent" ref="869316024"/>
|
||||
</object>
|
||||
@@ -4166,8 +4368,8 @@
|
||||
<int key="objectID">1057</int>
|
||||
<reference key="object" ref="586880274"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="232834514"/>
|
||||
<reference ref="540884058"/>
|
||||
<reference ref="186315633"/>
|
||||
<reference ref="477727226"/>
|
||||
</array>
|
||||
<reference key="parent" ref="626549045"/>
|
||||
</object>
|
||||
@@ -4175,43 +4377,11 @@
|
||||
<int key="objectID">1058</int>
|
||||
<reference key="object" ref="454623134"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="978983751"/>
|
||||
<reference ref="531788973"/>
|
||||
<reference ref="756867223"/>
|
||||
<reference ref="254043602"/>
|
||||
<reference ref="46876958"/>
|
||||
<reference ref="637036835"/>
|
||||
</array>
|
||||
<reference key="parent" ref="626549045"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1060</int>
|
||||
<reference key="object" ref="978983751"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1063</int>
|
||||
<reference key="object" ref="531788973"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1071</int>
|
||||
<reference key="object" ref="232834514"/>
|
||||
<reference key="parent" ref="586880274"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1072</int>
|
||||
<reference key="object" ref="540884058"/>
|
||||
<reference key="parent" ref="586880274"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1073</int>
|
||||
<reference key="object" ref="756867223"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1074</int>
|
||||
<reference key="object" ref="254043602"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1309</int>
|
||||
<reference key="object" ref="196312022"/>
|
||||
@@ -4512,6 +4682,61 @@
|
||||
<reference key="object" ref="216021672"/>
|
||||
<reference key="parent" ref="738552837"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1346</int>
|
||||
<reference key="object" ref="46876958"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1347</int>
|
||||
<reference key="object" ref="637036835"/>
|
||||
<reference key="parent" ref="454623134"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1348</int>
|
||||
<reference key="object" ref="186315633"/>
|
||||
<reference key="parent" ref="586880274"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1349</int>
|
||||
<reference key="object" ref="477727226"/>
|
||||
<reference key="parent" ref="586880274"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1350</int>
|
||||
<reference key="object" ref="450238823"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="830052663"/>
|
||||
<reference ref="542577028"/>
|
||||
</array>
|
||||
<reference key="parent" ref="407607490"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1351</int>
|
||||
<reference key="object" ref="830052663"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="845117556"/>
|
||||
</array>
|
||||
<reference key="parent" ref="450238823"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1355</int>
|
||||
<reference key="object" ref="542577028"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="112417180"/>
|
||||
</array>
|
||||
<reference key="parent" ref="450238823"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1359</int>
|
||||
<reference key="object" ref="112417180"/>
|
||||
<reference key="parent" ref="542577028"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1366</int>
|
||||
<reference key="object" ref="845117556"/>
|
||||
<reference key="parent" ref="830052663"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -4529,12 +4754,6 @@
|
||||
<string key="106.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<integer value="1" key="106.ImportedFromIB2"/>
|
||||
<string key="106.editorWindowContentRectSynchronizationRect">{{596, 852}, {216, 23}}</string>
|
||||
<string key="1060.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1063.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1071.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1072.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1073.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1074.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="111.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<integer value="1" key="111.ImportedFromIB2"/>
|
||||
<string key="112.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@@ -4799,7 +5018,7 @@
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">1345</int>
|
||||
<int key="maxID">1366</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
||||
Reference in New Issue
Block a user