From a3f0096e9dfae685c2acee8d112873f504249113 Mon Sep 17 00:00:00 2001 From: daboe01 Date: Sun, 8 Mar 2026 18:57:34 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20cappucci?= =?UTF-8?q?no/cappuccino@28303a789362ae1449695f2eec12751efcc30e32=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppKit/Browser.environment/AppKit.sj | 987 +++++++++++++++++- .../AppKit/CommonJS.environment/AppKit.sj | 987 +++++++++++++++++- .../CPTreeControllerTest/AppController.j | 153 +++ Resources/CPTreeControllerTest/Info.plist | 12 + Resources/CPTreeControllerTest/Jakefile | 93 ++ .../CPTreeControllerTest/index-debug.html | 204 ++++ Resources/CPTreeControllerTest/index.html | 167 +++ Resources/CPTreeControllerTest/main.j | 18 + Resources/recipes.txt | 287 ++--- 9 files changed, 2679 insertions(+), 229 deletions(-) create mode 100644 Resources/CPTreeControllerTest/AppController.j create mode 100644 Resources/CPTreeControllerTest/Info.plist create mode 100644 Resources/CPTreeControllerTest/Jakefile create mode 100644 Resources/CPTreeControllerTest/index-debug.html create mode 100644 Resources/CPTreeControllerTest/index.html create mode 100644 Resources/CPTreeControllerTest/main.j diff --git a/Frameworks/AppKit/Browser.environment/AppKit.sj b/Frameworks/AppKit/Browser.environment/AppKit.sj index aba1fe709..a3027418b 100644 --- a/Frameworks/AppKit/Browser.environment/AppKit.sj +++ b/Frameworks/AppKit/Browser.environment/AppKit.sj @@ -3261,7 +3261,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("invalidateCurrentToolT ,["Class","unsigned"])]); } -p;8;AppKit.jt;5709;@STATIC;1.0;i;17;_CPObject+Theme.ji;12;_CPToolTip.ji;9;CALayer.ji;12;CGGeometry.ji;17;CPAccordionView.ji;9;CPAlert.ji;13;CPAnimation.ji;20;CPAnimationContext.ji;14;CPAppearance.ji;15;CPApplication.ji;19;CPArrayController.ji;14;CPBezierPath.ji;7;CPBox.ji;11;CPBrowser.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;23;CPCibBindingConnector.ji;16;CPCibConnector.ji;23;CPCibControlConnector.ji;20;CPCibHelpConnector.ji;14;CPCibLoading.ji;22;CPCibOutletConnector.ji;33;CPCibRuntimeAttributesConnector.ji;12;CPClipView.ji;18;CPCollectionView.ji;22;CPCollectionViewItem.ji;9;CPColor.ji;14;CPColorPanel.ji;14;CPColorSpace.ji;13;CPColorWell.ji;12;CPComboBox.ji;17;CPCompatibility.ji;11;CPControl.ji;14;CPController.ji;10;CPCookie.ji;10;CPCursor.ji;14;CPDatePicker.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGradient.ji;12;CPGraphics.ji;9;CPImage.ji;13;CPImageView.ji;14;CPKeyBinding.ji;18;CPLevelIndicator.ji;8;CPMenu.ji;12;CPMenuItem.ji;13;CPOpenPanel.ji;15;CPOutlineView.ji;9;CPPanel.ji;14;CPPasteboard.ji;11;CPPopover.ji;15;CPPopUpButton.ji;19;CPPredicateEditor.ji;30;CPPredicateEditorRowTemplate.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPRuleEditor.ji;12;CPScroller.ji;14;CPScrollView.ji;15;CPSearchField.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;9;CPSound.ji;13;CPSplitView.ji;11;CPStepper.ji;15;CPTableColumn.ji;13;CPTableView.ji;11;CPTabView.ji;8;CPText.ji;13;CPTextField.ji;12;CPTextView.ji;14;CPTokenField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;16;CPTrackingArea.ji;12;CPTreeNode.ji;26;CPUserDefaultsController.ji;8;CPView.ji;16;CPViewAnimator.ji;17;CPViewAnimation.ji;18;CPViewController.ji;20;CPVisualEffectView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.ji;13;CPWorkspace.ji;13;CPFontPanel.jt;3860;objj_executeFile("_CPObject+Theme.j", YES);objj_executeFile("_CPToolTip.j", YES);objj_executeFile("CALayer.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CPAccordionView.j", YES);objj_executeFile("CPAlert.j", YES);objj_executeFile("CPAnimation.j", YES);objj_executeFile("CPAnimationContext.j", YES);objj_executeFile("CPAppearance.j", YES);objj_executeFile("CPApplication.j", YES);objj_executeFile("CPArrayController.j", YES);objj_executeFile("CPBezierPath.j", YES);objj_executeFile("CPBox.j", YES);objj_executeFile("CPBrowser.j", YES);objj_executeFile("CPButton.j", YES);objj_executeFile("CPButtonBar.j", YES);objj_executeFile("CPCheckBox.j", YES);objj_executeFile("CPCib.j", YES);objj_executeFile("CPCibBindingConnector.j", YES);objj_executeFile("CPCibConnector.j", YES);objj_executeFile("CPCibControlConnector.j", YES);objj_executeFile("CPCibHelpConnector.j", YES);objj_executeFile("CPCibLoading.j", YES);objj_executeFile("CPCibOutletConnector.j", YES);objj_executeFile("CPCibRuntimeAttributesConnector.j", YES);objj_executeFile("CPClipView.j", YES);objj_executeFile("CPCollectionView.j", YES);objj_executeFile("CPCollectionViewItem.j", YES);objj_executeFile("CPColor.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPColorSpace.j", YES);objj_executeFile("CPColorWell.j", YES);objj_executeFile("CPComboBox.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPControl.j", YES);objj_executeFile("CPController.j", YES);objj_executeFile("CPCookie.j", YES);objj_executeFile("CPCursor.j", YES);objj_executeFile("CPDatePicker.j", YES);objj_executeFile("CPDocument.j", YES);objj_executeFile("CPDocumentController.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPFont.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPGradient.j", YES);objj_executeFile("CPGraphics.j", YES);objj_executeFile("CPImage.j", YES);objj_executeFile("CPImageView.j", YES);objj_executeFile("CPKeyBinding.j", YES);objj_executeFile("CPLevelIndicator.j", YES);objj_executeFile("CPMenu.j", YES);objj_executeFile("CPMenuItem.j", YES);objj_executeFile("CPOpenPanel.j", YES);objj_executeFile("CPOutlineView.j", YES);objj_executeFile("CPPanel.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPopover.j", YES);objj_executeFile("CPPopUpButton.j", YES);objj_executeFile("CPPredicateEditor.j", YES);objj_executeFile("CPPredicateEditorRowTemplate.j", YES);objj_executeFile("CPProgressIndicator.j", YES);objj_executeFile("CPRadio.j", YES);objj_executeFile("CPResponder.j", YES);objj_executeFile("CPRuleEditor.j", YES);objj_executeFile("CPScroller.j", YES);objj_executeFile("CPScrollView.j", YES);objj_executeFile("CPSearchField.j", YES);objj_executeFile("CPSecureTextField.j", YES);objj_executeFile("CPSegmentedControl.j", YES);objj_executeFile("CPShadow.j", YES);objj_executeFile("CPSlider.j", YES);objj_executeFile("CPSound.j", YES);objj_executeFile("CPSplitView.j", YES);objj_executeFile("CPStepper.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);objj_executeFile("CPTabView.j", YES);objj_executeFile("CPText.j", YES);objj_executeFile("CPTextField.j", YES);objj_executeFile("CPTextView.j", YES);objj_executeFile("CPTokenField.j", YES);objj_executeFile("CPToolbar.j", YES);objj_executeFile("CPToolbarItem.j", YES);objj_executeFile("CPTrackingArea.j", YES);objj_executeFile("CPTreeNode.j", YES);objj_executeFile("CPUserDefaultsController.j", YES);objj_executeFile("CPView.j", YES);objj_executeFile("CPViewAnimator.j", YES);objj_executeFile("CPViewAnimation.j", YES);objj_executeFile("CPViewController.j", YES);objj_executeFile("CPVisualEffectView.j", YES);objj_executeFile("CPWebView.j", YES);objj_executeFile("CPWindow.j", YES);objj_executeFile("CPWindowController.j", YES);objj_executeFile("CPWorkspace.j", YES);objj_executeFile("CPFontPanel.j", YES);p;17;CPAccordionView.jt;22553;@STATIC;1.0;I;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;32;Foundation/CPKeyValueObserving.jI;23;Foundation/CPIndexSet.jI;21;Foundation/CPString.ji;8;CPView.ji;10;CPButton.jt;22364;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPKeyValueObserving.j", NO);objj_executeFile("Foundation/CPIndexSet.j", NO);objj_executeFile("Foundation/CPString.j", NO);objj_executeFile("CPView.j", YES);objj_executeFile("CPButton.j", YES); +p;8;AppKit.jt;5776;@STATIC;1.0;i;17;_CPObject+Theme.ji;12;_CPToolTip.ji;9;CALayer.ji;12;CGGeometry.ji;17;CPAccordionView.ji;9;CPAlert.ji;13;CPAnimation.ji;20;CPAnimationContext.ji;14;CPAppearance.ji;15;CPApplication.ji;19;CPArrayController.ji;14;CPBezierPath.ji;7;CPBox.ji;11;CPBrowser.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;23;CPCibBindingConnector.ji;16;CPCibConnector.ji;23;CPCibControlConnector.ji;20;CPCibHelpConnector.ji;14;CPCibLoading.ji;22;CPCibOutletConnector.ji;33;CPCibRuntimeAttributesConnector.ji;12;CPClipView.ji;18;CPCollectionView.ji;22;CPCollectionViewItem.ji;9;CPColor.ji;14;CPColorPanel.ji;14;CPColorSpace.ji;13;CPColorWell.ji;12;CPComboBox.ji;17;CPCompatibility.ji;11;CPControl.ji;14;CPController.ji;10;CPCookie.ji;10;CPCursor.ji;14;CPDatePicker.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGradient.ji;12;CPGraphics.ji;9;CPImage.ji;13;CPImageView.ji;14;CPKeyBinding.ji;18;CPLevelIndicator.ji;8;CPMenu.ji;12;CPMenuItem.ji;13;CPOpenPanel.ji;15;CPOutlineView.ji;9;CPPanel.ji;14;CPPasteboard.ji;11;CPPopover.ji;15;CPPopUpButton.ji;19;CPPredicateEditor.ji;30;CPPredicateEditorRowTemplate.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPRuleEditor.ji;12;CPScroller.ji;14;CPScrollView.ji;15;CPSearchField.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;9;CPSound.ji;13;CPSplitView.ji;11;CPStepper.ji;15;CPTableColumn.ji;13;CPTableView.ji;11;CPTabView.ji;8;CPText.ji;13;CPTextField.ji;12;CPTextView.ji;14;CPTokenField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;16;CPTrackingArea.ji;12;CPTreeNode.ji;26;CPUserDefaultsController.ji;8;CPView.ji;16;CPViewAnimator.ji;17;CPViewAnimation.ji;18;CPViewController.ji;20;CPVisualEffectView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.ji;13;CPWorkspace.ji;13;CPFontPanel.ji;18;CPTreeController.jt;3904;objj_executeFile("_CPObject+Theme.j", YES);objj_executeFile("_CPToolTip.j", YES);objj_executeFile("CALayer.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CPAccordionView.j", YES);objj_executeFile("CPAlert.j", YES);objj_executeFile("CPAnimation.j", YES);objj_executeFile("CPAnimationContext.j", YES);objj_executeFile("CPAppearance.j", YES);objj_executeFile("CPApplication.j", YES);objj_executeFile("CPArrayController.j", YES);objj_executeFile("CPBezierPath.j", YES);objj_executeFile("CPBox.j", YES);objj_executeFile("CPBrowser.j", YES);objj_executeFile("CPButton.j", YES);objj_executeFile("CPButtonBar.j", YES);objj_executeFile("CPCheckBox.j", YES);objj_executeFile("CPCib.j", YES);objj_executeFile("CPCibBindingConnector.j", YES);objj_executeFile("CPCibConnector.j", YES);objj_executeFile("CPCibControlConnector.j", YES);objj_executeFile("CPCibHelpConnector.j", YES);objj_executeFile("CPCibLoading.j", YES);objj_executeFile("CPCibOutletConnector.j", YES);objj_executeFile("CPCibRuntimeAttributesConnector.j", YES);objj_executeFile("CPClipView.j", YES);objj_executeFile("CPCollectionView.j", YES);objj_executeFile("CPCollectionViewItem.j", YES);objj_executeFile("CPColor.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPColorSpace.j", YES);objj_executeFile("CPColorWell.j", YES);objj_executeFile("CPComboBox.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPControl.j", YES);objj_executeFile("CPController.j", YES);objj_executeFile("CPCookie.j", YES);objj_executeFile("CPCursor.j", YES);objj_executeFile("CPDatePicker.j", YES);objj_executeFile("CPDocument.j", YES);objj_executeFile("CPDocumentController.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPFont.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPGradient.j", YES);objj_executeFile("CPGraphics.j", YES);objj_executeFile("CPImage.j", YES);objj_executeFile("CPImageView.j", YES);objj_executeFile("CPKeyBinding.j", YES);objj_executeFile("CPLevelIndicator.j", YES);objj_executeFile("CPMenu.j", YES);objj_executeFile("CPMenuItem.j", YES);objj_executeFile("CPOpenPanel.j", YES);objj_executeFile("CPOutlineView.j", YES);objj_executeFile("CPPanel.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPopover.j", YES);objj_executeFile("CPPopUpButton.j", YES);objj_executeFile("CPPredicateEditor.j", YES);objj_executeFile("CPPredicateEditorRowTemplate.j", YES);objj_executeFile("CPProgressIndicator.j", YES);objj_executeFile("CPRadio.j", YES);objj_executeFile("CPResponder.j", YES);objj_executeFile("CPRuleEditor.j", YES);objj_executeFile("CPScroller.j", YES);objj_executeFile("CPScrollView.j", YES);objj_executeFile("CPSearchField.j", YES);objj_executeFile("CPSecureTextField.j", YES);objj_executeFile("CPSegmentedControl.j", YES);objj_executeFile("CPShadow.j", YES);objj_executeFile("CPSlider.j", YES);objj_executeFile("CPSound.j", YES);objj_executeFile("CPSplitView.j", YES);objj_executeFile("CPStepper.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);objj_executeFile("CPTabView.j", YES);objj_executeFile("CPText.j", YES);objj_executeFile("CPTextField.j", YES);objj_executeFile("CPTextView.j", YES);objj_executeFile("CPTokenField.j", YES);objj_executeFile("CPToolbar.j", YES);objj_executeFile("CPToolbarItem.j", YES);objj_executeFile("CPTrackingArea.j", YES);objj_executeFile("CPTreeNode.j", YES);objj_executeFile("CPUserDefaultsController.j", YES);objj_executeFile("CPView.j", YES);objj_executeFile("CPViewAnimator.j", YES);objj_executeFile("CPViewAnimation.j", YES);objj_executeFile("CPViewController.j", YES);objj_executeFile("CPVisualEffectView.j", YES);objj_executeFile("CPWebView.j", YES);objj_executeFile("CPWindow.j", YES);objj_executeFile("CPWindowController.j", YES);objj_executeFile("CPWorkspace.j", YES);objj_executeFile("CPFontPanel.j", YES);objj_executeFile("CPTreeController.j", YES);p;17;CPAccordionView.jt;22553;@STATIC;1.0;I;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;32;Foundation/CPKeyValueObserving.jI;23;Foundation/CPIndexSet.jI;21;Foundation/CPString.ji;8;CPView.ji;10;CPButton.jt;22364;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPKeyValueObserving.j", NO);objj_executeFile("Foundation/CPIndexSet.j", NO);objj_executeFile("Foundation/CPString.j", NO);objj_executeFile("CPView.j", YES);objj_executeFile("CPButton.j", YES); {var the_class = objj_allocateClassPair(CPObject, "CPAccordionViewItem"), meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier", "CPString"), new objj_ivar("_view", "CPView"), new objj_ivar("_label", "CPString")]);objj_registerClassPair(the_class); class_addMethods(the_class, [new objj_method(sel_getUid("identifier"), function $CPAccordionViewItem__identifier(self, _cmd) @@ -21506,7 +21506,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("openPanel"), function ,["id"])]); } -p;15;CPOutlineView.jt;113868;@STATIC;1.0;i;10;CPButton.ji;15;CPTableColumn.ji;13;CPTableView.jt;113794;objj_executeFile("CPButton.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);CPOutlineViewColumnDidMoveNotification = "CPOutlineViewColumnDidMoveNotification"; +p;15;CPOutlineView.jt;130946;@STATIC;1.0;i;10;CPButton.ji;15;CPTableColumn.ji;13;CPTableView.jt;130872;objj_executeFile("CPButton.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);CPOutlineViewColumnDidMoveNotification = "CPOutlineViewColumnDidMoveNotification"; CPOutlineViewColumnDidResizeNotification = "CPOutlineViewColumnDidResizeNotification"; CPOutlineViewItemDidCollapseNotification = "CPOutlineViewItemDidCollapseNotification"; CPOutlineViewItemDidExpandNotification = "CPOutlineViewItemDidExpandNotification"; @@ -21845,15 +21845,23 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct (self.isa.method_msgSend["reloadItem:reloadChildren:"] || _objj_forward)(self, "reloadItem:reloadChildren:", anItem, NO); } -,["void","id"]), new objj_method(sel_getUid("reloadItem:reloadChildren:"), function $CPOutlineView__reloadItem_reloadChildren_(self, _cmd, anItem, shouldReloadChildren) +,["void","id"]), new objj_method(sel_getUid("_numberOfRows"), function $CPOutlineView___numberOfRows(self, _cmd) +{ + return self._itemsForRows ? self._itemsForRows.length : 0; +} + +,["int"]), new objj_method(sel_getUid("reloadItem:reloadChildren:"), function $CPOutlineView__reloadItem_reloadChildren_(self, _cmd, anItem, shouldReloadChildren) { self._pendingItemToClean = []; self._itemAddedDuringLastLoading = []; + var previousRowCount = self._itemsForRows.length; if (!!shouldReloadChildren || !anItem) (self.isa.method_msgSend["_loadItemInfoForItem:intermediate:"] || _objj_forward)(self, "_loadItemInfoForItem:intermediate:", anItem, NO); else (self.isa.method_msgSend["_reloadItem:"] || _objj_forward)(self, "_reloadItem:", anItem); (self.isa.method_msgSend["_cleanPendingItem"] || _objj_forward)(self, "_cleanPendingItem"); + if (self._itemsForRows.length !== previousRowCount) + (self.isa.method_msgSend["noteNumberOfRowsChanged"] || _objj_forward)(self, "noteNumberOfRowsChanged"); (objj_getClass("CPOutlineView").super_class.method_dtable["_reloadDataViews"] || _objj_forward)(self, "_reloadDataViews"); } @@ -21890,8 +21898,17 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct var children = itemInfo.children; for (var i = (previousItems == null ? previousItems : (previousItems.isa.method_msgSend["count"] || _objj_forward)(previousItems, "count")) - 1; i >= 0; i--) { - var item = previousItems[i]; - if (!(children == null ? children : (children.isa.method_msgSend["containsObject:"] || _objj_forward)(children, "containsObject:", item))) + var item = previousItems[i], + found = NO; + for (var j = 0, count = children.length; j < count; j++) + { + if (children[j] === item) + { + found = YES; + break; + } + } + if (!found) (self.isa.method_msgSend["_addPendingItem:"] || _objj_forward)(self, "_addPendingItem:", item); } } @@ -21902,7 +21919,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct if (!itemInfo) return; var children = itemInfo.children; - for (var i = (children == null ? children : (children.isa.method_msgSend["count"] || _objj_forward)(children, "count")); i >= 0; i--) + for (var i = children.length - 1; i >= 0; i--) { var child = children[i]; (self.isa.method_msgSend["_addPendingItem:"] || _objj_forward)(self, "_addPendingItem:", child); @@ -21913,7 +21930,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct ,["void","id"]), new objj_method(sel_getUid("_cleanPendingItem"), function $CPOutlineView___cleanPendingItem(self, _cmd) { - for (var i = ((___r1 = self._pendingItemToClean), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); i >= 0; i--) + for (var i = ((___r1 = self._pendingItemToClean), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) - 1; i >= 0; i--) { var item = self._pendingItemToClean[i]; if (!((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["containsObject:"] || _objj_forward)(___r1, "containsObject:", item))) @@ -21946,7 +21963,8 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct } var weight = itemInfo.weight, descendants = anItem ? [anItem] : []; - ((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObject:"] || _objj_forward)(___r1, "addObject:", anItem)); + if (anItem) + ((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObject:"] || _objj_forward)(___r1, "addObject:", anItem)); if (itemInfo.isExpanded && (self.isa.method_msgSend["_sendDataSourceShouldDeferDisplayingChildrenOfItem:"] || _objj_forward)(self, "_sendDataSourceShouldDeferDisplayingChildrenOfItem:", anItem)) { var index = 0, @@ -22045,7 +22063,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct if (!itemInfo) return nil; var parent = itemInfo.parent; - if (itemInfo[(parent == null ? parent : (parent.isa.method_msgSend["UID"] || _objj_forward)(parent, "UID"))] === self._rootItemInfo) + if (parent && self._itemInfosForItems[(parent == null ? parent : (parent.isa.method_msgSend["UID"] || _objj_forward)(parent, "UID"))] === self._rootItemInfo) parent = nil; return parent; } @@ -22873,6 +22891,226 @@ var colorForDisclosureTriangle = function(isSelected, isHighlighted) { return isSelected ? isHighlighted ? (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.9, 1.0) : (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 1.0, 1.0) : isHighlighted ? (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.4, 1.0) : (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.5, 1.0); }; +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPOutlineView\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("selectionIndexPaths"), function $CPOutlineView__selectionIndexPaths(self, _cmd) +{ + var indexes = (self.isa.method_msgSend["selectedRowIndexes"] || _objj_forward)(self, "selectedRowIndexes"), + paths = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + index = (indexes == null ? indexes : (indexes.isa.method_msgSend["firstIndex"] || _objj_forward)(indexes, "firstIndex")); + while (index !== CPNotFound) + { + var item = (self.isa.method_msgSend["itemAtRow:"] || _objj_forward)(self, "itemAtRow:", index); + if ((item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("indexPath")))) + (paths == null ? paths : (paths.isa.method_msgSend["addObject:"] || _objj_forward)(paths, "addObject:", (item == null ? item : (item.isa.method_msgSend["indexPath"] || _objj_forward)(item, "indexPath")))); + index = (indexes == null ? indexes : (indexes.isa.method_msgSend["indexGreaterThanIndex:"] || _objj_forward)(indexes, "indexGreaterThanIndex:", index)); + } + return paths; +} + +,["CPArray"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPOutlineView__initialize(self, _cmd) +{ + if (self !== (CPOutlineView.isa.method_msgSend["class"] || _objj_forward)(CPOutlineView, "class")) + return; + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "content"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "selectionIndexPaths"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "sortDescriptors"); +} + +,["void"])]); +} +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPOutlineView\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("content"), function $CPOutlineView__content(self, _cmd) +{ + return nil; +} + +,["id"]), new objj_method(sel_getUid("setContent:"), function $CPOutlineView__setContent_(self, _cmd, aContent) +{ +} + +,["void","id"]), new objj_method(sel_getUid("setSelectionIndexPaths:"), function $CPOutlineView__setSelectionIndexPaths_(self, _cmd, paths) +{ +} + +,["void","CPArray"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_binderClassForBinding:"), function $CPOutlineView___binderClassForBinding_(self, _cmd, aBinding) +{ + if (aBinding === "content") + return (_CPOutlineViewContentBinder == null ? _CPOutlineViewContentBinder : (_CPOutlineViewContentBinder.isa.method_msgSend["class"] || _objj_forward)(_CPOutlineViewContentBinder, "class")); + if (aBinding === "selectionIndexPaths") + return (_CPOutlineViewSelectionIndexPathsBinder == null ? _CPOutlineViewSelectionIndexPathsBinder : (_CPOutlineViewSelectionIndexPathsBinder.isa.method_msgSend["class"] || _objj_forward)(_CPOutlineViewSelectionIndexPathsBinder, "class")); + return (objj_getMetaClass("CPOutlineView").super_class.method_dtable["_binderClassForBinding:"] || _objj_forward)(self, "_binderClassForBinding:", aBinding); +} + +,["Class","CPString"])]); +} + +{var the_class = objj_allocateClassPair(CPBinder, "_CPOutlineViewContentBinder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_rootNode", "CPTreeNode")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("bind"), function $_CPOutlineViewContentBinder__bind(self, _cmd) +{ + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", self)); + (objj_getClass("_CPOutlineViewContentBinder").super_class.method_dtable["bind"] || _objj_forward)(self, "bind"); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("unbind"), function $_CPOutlineViewContentBinder__unbind(self, _cmd) +{ + if (((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["dataSource"] || _objj_forward)(___r1, "dataSource")) === self) + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", nil)); + (objj_getClass("_CPOutlineViewContentBinder").super_class.method_dtable["unbind"] || _objj_forward)(self, "unbind"); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("setValueFor:"), function $_CPOutlineViewContentBinder__setValueFor_(self, _cmd, aBinding) +{ + var destination = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedObjectKey)), + keyPath = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedKeyPathKey)), + value = (destination == null ? destination : (destination.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(destination, "valueForKeyPath:", keyPath)); + if (!value || !(value == null ? value : (value.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(value, "isKindOfClass:", (CPTreeNode == null ? CPTreeNode : (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class"))))) + self._rootNode = ((___r1 = (CPTreeNode == null ? CPTreeNode : (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + else + self._rootNode = value; + if (((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["dataSource"] || _objj_forward)(___r1, "dataSource")) !== self) + { + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", self)); + } + else + { + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["reloadData"] || _objj_forward)(___r1, "reloadData")); + } + var ___r1; +} + +,["void","CPString"]), new objj_method(sel_getUid("rootNode"), function $_CPOutlineViewContentBinder__rootNode(self, _cmd) +{ + return self._rootNode; +} + +,["CPTreeNode"]), new objj_method(sel_getUid("outlineView:child:ofItem:"), function $_CPOutlineViewContentBinder__outlineView_child_ofItem_(self, _cmd, outlineView, index, item) +{ + var node = item || self._rootNode; + return ((___r1 = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", index)); + var ___r1; +} + +,["id","CPOutlineView","CPInteger","id"]), new objj_method(sel_getUid("outlineView:isItemExpandable:"), function $_CPOutlineViewContentBinder__outlineView_isItemExpandable_(self, _cmd, outlineView, item) +{ + var node = item || self._rootNode; + return !(node == null ? node : (node.isa.method_msgSend["isLeaf"] || _objj_forward)(node, "isLeaf")); +} + +,["BOOL","CPOutlineView","id"]), new objj_method(sel_getUid("outlineView:numberOfChildrenOfItem:"), function $_CPOutlineViewContentBinder__outlineView_numberOfChildrenOfItem_(self, _cmd, outlineView, item) +{ + var node = item || self._rootNode; + return ((___r1 = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + var ___r1; +} + +,["int","CPOutlineView","id"]), new objj_method(sel_getUid("outlineView:objectValueForTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_objectValueForTableColumn_byItem_(self, _cmd, outlineView, tableColumn, item) +{ + if ((item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject")))) + return (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")); + return item; +} + +,["id","CPOutlineView","CPTableColumn","id"])]); +} + +{var the_class = objj_allocateClassPair(CPBinder, "_CPOutlineViewSelectionIndexPathsBinder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isSyncingFromModel", "BOOL")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithBinding:name:to:keyPath:options:from:"), function $_CPOutlineViewSelectionIndexPathsBinder__initWithBinding_name_to_keyPath_options_from_(self, _cmd, aBinding, aName, aDestination, aKeyPath, options, aSource) +{ + self = (objj_getClass("_CPOutlineViewSelectionIndexPathsBinder").super_class.method_dtable["initWithBinding:name:to:keyPath:options:from:"] || _objj_forward)(self, "initWithBinding:name:to:keyPath:options:from:", aBinding, aName, aDestination, aKeyPath, options, aSource); + ((___r1 = (CPNotificationCenter.isa.method_msgSend["defaultCenter"] || _objj_forward)(CPNotificationCenter, "defaultCenter")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObserver:selector:name:object:"] || _objj_forward)(___r1, "addObserver:selector:name:object:", self, sel_getUid("outlineViewSelectionDidChange:"), CPOutlineViewSelectionDidChangeNotification, aSource)); + var ___r1; +} + +,["id","CPString","CPString","id","CPString","CPDictionary","id"]), new objj_method(sel_getUid("setValueFor:"), function $_CPOutlineViewSelectionIndexPathsBinder__setValueFor_(self, _cmd, aBinding) +{ + self._isSyncingFromModel = YES; + var destination = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedObjectKey)), + keyPath = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedKeyPathKey)), + indexPaths = (destination == null ? destination : (destination.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(destination, "valueForKeyPath:", keyPath)) || [], + indexes = (CPMutableIndexSet.isa.method_msgSend["indexSet"] || _objj_forward)(CPMutableIndexSet, "indexSet"); + var rootNode = (destination == null ? destination : (destination.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(destination, "respondsToSelector:", sel_getUid("arrangedObjects"))) ? (destination == null ? destination : (destination.isa.method_msgSend["arrangedObjects"] || _objj_forward)(destination, "arrangedObjects")) : nil; + if (rootNode) + { + for (var i = 0, count = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["count"] || _objj_forward)(indexPaths, "count")); i < count; i++) + { + var item = (rootNode == null ? rootNode : (rootNode.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(rootNode, "descendantNodeAtIndexPath:", (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(indexPaths, "objectAtIndex:", i)))); + if (item) + { + var parentsToExpand = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + parent = (item == null ? item : (item.isa.method_msgSend["parentNode"] || _objj_forward)(item, "parentNode")); + while (parent && parent !== rootNode) + { + (parentsToExpand == null ? parentsToExpand : (parentsToExpand.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(parentsToExpand, "insertObject:atIndex:", parent, 0)); + parent = (parent == null ? parent : (parent.isa.method_msgSend["parentNode"] || _objj_forward)(parent, "parentNode")); + } + for (var j = 0; j < (parentsToExpand == null ? parentsToExpand : (parentsToExpand.isa.method_msgSend["count"] || _objj_forward)(parentsToExpand, "count")); j++) + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["expandItem:"] || _objj_forward)(___r1, "expandItem:", parentsToExpand[j])); + var row = ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["rowForItem:"] || _objj_forward)(___r1, "rowForItem:", item)); + if (row !== CPNotFound && row >= 0) + (indexes == null ? indexes : (indexes.isa.method_msgSend["addIndex:"] || _objj_forward)(indexes, "addIndex:", row)); + } + } + } + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["selectRowIndexes:byExtendingSelection:"] || _objj_forward)(___r1, "selectRowIndexes:byExtendingSelection:", indexes, NO)); + self._isSyncingFromModel = NO; + var ___r1; +} + +,["void","CPString"]), new objj_method(sel_getUid("outlineViewSelectionDidChange:"), function $_CPOutlineViewSelectionIndexPathsBinder__outlineViewSelectionDidChange_(self, _cmd, note) +{ + if (self._isSyncingFromModel) + return; + (self.isa.method_msgSend["reverseSetValueFor:"] || _objj_forward)(self, "reverseSetValueFor:", "selectionIndexPaths"); +} + +,["void","CPNotification"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("unbind:forObject:"), function $_CPOutlineViewSelectionIndexPathsBinder__unbind_forObject_(self, _cmd, aBinding, anObject) +{ + if (aBinding === "selectionIndexPaths") + ((___r1 = (CPNotificationCenter.isa.method_msgSend["defaultCenter"] || _objj_forward)(CPNotificationCenter, "defaultCenter")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObserver:name:object:"] || _objj_forward)(___r1, "removeObserver:name:object:", self, CPOutlineViewSelectionDidChangeNotification, anObject)); + (objj_getMetaClass("_CPOutlineViewSelectionIndexPathsBinder").super_class.method_dtable["unbind:forObject:"] || _objj_forward)(self, "unbind:forObject:", aBinding, anObject); + var ___r1; +} + +,["void","CPString","id"])]); +} +{ +var the_class = objj_getClass("_CPOutlineViewContentBinder") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"_CPOutlineViewContentBinder\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("outlineView:objectValueForTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_objectValueForTableColumn_byItem_(self, _cmd, outlineView, tableColumn, item) +{ + var rep = (item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject"))) ? (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")) : item; + if (rep && (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier"))) + return (rep == null ? rep : (rep.isa.method_msgSend["valueForKey:"] || _objj_forward)(rep, "valueForKey:", (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier")))); + return rep; +} + +,["id","CPOutlineView","CPTableColumn","id"]), new objj_method(sel_getUid("outlineView:setObjectValue:forTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_setObjectValue_forTableColumn_byItem_(self, _cmd, outlineView, value, tableColumn, item) +{ + var rep = (item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject"))) ? (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")) : item; + if (rep && (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier"))) + (rep == null ? rep : (rep.isa.method_msgSend["setValue:forKey:"] || _objj_forward)(rep, "setValue:forKey:", value, (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier")))); +} + +,["void","CPOutlineView","id","CPTableColumn","id"]), new objj_method(sel_getUid("content"), function $_CPOutlineViewContentBinder__content(self, _cmd) +{ + if (self._source && self._source._itemsForRows) + return self._source._itemsForRows; + return []; +} + +,["id"])]); +} p;9;CPPanel.jt;2993;@STATIC;1.0;i;10;CPWindow.jt;2959;objj_executeFile("CPWindow.j", YES);CPOKButton = 1; CPCancelButton = 0; CPDocModalWindowMask = 1 << 6; @@ -44337,7 +44575,635 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_ ,["void","CPCoder"])]); } -p;12;CPTreeNode.jt;8980;@STATIC;1.0;I;21;Foundation/CPObject.jI;24;Foundation/CPIndexPath.jt;8906;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO); +p;18;CPTreeController.jt;48198;@STATIC;1.0;I;20;Foundation/CPArray.jI;24;Foundation/CPIndexPath.ji;20;CPObjectController.ji;19;CPKeyValueBinding.ji;12;CPTreeNode.jt;48058;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO);objj_executeFile("CPObjectController.j", YES);objj_executeFile("CPKeyValueBinding.j", YES);objj_executeFile("CPTreeNode.j", YES); +{var the_class = objj_allocateClassPair(CPObjectController, "CPTreeController"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_avoidsEmptySelection", "BOOL"), new objj_ivar("_preservesSelection", "BOOL"), new objj_ivar("_selectsInsertedObjects", "BOOL"), new objj_ivar("_alwaysUsesMultipleValuesMarker", "BOOL"), new objj_ivar("_childrenKeyPath", "CPString"), new objj_ivar("_countKeyPath", "CPString"), new objj_ivar("_leafKeyPath", "CPString"), new objj_ivar("_sortDescriptors", "CPArray"), new objj_ivar("_arrangedObjects", "id"), new objj_ivar("_selectionIndexPaths", "CPArray"), new objj_ivar("_disableSetContent", "BOOL")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPTreeController__init(self, _cmd) +{ + if (self = (objj_getClass("CPTreeController").super_class.method_dtable["init"] || _objj_forward)(self, "init")) + { + self._preservesSelection = YES; + self._selectsInsertedObjects = YES; + self._avoidsEmptySelection = YES; + self._alwaysUsesMultipleValuesMarker = NO; + self._childrenKeyPath = "children"; + (self == null ? self : (self.isa.method_msgSend["_init"] || _objj_forward)(self, "_init")); + } + return self; +} + +,["id"]), new objj_method(sel_getUid("_init"), function $CPTreeController___init(self, _cmd) +{ + self._sortDescriptors = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._selectionIndexPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._arrangedObjects = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("prepareContent"), function $CPTreeController__prepareContent(self, _cmd) +{ + (self.isa.method_msgSend["_setContentArray:"] || _objj_forward)(self, "_setContentArray:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject"))); +} + +,["void"]), new objj_method(sel_getUid("preservesSelection"), function $CPTreeController__preservesSelection(self, _cmd) +{ + return self._preservesSelection; +} + +,["BOOL"]), new objj_method(sel_getUid("setPreservesSelection:"), function $CPTreeController__setPreservesSelection_(self, _cmd, value) +{ + self._preservesSelection = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("selectsInsertedObjects"), function $CPTreeController__selectsInsertedObjects(self, _cmd) +{ + return self._selectsInsertedObjects; +} + +,["BOOL"]), new objj_method(sel_getUid("setSelectsInsertedObjects:"), function $CPTreeController__setSelectsInsertedObjects_(self, _cmd, value) +{ + self._selectsInsertedObjects = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("avoidsEmptySelection"), function $CPTreeController__avoidsEmptySelection(self, _cmd) +{ + return self._avoidsEmptySelection; +} + +,["BOOL"]), new objj_method(sel_getUid("setAvoidsEmptySelection:"), function $CPTreeController__setAvoidsEmptySelection_(self, _cmd, value) +{ + self._avoidsEmptySelection = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("alwaysUsesMultipleValuesMarker"), function $CPTreeController__alwaysUsesMultipleValuesMarker(self, _cmd) +{ + return self._alwaysUsesMultipleValuesMarker; +} + +,["BOOL"]), new objj_method(sel_getUid("setAlwaysUsesMultipleValuesMarker:"), function $CPTreeController__setAlwaysUsesMultipleValuesMarker_(self, _cmd, aFlag) +{ + self._alwaysUsesMultipleValuesMarker = aFlag; +} + +,["void","BOOL"]), new objj_method(sel_getUid("sortDescriptors"), function $CPTreeController__sortDescriptors(self, _cmd) +{ + return self._sortDescriptors; +} + +,["CPArray"]), new objj_method(sel_getUid("setSortDescriptors:"), function $CPTreeController__setSortDescriptors_(self, _cmd, value) +{ + if (self._sortDescriptors === value) + return; + self._sortDescriptors = (value == null ? value : (value.isa.method_msgSend["copy"] || _objj_forward)(value, "copy")); + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); +} + +,["void","CPArray"]), new objj_method(sel_getUid("childrenKeyPath"), function $CPTreeController__childrenKeyPath(self, _cmd) +{ + return self._childrenKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setChildrenKeyPath:"), function $CPTreeController__setChildrenKeyPath_(self, _cmd, aKeyPath) +{ + if (self._childrenKeyPath === aKeyPath) + return; + self._childrenKeyPath = aKeyPath; + (self.isa.method_msgSend["rearrangeObjects"] || _objj_forward)(self, "rearrangeObjects"); +} + +,["void","CPString"]), new objj_method(sel_getUid("countKeyPath"), function $CPTreeController__countKeyPath(self, _cmd) +{ + return self._countKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setCountKeyPath:"), function $CPTreeController__setCountKeyPath_(self, _cmd, aKeyPath) +{ + self._countKeyPath = aKeyPath; +} + +,["void","CPString"]), new objj_method(sel_getUid("leafKeyPath"), function $CPTreeController__leafKeyPath(self, _cmd) +{ + return self._leafKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setLeafKeyPath:"), function $CPTreeController__setLeafKeyPath_(self, _cmd, aKeyPath) +{ + self._leafKeyPath = aKeyPath; +} + +,["void","CPString"]), new objj_method(sel_getUid("childrenKeyPathForNode:"), function $CPTreeController__childrenKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["childrenKeyPath"] || _objj_forward)(self, "childrenKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("countKeyPathForNode:"), function $CPTreeController__countKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["countKeyPath"] || _objj_forward)(self, "countKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("leafKeyPathForNode:"), function $CPTreeController__leafKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["leafKeyPath"] || _objj_forward)(self, "leafKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("setContent:"), function $CPTreeController__setContent_(self, _cmd, value) +{ + if (self._disableSetContent) + return; + if (!value) + value = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + if (!(value == null ? value : (value.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(value, "isKindOfClass:", (CPArray.isa.method_msgSend["class"] || _objj_forward)(CPArray, "class")))) + value = (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", value); + var oldSelectedObjects = nil, + oldSelectionIndexPaths = nil; + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + oldSelectedObjects = (self.isa.method_msgSend["selectedObjects"] || _objj_forward)(self, "selectedObjects"); + else + oldSelectionIndexPaths = (self.isa.method_msgSend["selectionIndexPaths"] || _objj_forward)(self, "selectionIndexPaths"); + self._contentObject = value; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + (self.isa.method_msgSend["__setSelectedObjects:"] || _objj_forward)(self, "__setSelectedObjects:", oldSelectedObjects); + else + (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", oldSelectionIndexPaths, self._avoidsEmptySelection); +} + +,["void","id"]), new objj_method(sel_getUid("_setContentArray:"), function $CPTreeController___setContentArray_(self, _cmd, anArray) +{ + (self.isa.method_msgSend["setContent:"] || _objj_forward)(self, "setContent:", anArray); +} + +,["void","id"]), new objj_method(sel_getUid("contentArray"), function $CPTreeController__contentArray(self, _cmd) +{ + return self._contentObject; +} + +,["id"]), new objj_method(sel_getUid("arrangedObjects"), function $CPTreeController__arrangedObjects(self, _cmd) +{ + return self._arrangedObjects; +} + +,["id"]), new objj_method(sel_getUid("rearrangeObjects"), function $CPTreeController__rearrangeObjects(self, _cmd) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "arrangedObjects"); + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "arrangedObjects"); +} + +,["void"]), new objj_method(sel_getUid("_rearrangeObjects"), function $CPTreeController___rearrangeObjects(self, _cmd) +{ + var oldSelectedObjects = nil, + oldSelectionIndexPaths = nil; + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + oldSelectedObjects = (self.isa.method_msgSend["selectedObjects"] || _objj_forward)(self, "selectedObjects"); + else + oldSelectionIndexPaths = (self.isa.method_msgSend["selectionIndexPaths"] || _objj_forward)(self, "selectionIndexPaths"); + (self.isa.method_msgSend["__rebuildArrangedObjectsTree"] || _objj_forward)(self, "__rebuildArrangedObjectsTree"); + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + (self.isa.method_msgSend["__setSelectedObjects:"] || _objj_forward)(self, "__setSelectedObjects:", oldSelectedObjects); + else + (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", oldSelectionIndexPaths, self._avoidsEmptySelection); +} + +,["void"]), new objj_method(sel_getUid("__rebuildArrangedObjectsTree"), function $CPTreeController____rebuildArrangedObjectsTree(self, _cmd) +{ + var rootNode = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)), + contentArray = (self.isa.method_msgSend["contentArray"] || _objj_forward)(self, "contentArray"); + if (contentArray && (contentArray == null ? contentArray : (contentArray.isa.method_msgSend["count"] || _objj_forward)(contentArray, "count")) > 0) + { + var children = (self.isa.method_msgSend["_buildTreeNodesForObjects:"] || _objj_forward)(self, "_buildTreeNodesForObjects:", contentArray); + ((___r1 = (rootNode == null ? rootNode : (rootNode.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(rootNode, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(___r1, "addObjectsFromArray:", children)); + } + self._arrangedObjects = rootNode; + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("_buildTreeNodesForObjects:"), function $CPTreeController___buildTreeNodesForObjects_(self, _cmd, objects) +{ + var count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); + if (count === 0) + return []; + var sortedObjects = objects; + if (self._sortDescriptors && ((___r1 = self._sortDescriptors), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0) + sortedObjects = (objects == null ? objects : (objects.isa.method_msgSend["sortedArrayUsingDescriptors:"] || _objj_forward)(objects, "sortedArrayUsingDescriptors:", self._sortDescriptors)); + var nodes = (CPMutableArray.isa.method_msgSend["arrayWithCapacity:"] || _objj_forward)(CPMutableArray, "arrayWithCapacity:", count); + for (var i = 0; i < count; i++) + { + var obj = (sortedObjects == null ? sortedObjects : (sortedObjects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(sortedObjects, "objectAtIndex:", i)), + node = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", obj)); + if (self._childrenKeyPath) + { + var childObjects = (obj == null ? obj : (obj.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(obj, "valueForKeyPath:", self._childrenKeyPath)); + if (childObjects && (childObjects == null ? childObjects : (childObjects.isa.method_msgSend["count"] || _objj_forward)(childObjects, "count")) > 0) + { + var childNodes = (self.isa.method_msgSend["_buildTreeNodesForObjects:"] || _objj_forward)(self, "_buildTreeNodesForObjects:", childObjects); + ((___r1 = (node == null ? node : (node.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(node, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(___r1, "addObjectsFromArray:", childNodes)); + } + } + (nodes == null ? nodes : (nodes.isa.method_msgSend["addObject:"] || _objj_forward)(nodes, "addObject:", node)); + } + return nodes; + var ___r1; +} + +,["CPArray","CPArray"]), new objj_method(sel_getUid("selectionIndexPath"), function $CPTreeController__selectionIndexPath(self, _cmd) +{ + return ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0 ? ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", 0)) : nil; + var ___r1; +} + +,["CPIndexPath"]), new objj_method(sel_getUid("setSelectionIndexPath:"), function $CPTreeController__setSelectionIndexPath_(self, _cmd, indexPath) +{ + var paths = indexPath ? (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath) : (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", paths); +} + +,["BOOL","CPIndexPath"]), new objj_method(sel_getUid("selectionIndexPaths"), function $CPTreeController__selectionIndexPaths(self, _cmd) +{ + return self._selectionIndexPaths; +} + +,["CPArray"]), new objj_method(sel_getUid("setSelectionIndexPaths:"), function $CPTreeController__setSelectionIndexPaths_(self, _cmd, indexPaths) +{ + (self.isa.method_msgSend["_selectionWillChange"] || _objj_forward)(self, "_selectionWillChange"); + var result = (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", indexPaths, NO); + (self.isa.method_msgSend["_selectionDidChange"] || _objj_forward)(self, "_selectionDidChange"); + return result; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("__setSelectionIndexPaths:avoidEmpty:"), function $CPTreeController____setSelectionIndexPaths_avoidEmpty_(self, _cmd, indexPaths, avoidEmpty) +{ + var newPaths = indexPaths; + if (!newPaths) + newPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + if (!(newPaths == null ? newPaths : (newPaths.isa.method_msgSend["count"] || _objj_forward)(newPaths, "count")) && avoidEmpty) + { + if (((___r1 = ((___r2 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0) + newPaths = (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", 0)); + } + if (((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["isEqualToArray:"] || _objj_forward)(___r1, "isEqualToArray:", newPaths))) + return NO; + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "selectionIndexPaths"); + self._selectionIndexPaths = (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["copy"] || _objj_forward)(newPaths, "copy")); + var binderClass = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "selectionIndexPaths")); + if (binderClass) + { + var binding = (binderClass == null ? binderClass : (binderClass.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binderClass, "getBinding:forObject:", "selectionIndexPaths", self)); + if (binding) + (binding == null ? binding : (binding.isa.method_msgSend["reverseSetValueFor:"] || _objj_forward)(binding, "reverseSetValueFor:", "selectionIndexPaths")); + } + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "selectionIndexPaths"); + return YES; + var ___r1, ___r2; +} + +,["BOOL","CPArray","BOOL"]), new objj_method(sel_getUid("addSelectionIndexPaths:"), function $CPTreeController__addSelectionIndexPaths_(self, _cmd, indexPaths) +{ + var newPaths = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["mutableCopy"] || _objj_forward)(___r1, "mutableCopy")); + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(newPaths, "addObjectsFromArray:", indexPaths)); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", newPaths); + var ___r1; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("removeSelectionIndexPaths:"), function $CPTreeController__removeSelectionIndexPaths_(self, _cmd, indexPaths) +{ + var newPaths = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["mutableCopy"] || _objj_forward)(___r1, "mutableCopy")); + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["removeObjectsInArray:"] || _objj_forward)(newPaths, "removeObjectsInArray:", indexPaths)); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", newPaths); + var ___r1; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("selectedNodes"), function $CPTreeController__selectedNodes(self, _cmd) +{ + var nodes = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + count = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + for (var i = 0; i < count; i++) + { + var node = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", ((___r2 = self._selectionIndexPaths), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r2, "objectAtIndex:", i)))); + if (node) + (nodes == null ? nodes : (nodes.isa.method_msgSend["addObject:"] || _objj_forward)(nodes, "addObject:", node)); + } + return nodes; + var ___r1, ___r2; +} + +,["CPArray"]), new objj_method(sel_getUid("selectedObjects"), function $CPTreeController__selectedObjects(self, _cmd) +{ + var objects = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + nodes = (self.isa.method_msgSend["selectedNodes"] || _objj_forward)(self, "selectedNodes"), + count = (nodes == null ? nodes : (nodes.isa.method_msgSend["count"] || _objj_forward)(nodes, "count")); + for (var i = 0; i < count; i++) + (objects == null ? objects : (objects.isa.method_msgSend["addObject:"] || _objj_forward)(objects, "addObject:", ((___r1 = (nodes == null ? nodes : (nodes.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(nodes, "objectAtIndex:", i))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["representedObject"] || _objj_forward)(___r1, "representedObject")))); + return objects; + var ___r1; +} + +,["CPArray"]), new objj_method(sel_getUid("__setSelectedObjects:"), function $CPTreeController____setSelectedObjects_(self, _cmd, objects) +{ + if (!objects || (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")) === 0) + return (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"), self._avoidsEmptySelection); + var newPaths = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"); + for (var i = 0, count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); i < count; i++) + { + var path = (self.isa.method_msgSend["_indexPathForObject:inNode:"] || _objj_forward)(self, "_indexPathForObject:inNode:", (objects == null ? objects : (objects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(objects, "objectAtIndex:", i)), (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")); + if (path) + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["addObject:"] || _objj_forward)(newPaths, "addObject:", path)); + } + return (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", newPaths, self._avoidsEmptySelection); +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("_indexPathForObject:inNode:"), function $CPTreeController___indexPathForObject_inNode_(self, _cmd, anObject, node) +{ + if ((node == null ? node : (node.isa.method_msgSend["representedObject"] || _objj_forward)(node, "representedObject")) === anObject && (node == null ? node : (node.isa.method_msgSend["parentNode"] || _objj_forward)(node, "parentNode")) != nil) + return (node == null ? node : (node.isa.method_msgSend["indexPath"] || _objj_forward)(node, "indexPath")); + var children = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes")); + if (children) + { + for (var i = 0, count = (children == null ? children : (children.isa.method_msgSend["count"] || _objj_forward)(children, "count")); i < count; i++) + { + var found = (self.isa.method_msgSend["_indexPathForObject:inNode:"] || _objj_forward)(self, "_indexPathForObject:inNode:", anObject, (children == null ? children : (children.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(children, "objectAtIndex:", i))); + if (found) + return found; + } + } + return nil; +} + +,["CPIndexPath","id","CPTreeNode"]), new objj_method(sel_getUid("canInsert"), function $CPTreeController__canInsert(self, _cmd) +{ + return (self.isa.method_msgSend["isEditable"] || _objj_forward)(self, "isEditable"); +} + +,["BOOL"]), new objj_method(sel_getUid("canInsertChild"), function $CPTreeController__canInsertChild(self, _cmd) +{ + return (self.isa.method_msgSend["isEditable"] || _objj_forward)(self, "isEditable") && ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0; + var ___r1; +} + +,["BOOL"]), new objj_method(sel_getUid("canAddChild"), function $CPTreeController__canAddChild(self, _cmd) +{ + return (self.isa.method_msgSend["canInsertChild"] || _objj_forward)(self, "canInsertChild"); +} + +,["BOOL"]), new objj_method(sel_getUid("add:"), function $CPTreeController__add_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsert"] || _objj_forward)(self, "canInsert")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + selectionPath = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath"); + if (!selectionPath) + selectionPath = (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", ((___r1 = ((___r2 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count"))); + var length = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["length"] || _objj_forward)(selectionPath, "length")), + lastIndex = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(selectionPath, "indexAtPosition:", length - 1)), + insertPath = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(selectionPath, "indexPathByRemovingLastIndex")); + insertPath = (insertPath == null ? insertPath : (insertPath.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(insertPath, "indexPathByAddingIndex:", lastIndex + 1)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1, ___r2; +} + +,["void","id"]), new objj_method(sel_getUid("addChild:"), function $CPTreeController__addChild_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canAddChild"] || _objj_forward)(self, "canAddChild")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath"))), + childCount = ((___r1 = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["childNodes"] || _objj_forward)(parentNode, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")), + insertPath = ((___r1 = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(___r1, "indexPathByAddingIndex:", childCount)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1; +} + +,["void","id"]), new objj_method(sel_getUid("insert:"), function $CPTreeController__insert_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsert"] || _objj_forward)(self, "canInsert")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + indexPath = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath") || (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", 0); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, indexPath); +} + +,["void","id"]), new objj_method(sel_getUid("insertChild:"), function $CPTreeController__insertChild_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsertChild"] || _objj_forward)(self, "canInsertChild")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + insertPath = ((___r1 = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(___r1, "indexPathByAddingIndex:", 0)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1; +} + +,["void","id"]), new objj_method(sel_getUid("insertObject:atArrangedObjectIndexPath:"), function $CPTreeController__insertObject_atArrangedObjectIndexPath_(self, _cmd, anObject, indexPath) +{ + (self.isa.method_msgSend["insertObjects:atArrangedObjectIndexPaths:"] || _objj_forward)(self, "insertObjects:atArrangedObjectIndexPaths:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", anObject), (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath)); +} + +,["void","id","CPIndexPath"]), new objj_method(sel_getUid("insertObjects:atArrangedObjectIndexPaths:"), function $CPTreeController__insertObjects_atArrangedObjectIndexPaths_(self, _cmd, objects, indexPaths) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "content"); + self._disableSetContent = YES; + var count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); + for (var i = 0; i < count; i++) + { + var object = (objects == null ? objects : (objects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(objects, "objectAtIndex:", i)), + path = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(indexPaths, "objectAtIndex:", i)), + length = (path == null ? path : (path.isa.method_msgSend["length"] || _objj_forward)(path, "length")); + if (length === 1) + { + ((___r1 = self._contentObject), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(___r1, "insertObject:atIndex:", object, (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", 0)))); + } + else + { + var parentPath = (path == null ? path : (path.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(path, "indexPathByRemovingLastIndex")), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", parentPath)); + if (parentNode) + { + var parentObj = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["representedObject"] || _objj_forward)(parentNode, "representedObject")), + childIndex = (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", length - 1)); + var children = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(parentObj, "valueForKeyPath:", self._childrenKeyPath)); + if (!children) + { + children = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"); + (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["setValue:forKeyPath:"] || _objj_forward)(parentObj, "setValue:forKeyPath:", children, self._childrenKeyPath)); + } + var mutableChildren = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["mutableArrayValueForKeyPath:"] || _objj_forward)(parentObj, "mutableArrayValueForKeyPath:", self._childrenKeyPath)); + (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(mutableChildren, "insertObject:atIndex:", object, childIndex)); + } + } + } + var binding = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "contentArray")); + if (binding) + ((___r1 = (binding == null ? binding : (binding.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binding, "getBinding:forObject:", "contentArray", self))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_contentArrayDidChange"] || _objj_forward)(___r1, "_contentArrayDidChange")); + self._disableSetContent = NO; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + if ((self.isa.method_msgSend["selectsInsertedObjects"] || _objj_forward)(self, "selectsInsertedObjects")) + (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", indexPaths); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "content"); + var ___r1; +} + +,["void","CPArray","CPArray"]), new objj_method(sel_getUid("remove:"), function $CPTreeController__remove_(self, _cmd, sender) +{ + (self.isa.method_msgSend["removeObjectsAtArrangedObjectIndexPaths:"] || _objj_forward)(self, "removeObjectsAtArrangedObjectIndexPaths:", self._selectionIndexPaths); +} + +,["void","id"]), new objj_method(sel_getUid("removeObjectAtArrangedObjectIndexPath:"), function $CPTreeController__removeObjectAtArrangedObjectIndexPath_(self, _cmd, indexPath) +{ + (self.isa.method_msgSend["removeObjectsAtArrangedObjectIndexPaths:"] || _objj_forward)(self, "removeObjectsAtArrangedObjectIndexPaths:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath)); +} + +,["void","CPIndexPath"]), new objj_method(sel_getUid("removeObjectsAtArrangedObjectIndexPaths:"), function $CPTreeController__removeObjectsAtArrangedObjectIndexPaths_(self, _cmd, indexPaths) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "content"); + self._disableSetContent = YES; + var sortedPaths = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["sortedArrayUsingSelector:"] || _objj_forward)(indexPaths, "sortedArrayUsingSelector:", sel_getUid("compare:"))), + count = (sortedPaths == null ? sortedPaths : (sortedPaths.isa.method_msgSend["count"] || _objj_forward)(sortedPaths, "count")); + for (var i = count - 1; i >= 0; i--) + { + var path = (sortedPaths == null ? sortedPaths : (sortedPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(sortedPaths, "objectAtIndex:", i)), + length = (path == null ? path : (path.isa.method_msgSend["length"] || _objj_forward)(path, "length")); + if (length === 1) + { + ((___r1 = self._contentObject), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(___r1, "removeObjectAtIndex:", (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", 0)))); + } + else + { + var parentPath = (path == null ? path : (path.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(path, "indexPathByRemovingLastIndex")), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", parentPath)); + if (parentNode) + { + var parentObj = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["representedObject"] || _objj_forward)(parentNode, "representedObject")), + childIndex = (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", length - 1)), + mutableChildren = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["mutableArrayValueForKeyPath:"] || _objj_forward)(parentObj, "mutableArrayValueForKeyPath:", self._childrenKeyPath)); + if (mutableChildren && childIndex < (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["count"] || _objj_forward)(mutableChildren, "count"))) + (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(mutableChildren, "removeObjectAtIndex:", childIndex)); + } + } + } + var binding = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "contentArray")); + if (binding) + ((___r1 = (binding == null ? binding : (binding.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binding, "getBinding:forObject:", "contentArray", self))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_contentArrayDidChange"] || _objj_forward)(___r1, "_contentArrayDidChange")); + self._disableSetContent = NO; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "content"); + var ___r1; +} + +,["void","CPArray"]), new objj_method(sel_getUid("moveNode:toIndexPath:"), function $CPTreeController__moveNode_toIndexPath_(self, _cmd, node, indexPath) +{ + (self.isa.method_msgSend["moveNodes:toIndexPath:"] || _objj_forward)(self, "moveNodes:toIndexPath:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", node), indexPath); +} + +,["void","CPTreeNode","CPIndexPath"]), new objj_method(sel_getUid("moveNodes:toIndexPath:"), function $CPTreeController__moveNodes_toIndexPath_(self, _cmd, nodes, startingIndexPath) +{ + (CPException.isa.method_msgSend["raise:reason:"] || _objj_forward)(CPException, "raise:reason:", CPUnsupportedMethodException, "moveNodes:toIndexPath: is not yet implemented in CPTreeController."); +} + +,["void","CPArray","CPIndexPath"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTreeController__initialize(self, _cmd) +{ + if (self !== (CPTreeController.isa.method_msgSend["class"] || _objj_forward)(CPTreeController, "class")) + return; + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "contentArray"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "sortDescriptors"); +} + +,["void"]), new objj_method(sel_getUid("keyPathsForValuesAffectingContentArray"), function $CPTreeController__keyPathsForValuesAffectingContentArray(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "content"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingArrangedObjects"), function $CPTreeController__keyPathsForValuesAffectingArrangedObjects(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "content", "sortDescriptors", "childrenKeyPath"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectionIndexPath"), function $CPTreeController__keyPathsForValuesAffectingSelectionIndexPath(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectedObjects"), function $CPTreeController__keyPathsForValuesAffectingSelectedObjects(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectedNodes"), function $CPTreeController__keyPathsForValuesAffectingSelectedNodes(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanAddChild"), function $CPTreeController__keyPathsForValuesAffectingCanAddChild(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanInsert"), function $CPTreeController__keyPathsForValuesAffectingCanInsert(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanInsertChild"), function $CPTreeController__keyPathsForValuesAffectingCanInsertChild(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"])]); +} +var CPTreeControllerAvoidsEmptySelection = "CPTreeControllerAvoidsEmptySelection", + CPTreeControllerPreservesSelection = "CPTreeControllerPreservesSelection", + CPTreeControllerSelectsInsertedObjects = "CPTreeControllerSelectsInsertedObjects", + CPTreeControllerAlwaysUsesMultipleValuesMarker = "CPTreeControllerAlwaysUsesMultipleValuesMarker", + CPTreeControllerChildrenKeyPath = "CPTreeControllerChildrenKeyPath", + CPTreeControllerCountKeyPath = "CPTreeControllerCountKeyPath", + CPTreeControllerLeafKeyPath = "CPTreeControllerLeafKeyPath"; +{ +var the_class = objj_getClass("CPTreeController") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPTreeController\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTreeController__initWithCoder_(self, _cmd, aCoder) +{ + self = (objj_getClass("CPTreeController").super_class.method_dtable["initWithCoder:"] || _objj_forward)(self, "initWithCoder:", aCoder); + if (self) + { + self._avoidsEmptySelection = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerAvoidsEmptySelection)); + self._preservesSelection = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerPreservesSelection)); + self._selectsInsertedObjects = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerSelectsInsertedObjects)); + self._alwaysUsesMultipleValuesMarker = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerAlwaysUsesMultipleValuesMarker)); + self._childrenKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerChildrenKeyPath)) || "children"; + self._countKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerCountKeyPath)); + self._leafKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerLeafKeyPath)); + self._sortDescriptors = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._selectionIndexPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._arrangedObjects = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + if (!(self == null ? self : (self.isa.method_msgSend["content"] || _objj_forward)(self, "content")) && (self == null ? self : (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent"))) + (self == null ? self : (self.isa.method_msgSend["prepareContent"] || _objj_forward)(self, "prepareContent")); + else if (!(self == null ? self : (self.isa.method_msgSend["content"] || _objj_forward)(self, "content"))) + (self == null ? self : (self.isa.method_msgSend["_setContentArray:"] || _objj_forward)(self, "_setContentArray:", (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"))); + } + return self; + var ___r1; +} + +,["id","CPCoder"]), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTreeController__encodeWithCoder_(self, _cmd, aCoder) +{ + (objj_getClass("CPTreeController").super_class.method_dtable["encodeWithCoder:"] || _objj_forward)(self, "encodeWithCoder:", aCoder); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._avoidsEmptySelection, CPTreeControllerAvoidsEmptySelection)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._preservesSelection, CPTreeControllerPreservesSelection)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._selectsInsertedObjects, CPTreeControllerSelectsInsertedObjects)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._alwaysUsesMultipleValuesMarker, CPTreeControllerAlwaysUsesMultipleValuesMarker)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._childrenKeyPath, CPTreeControllerChildrenKeyPath)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._countKeyPath, CPTreeControllerCountKeyPath)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._leafKeyPath, CPTreeControllerLeafKeyPath)); +} + +,["void","CPCoder"]), new objj_method(sel_getUid("awakeFromCib"), function $CPTreeController__awakeFromCib(self, _cmd) +{ + (self.isa.method_msgSend["_selectionWillChange"] || _objj_forward)(self, "_selectionWillChange"); + (self.isa.method_msgSend["_selectionDidChange"] || _objj_forward)(self, "_selectionDidChange"); +} + +,["void"])]); +} +p;12;CPTreeNode.jt;12134;@STATIC;1.0;I;21;Foundation/CPObject.jI;24;Foundation/CPIndexPath.jI;20;Foundation/CPArray.jt;12034;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO);objj_executeFile("Foundation/CPArray.j", NO); {var the_class = objj_allocateClassPair(CPObject, "CPTreeNode"), meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_representedObject", "id"), new objj_ivar("_parentNode", "CPTreeNode"), new objj_ivar("_childNodes", "CPMutableArray")]);objj_registerClassPair(the_class); class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), function $CPTreeNode__representedObject(self, _cmd) @@ -44345,12 +45211,22 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu return self._representedObject; } -,["id"]), new objj_method(sel_getUid("parentNode"), function $CPTreeNode__parentNode(self, _cmd) +,["id"]), new objj_method(sel_getUid("setRepresentedObject:"), function $CPTreeNode__setRepresentedObject_(self, _cmd, newValue) +{ + self._representedObject = newValue; +} + +,["void","id"]), new objj_method(sel_getUid("parentNode"), function $CPTreeNode__parentNode(self, _cmd) { return self._parentNode; } -,["CPTreeNode"]), new objj_method(sel_getUid("initWithRepresentedObject:"), function $CPTreeNode__initWithRepresentedObject_(self, _cmd, anObject) +,["CPTreeNode"]), new objj_method(sel_getUid("setParentNode:"), function $CPTreeNode__setParentNode_(self, _cmd, newValue) +{ + self._parentNode = newValue; +} + +,["void","CPTreeNode"]), new objj_method(sel_getUid("initWithRepresentedObject:"), function $CPTreeNode__initWithRepresentedObject_(self, _cmd, anObject) { self = (objj_getClass("CPTreeNode").super_class.method_dtable["init"] || _objj_forward)(self, "init"); if (self) @@ -44363,31 +45239,21 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["id","id"]), new objj_method(sel_getUid("indexPath"), function $CPTreeNode__indexPath(self, _cmd) { - if (self._parentNode != nil) + if (self._parentNode) { - var path; - var index; - index = ((___r1 = ((___r2 = self._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexOfObject:"] || _objj_forward)(___r1, "indexOfObject:", self)); - path = ((___r1 = self._parentNode), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPath"] || _objj_forward)(___r1, "indexPath")); - if (path != nil) - { - return (path == null ? path : (path.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(path, "indexPathByAddingIndex:", index)); - } - else - { - return (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", index); - } - } - else - { - return nil; + var index = ((___r1 = ((___r2 = self._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexOfObjectIdenticalTo:"] || _objj_forward)(___r1, "indexOfObjectIdenticalTo:", self)); + var parentPath = ((___r1 = self._parentNode), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPath"] || _objj_forward)(___r1, "indexPath")); + if (parentPath) + return (parentPath == null ? parentPath : (parentPath.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(parentPath, "indexPathByAddingIndex:", index)); + return (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", index); } + return nil; var ___r1, ___r2; } ,["CPIndexPath"]), new objj_method(sel_getUid("isLeaf"), function $CPTreeNode__isLeaf(self, _cmd) { - return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) <= 0; + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) == 0; var ___r1; } @@ -44404,15 +45270,21 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["CPMutableArray"]), new objj_method(sel_getUid("insertObject:inChildNodesAtIndex:"), function $CPTreeNode__insertObject_inChildNodesAtIndex_(self, _cmd, aTreeNode, anIndex) { - ((___r1 = ((___r2 = aTreeNode._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(___r2, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectIdenticalTo:"] || _objj_forward)(___r1, "removeObjectIdenticalTo:", aTreeNode)); - aTreeNode._parentNode = self; + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class"))) && aTreeNode._parentNode) + { + ((___r1 = ((___r2 = aTreeNode._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(___r2, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectIdenticalTo:"] || _objj_forward)(___r1, "removeObjectIdenticalTo:", aTreeNode)); + } + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + aTreeNode._parentNode = self; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(___r1, "insertObject:atIndex:", aTreeNode, anIndex)); var ___r1, ___r2; } -,["void","id","CPInteger"]), new objj_method(sel_getUid("removeObjectFromChildNodesAtIndex:"), function $CPTreeNode__removeObjectFromChildNodesAtIndex_(self, _cmd, anIndex) +,["void","CPTreeNode","CPInteger"]), new objj_method(sel_getUid("removeObjectFromChildNodesAtIndex:"), function $CPTreeNode__removeObjectFromChildNodesAtIndex_(self, _cmd, anIndex) { - ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex))._parentNode = nil; + var node = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + if ((node == null ? node : (node.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(node, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + node._parentNode = nil; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(___r1, "removeObjectAtIndex:", anIndex)); var ___r1; } @@ -44420,15 +45292,30 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["void","CPInteger"]), new objj_method(sel_getUid("replaceObjectFromChildNodesAtIndex:withObject:"), function $CPTreeNode__replaceObjectFromChildNodesAtIndex_withObject_(self, _cmd, anIndex, aTreeNode) { var oldTreeNode = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); - oldTreeNode._parentNode = nil; - aTreeNode._parentNode = self; + if ((oldTreeNode == null ? oldTreeNode : (oldTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(oldTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + oldTreeNode._parentNode = nil; + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + aTreeNode._parentNode = self; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["replaceObjectAtIndex:withObject:"] || _objj_forward)(___r1, "replaceObjectAtIndex:withObject:", anIndex, aTreeNode)); var ___r1; } ,["void","CPInteger","id"]), new objj_method(sel_getUid("objectInChildNodesAtIndex:"), function $CPTreeNode__objectInChildNodesAtIndex_(self, _cmd, anIndex) { - return self._childNodes[anIndex]; + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + var ___r1; +} + +,["id","CPInteger"]), new objj_method(sel_getUid("count"), function $CPTreeNode__count(self, _cmd) +{ + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + var ___r1; +} + +,["CPInteger"]), new objj_method(sel_getUid("objectAtIndex:"), function $CPTreeNode__objectAtIndex_(self, _cmd, anIndex) +{ + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + var ___r1; } ,["id","CPInteger"]), new objj_method(sel_getUid("sortWithSortDescriptors:recursively:"), function $CPTreeNode__sortWithSortDescriptors_recursively_(self, _cmd, sortDescriptors, shouldSortRecursively) @@ -44438,17 +45325,28 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu return; var count = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); while (count--) - ((___r1 = self._childNodes[count]), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["sortWithSortDescriptors:recursively:"] || _objj_forward)(___r1, "sortWithSortDescriptors:recursively:", sortDescriptors, YES)); + { + var child = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", count)); + if ((child == null ? child : (child.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(child, "respondsToSelector:", sel_getUid("sortWithSortDescriptors:recursively:")))) + (child == null ? child : (child.isa.method_msgSend["sortWithSortDescriptors:recursively:"] || _objj_forward)(child, "sortWithSortDescriptors:recursively:", sortDescriptors, YES)); + } var ___r1; } ,["void","CPArray","BOOL"]), new objj_method(sel_getUid("descendantNodeAtIndexPath:"), function $CPTreeNode__descendantNodeAtIndexPath_(self, _cmd, indexPath) { - var index = 0, - count = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")), - node = self; - for (; index < count; ++index) - node = (node == null ? node : (node.isa.method_msgSend["objectInChildNodesAtIndex:"] || _objj_forward)(node, "objectInChildNodesAtIndex:", (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(indexPath, "indexAtPosition:", index)))); + if (!indexPath || (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")) == 0) + return self; + var node = self, + length = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")); + for (var i = 0; i < length; i++) + { + var index = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(indexPath, "indexAtPosition:", i)), + count = (node == null ? node : (node.isa.method_msgSend["count"] || _objj_forward)(node, "count")); + if (index >= count || index < 0) + return nil; + node = (node == null ? node : (node.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(node, "objectAtIndex:", index)); + } return node; } @@ -44475,8 +45373,11 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_ self._representedObject = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeRepresentedObjectKey)); self._parentNode = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeParentNodeKey)); self._childNodes = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeChildNodesKey)); + if (!self._childNodes) + self._childNodes = ((___r1 = (CPMutableArray.isa.method_msgSend["alloc"] || _objj_forward)(CPMutableArray, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["init"] || _objj_forward)(___r1, "init")); } return self; + var ___r1; } ,["id","CPCoder"]), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTreeNode__encodeWithCoder_(self, _cmd, aCoder) diff --git a/Frameworks/AppKit/CommonJS.environment/AppKit.sj b/Frameworks/AppKit/CommonJS.environment/AppKit.sj index a33fdd805..64116138d 100644 --- a/Frameworks/AppKit/CommonJS.environment/AppKit.sj +++ b/Frameworks/AppKit/CommonJS.environment/AppKit.sj @@ -2883,7 +2883,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("invalidateCurrentToolT ,["Class","unsigned"])]); } -p;8;AppKit.jt;5709;@STATIC;1.0;i;17;_CPObject+Theme.ji;12;_CPToolTip.ji;9;CALayer.ji;12;CGGeometry.ji;17;CPAccordionView.ji;9;CPAlert.ji;13;CPAnimation.ji;20;CPAnimationContext.ji;14;CPAppearance.ji;15;CPApplication.ji;19;CPArrayController.ji;14;CPBezierPath.ji;7;CPBox.ji;11;CPBrowser.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;23;CPCibBindingConnector.ji;16;CPCibConnector.ji;23;CPCibControlConnector.ji;20;CPCibHelpConnector.ji;14;CPCibLoading.ji;22;CPCibOutletConnector.ji;33;CPCibRuntimeAttributesConnector.ji;12;CPClipView.ji;18;CPCollectionView.ji;22;CPCollectionViewItem.ji;9;CPColor.ji;14;CPColorPanel.ji;14;CPColorSpace.ji;13;CPColorWell.ji;12;CPComboBox.ji;17;CPCompatibility.ji;11;CPControl.ji;14;CPController.ji;10;CPCookie.ji;10;CPCursor.ji;14;CPDatePicker.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGradient.ji;12;CPGraphics.ji;9;CPImage.ji;13;CPImageView.ji;14;CPKeyBinding.ji;18;CPLevelIndicator.ji;8;CPMenu.ji;12;CPMenuItem.ji;13;CPOpenPanel.ji;15;CPOutlineView.ji;9;CPPanel.ji;14;CPPasteboard.ji;11;CPPopover.ji;15;CPPopUpButton.ji;19;CPPredicateEditor.ji;30;CPPredicateEditorRowTemplate.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPRuleEditor.ji;12;CPScroller.ji;14;CPScrollView.ji;15;CPSearchField.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;9;CPSound.ji;13;CPSplitView.ji;11;CPStepper.ji;15;CPTableColumn.ji;13;CPTableView.ji;11;CPTabView.ji;8;CPText.ji;13;CPTextField.ji;12;CPTextView.ji;14;CPTokenField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;16;CPTrackingArea.ji;12;CPTreeNode.ji;26;CPUserDefaultsController.ji;8;CPView.ji;16;CPViewAnimator.ji;17;CPViewAnimation.ji;18;CPViewController.ji;20;CPVisualEffectView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.ji;13;CPWorkspace.ji;13;CPFontPanel.jt;3860;objj_executeFile("_CPObject+Theme.j", YES);objj_executeFile("_CPToolTip.j", YES);objj_executeFile("CALayer.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CPAccordionView.j", YES);objj_executeFile("CPAlert.j", YES);objj_executeFile("CPAnimation.j", YES);objj_executeFile("CPAnimationContext.j", YES);objj_executeFile("CPAppearance.j", YES);objj_executeFile("CPApplication.j", YES);objj_executeFile("CPArrayController.j", YES);objj_executeFile("CPBezierPath.j", YES);objj_executeFile("CPBox.j", YES);objj_executeFile("CPBrowser.j", YES);objj_executeFile("CPButton.j", YES);objj_executeFile("CPButtonBar.j", YES);objj_executeFile("CPCheckBox.j", YES);objj_executeFile("CPCib.j", YES);objj_executeFile("CPCibBindingConnector.j", YES);objj_executeFile("CPCibConnector.j", YES);objj_executeFile("CPCibControlConnector.j", YES);objj_executeFile("CPCibHelpConnector.j", YES);objj_executeFile("CPCibLoading.j", YES);objj_executeFile("CPCibOutletConnector.j", YES);objj_executeFile("CPCibRuntimeAttributesConnector.j", YES);objj_executeFile("CPClipView.j", YES);objj_executeFile("CPCollectionView.j", YES);objj_executeFile("CPCollectionViewItem.j", YES);objj_executeFile("CPColor.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPColorSpace.j", YES);objj_executeFile("CPColorWell.j", YES);objj_executeFile("CPComboBox.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPControl.j", YES);objj_executeFile("CPController.j", YES);objj_executeFile("CPCookie.j", YES);objj_executeFile("CPCursor.j", YES);objj_executeFile("CPDatePicker.j", YES);objj_executeFile("CPDocument.j", YES);objj_executeFile("CPDocumentController.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPFont.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPGradient.j", YES);objj_executeFile("CPGraphics.j", YES);objj_executeFile("CPImage.j", YES);objj_executeFile("CPImageView.j", YES);objj_executeFile("CPKeyBinding.j", YES);objj_executeFile("CPLevelIndicator.j", YES);objj_executeFile("CPMenu.j", YES);objj_executeFile("CPMenuItem.j", YES);objj_executeFile("CPOpenPanel.j", YES);objj_executeFile("CPOutlineView.j", YES);objj_executeFile("CPPanel.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPopover.j", YES);objj_executeFile("CPPopUpButton.j", YES);objj_executeFile("CPPredicateEditor.j", YES);objj_executeFile("CPPredicateEditorRowTemplate.j", YES);objj_executeFile("CPProgressIndicator.j", YES);objj_executeFile("CPRadio.j", YES);objj_executeFile("CPResponder.j", YES);objj_executeFile("CPRuleEditor.j", YES);objj_executeFile("CPScroller.j", YES);objj_executeFile("CPScrollView.j", YES);objj_executeFile("CPSearchField.j", YES);objj_executeFile("CPSecureTextField.j", YES);objj_executeFile("CPSegmentedControl.j", YES);objj_executeFile("CPShadow.j", YES);objj_executeFile("CPSlider.j", YES);objj_executeFile("CPSound.j", YES);objj_executeFile("CPSplitView.j", YES);objj_executeFile("CPStepper.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);objj_executeFile("CPTabView.j", YES);objj_executeFile("CPText.j", YES);objj_executeFile("CPTextField.j", YES);objj_executeFile("CPTextView.j", YES);objj_executeFile("CPTokenField.j", YES);objj_executeFile("CPToolbar.j", YES);objj_executeFile("CPToolbarItem.j", YES);objj_executeFile("CPTrackingArea.j", YES);objj_executeFile("CPTreeNode.j", YES);objj_executeFile("CPUserDefaultsController.j", YES);objj_executeFile("CPView.j", YES);objj_executeFile("CPViewAnimator.j", YES);objj_executeFile("CPViewAnimation.j", YES);objj_executeFile("CPViewController.j", YES);objj_executeFile("CPVisualEffectView.j", YES);objj_executeFile("CPWebView.j", YES);objj_executeFile("CPWindow.j", YES);objj_executeFile("CPWindowController.j", YES);objj_executeFile("CPWorkspace.j", YES);objj_executeFile("CPFontPanel.j", YES);p;17;CPAccordionView.jt;22553;@STATIC;1.0;I;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;32;Foundation/CPKeyValueObserving.jI;23;Foundation/CPIndexSet.jI;21;Foundation/CPString.ji;8;CPView.ji;10;CPButton.jt;22364;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPKeyValueObserving.j", NO);objj_executeFile("Foundation/CPIndexSet.j", NO);objj_executeFile("Foundation/CPString.j", NO);objj_executeFile("CPView.j", YES);objj_executeFile("CPButton.j", YES); +p;8;AppKit.jt;5776;@STATIC;1.0;i;17;_CPObject+Theme.ji;12;_CPToolTip.ji;9;CALayer.ji;12;CGGeometry.ji;17;CPAccordionView.ji;9;CPAlert.ji;13;CPAnimation.ji;20;CPAnimationContext.ji;14;CPAppearance.ji;15;CPApplication.ji;19;CPArrayController.ji;14;CPBezierPath.ji;7;CPBox.ji;11;CPBrowser.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;23;CPCibBindingConnector.ji;16;CPCibConnector.ji;23;CPCibControlConnector.ji;20;CPCibHelpConnector.ji;14;CPCibLoading.ji;22;CPCibOutletConnector.ji;33;CPCibRuntimeAttributesConnector.ji;12;CPClipView.ji;18;CPCollectionView.ji;22;CPCollectionViewItem.ji;9;CPColor.ji;14;CPColorPanel.ji;14;CPColorSpace.ji;13;CPColorWell.ji;12;CPComboBox.ji;17;CPCompatibility.ji;11;CPControl.ji;14;CPController.ji;10;CPCookie.ji;10;CPCursor.ji;14;CPDatePicker.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGradient.ji;12;CPGraphics.ji;9;CPImage.ji;13;CPImageView.ji;14;CPKeyBinding.ji;18;CPLevelIndicator.ji;8;CPMenu.ji;12;CPMenuItem.ji;13;CPOpenPanel.ji;15;CPOutlineView.ji;9;CPPanel.ji;14;CPPasteboard.ji;11;CPPopover.ji;15;CPPopUpButton.ji;19;CPPredicateEditor.ji;30;CPPredicateEditorRowTemplate.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPRuleEditor.ji;12;CPScroller.ji;14;CPScrollView.ji;15;CPSearchField.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;9;CPSound.ji;13;CPSplitView.ji;11;CPStepper.ji;15;CPTableColumn.ji;13;CPTableView.ji;11;CPTabView.ji;8;CPText.ji;13;CPTextField.ji;12;CPTextView.ji;14;CPTokenField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;16;CPTrackingArea.ji;12;CPTreeNode.ji;26;CPUserDefaultsController.ji;8;CPView.ji;16;CPViewAnimator.ji;17;CPViewAnimation.ji;18;CPViewController.ji;20;CPVisualEffectView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.ji;13;CPWorkspace.ji;13;CPFontPanel.ji;18;CPTreeController.jt;3904;objj_executeFile("_CPObject+Theme.j", YES);objj_executeFile("_CPToolTip.j", YES);objj_executeFile("CALayer.j", YES);objj_executeFile("CGGeometry.j", YES);objj_executeFile("CPAccordionView.j", YES);objj_executeFile("CPAlert.j", YES);objj_executeFile("CPAnimation.j", YES);objj_executeFile("CPAnimationContext.j", YES);objj_executeFile("CPAppearance.j", YES);objj_executeFile("CPApplication.j", YES);objj_executeFile("CPArrayController.j", YES);objj_executeFile("CPBezierPath.j", YES);objj_executeFile("CPBox.j", YES);objj_executeFile("CPBrowser.j", YES);objj_executeFile("CPButton.j", YES);objj_executeFile("CPButtonBar.j", YES);objj_executeFile("CPCheckBox.j", YES);objj_executeFile("CPCib.j", YES);objj_executeFile("CPCibBindingConnector.j", YES);objj_executeFile("CPCibConnector.j", YES);objj_executeFile("CPCibControlConnector.j", YES);objj_executeFile("CPCibHelpConnector.j", YES);objj_executeFile("CPCibLoading.j", YES);objj_executeFile("CPCibOutletConnector.j", YES);objj_executeFile("CPCibRuntimeAttributesConnector.j", YES);objj_executeFile("CPClipView.j", YES);objj_executeFile("CPCollectionView.j", YES);objj_executeFile("CPCollectionViewItem.j", YES);objj_executeFile("CPColor.j", YES);objj_executeFile("CPColorPanel.j", YES);objj_executeFile("CPColorSpace.j", YES);objj_executeFile("CPColorWell.j", YES);objj_executeFile("CPComboBox.j", YES);objj_executeFile("CPCompatibility.j", YES);objj_executeFile("CPControl.j", YES);objj_executeFile("CPController.j", YES);objj_executeFile("CPCookie.j", YES);objj_executeFile("CPCursor.j", YES);objj_executeFile("CPDatePicker.j", YES);objj_executeFile("CPDocument.j", YES);objj_executeFile("CPDocumentController.j", YES);objj_executeFile("CPEvent.j", YES);objj_executeFile("CPFont.j", YES);objj_executeFile("CPFontManager.j", YES);objj_executeFile("CPGradient.j", YES);objj_executeFile("CPGraphics.j", YES);objj_executeFile("CPImage.j", YES);objj_executeFile("CPImageView.j", YES);objj_executeFile("CPKeyBinding.j", YES);objj_executeFile("CPLevelIndicator.j", YES);objj_executeFile("CPMenu.j", YES);objj_executeFile("CPMenuItem.j", YES);objj_executeFile("CPOpenPanel.j", YES);objj_executeFile("CPOutlineView.j", YES);objj_executeFile("CPPanel.j", YES);objj_executeFile("CPPasteboard.j", YES);objj_executeFile("CPPopover.j", YES);objj_executeFile("CPPopUpButton.j", YES);objj_executeFile("CPPredicateEditor.j", YES);objj_executeFile("CPPredicateEditorRowTemplate.j", YES);objj_executeFile("CPProgressIndicator.j", YES);objj_executeFile("CPRadio.j", YES);objj_executeFile("CPResponder.j", YES);objj_executeFile("CPRuleEditor.j", YES);objj_executeFile("CPScroller.j", YES);objj_executeFile("CPScrollView.j", YES);objj_executeFile("CPSearchField.j", YES);objj_executeFile("CPSecureTextField.j", YES);objj_executeFile("CPSegmentedControl.j", YES);objj_executeFile("CPShadow.j", YES);objj_executeFile("CPSlider.j", YES);objj_executeFile("CPSound.j", YES);objj_executeFile("CPSplitView.j", YES);objj_executeFile("CPStepper.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);objj_executeFile("CPTabView.j", YES);objj_executeFile("CPText.j", YES);objj_executeFile("CPTextField.j", YES);objj_executeFile("CPTextView.j", YES);objj_executeFile("CPTokenField.j", YES);objj_executeFile("CPToolbar.j", YES);objj_executeFile("CPToolbarItem.j", YES);objj_executeFile("CPTrackingArea.j", YES);objj_executeFile("CPTreeNode.j", YES);objj_executeFile("CPUserDefaultsController.j", YES);objj_executeFile("CPView.j", YES);objj_executeFile("CPViewAnimator.j", YES);objj_executeFile("CPViewAnimation.j", YES);objj_executeFile("CPViewController.j", YES);objj_executeFile("CPVisualEffectView.j", YES);objj_executeFile("CPWebView.j", YES);objj_executeFile("CPWindow.j", YES);objj_executeFile("CPWindowController.j", YES);objj_executeFile("CPWorkspace.j", YES);objj_executeFile("CPFontPanel.j", YES);objj_executeFile("CPTreeController.j", YES);p;17;CPAccordionView.jt;22553;@STATIC;1.0;I;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;32;Foundation/CPKeyValueObserving.jI;23;Foundation/CPIndexSet.jI;21;Foundation/CPString.ji;8;CPView.ji;10;CPButton.jt;22364;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPKeyValueObserving.j", NO);objj_executeFile("Foundation/CPIndexSet.j", NO);objj_executeFile("Foundation/CPString.j", NO);objj_executeFile("CPView.j", YES);objj_executeFile("CPButton.j", YES); {var the_class = objj_allocateClassPair(CPObject, "CPAccordionViewItem"), meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier", "CPString"), new objj_ivar("_view", "CPView"), new objj_ivar("_label", "CPString")]);objj_registerClassPair(the_class); class_addMethods(the_class, [new objj_method(sel_getUid("identifier"), function $CPAccordionViewItem__identifier(self, _cmd) @@ -20742,7 +20742,7 @@ class_addMethods(meta_class, [new objj_method(sel_getUid("openPanel"), function ,["id"])]); } -p;15;CPOutlineView.jt;113868;@STATIC;1.0;i;10;CPButton.ji;15;CPTableColumn.ji;13;CPTableView.jt;113794;objj_executeFile("CPButton.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);CPOutlineViewColumnDidMoveNotification = "CPOutlineViewColumnDidMoveNotification"; +p;15;CPOutlineView.jt;130946;@STATIC;1.0;i;10;CPButton.ji;15;CPTableColumn.ji;13;CPTableView.jt;130872;objj_executeFile("CPButton.j", YES);objj_executeFile("CPTableColumn.j", YES);objj_executeFile("CPTableView.j", YES);CPOutlineViewColumnDidMoveNotification = "CPOutlineViewColumnDidMoveNotification"; CPOutlineViewColumnDidResizeNotification = "CPOutlineViewColumnDidResizeNotification"; CPOutlineViewItemDidCollapseNotification = "CPOutlineViewItemDidCollapseNotification"; CPOutlineViewItemDidExpandNotification = "CPOutlineViewItemDidExpandNotification"; @@ -21081,15 +21081,23 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct (self.isa.method_msgSend["reloadItem:reloadChildren:"] || _objj_forward)(self, "reloadItem:reloadChildren:", anItem, NO); } -,["void","id"]), new objj_method(sel_getUid("reloadItem:reloadChildren:"), function $CPOutlineView__reloadItem_reloadChildren_(self, _cmd, anItem, shouldReloadChildren) +,["void","id"]), new objj_method(sel_getUid("_numberOfRows"), function $CPOutlineView___numberOfRows(self, _cmd) +{ + return self._itemsForRows ? self._itemsForRows.length : 0; +} + +,["int"]), new objj_method(sel_getUid("reloadItem:reloadChildren:"), function $CPOutlineView__reloadItem_reloadChildren_(self, _cmd, anItem, shouldReloadChildren) { self._pendingItemToClean = []; self._itemAddedDuringLastLoading = []; + var previousRowCount = self._itemsForRows.length; if (!!shouldReloadChildren || !anItem) (self.isa.method_msgSend["_loadItemInfoForItem:intermediate:"] || _objj_forward)(self, "_loadItemInfoForItem:intermediate:", anItem, NO); else (self.isa.method_msgSend["_reloadItem:"] || _objj_forward)(self, "_reloadItem:", anItem); (self.isa.method_msgSend["_cleanPendingItem"] || _objj_forward)(self, "_cleanPendingItem"); + if (self._itemsForRows.length !== previousRowCount) + (self.isa.method_msgSend["noteNumberOfRowsChanged"] || _objj_forward)(self, "noteNumberOfRowsChanged"); (objj_getClass("CPOutlineView").super_class.method_dtable["_reloadDataViews"] || _objj_forward)(self, "_reloadDataViews"); } @@ -21126,8 +21134,17 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct var children = itemInfo.children; for (var i = (previousItems == null ? previousItems : (previousItems.isa.method_msgSend["count"] || _objj_forward)(previousItems, "count")) - 1; i >= 0; i--) { - var item = previousItems[i]; - if (!(children == null ? children : (children.isa.method_msgSend["containsObject:"] || _objj_forward)(children, "containsObject:", item))) + var item = previousItems[i], + found = NO; + for (var j = 0, count = children.length; j < count; j++) + { + if (children[j] === item) + { + found = YES; + break; + } + } + if (!found) (self.isa.method_msgSend["_addPendingItem:"] || _objj_forward)(self, "_addPendingItem:", item); } } @@ -21138,7 +21155,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct if (!itemInfo) return; var children = itemInfo.children; - for (var i = (children == null ? children : (children.isa.method_msgSend["count"] || _objj_forward)(children, "count")); i >= 0; i--) + for (var i = children.length - 1; i >= 0; i--) { var child = children[i]; (self.isa.method_msgSend["_addPendingItem:"] || _objj_forward)(self, "_addPendingItem:", child); @@ -21149,7 +21166,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct ,["void","id"]), new objj_method(sel_getUid("_cleanPendingItem"), function $CPOutlineView___cleanPendingItem(self, _cmd) { - for (var i = ((___r1 = self._pendingItemToClean), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); i >= 0; i--) + for (var i = ((___r1 = self._pendingItemToClean), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) - 1; i >= 0; i--) { var item = self._pendingItemToClean[i]; if (!((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["containsObject:"] || _objj_forward)(___r1, "containsObject:", item))) @@ -21182,7 +21199,8 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct } var weight = itemInfo.weight, descendants = anItem ? [anItem] : []; - ((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObject:"] || _objj_forward)(___r1, "addObject:", anItem)); + if (anItem) + ((___r1 = self._itemAddedDuringLastLoading), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObject:"] || _objj_forward)(___r1, "addObject:", anItem)); if (itemInfo.isExpanded && (self.isa.method_msgSend["_sendDataSourceShouldDeferDisplayingChildrenOfItem:"] || _objj_forward)(self, "_sendDataSourceShouldDeferDisplayingChildrenOfItem:", anItem)) { var index = 0, @@ -21281,7 +21299,7 @@ class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), funct if (!itemInfo) return nil; var parent = itemInfo.parent; - if (itemInfo[(parent == null ? parent : (parent.isa.method_msgSend["UID"] || _objj_forward)(parent, "UID"))] === self._rootItemInfo) + if (parent && self._itemInfosForItems[(parent == null ? parent : (parent.isa.method_msgSend["UID"] || _objj_forward)(parent, "UID"))] === self._rootItemInfo) parent = nil; return parent; } @@ -22109,6 +22127,226 @@ var colorForDisclosureTriangle = function(isSelected, isHighlighted) { return isSelected ? isHighlighted ? (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.9, 1.0) : (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 1.0, 1.0) : isHighlighted ? (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.4, 1.0) : (CPColor.isa.method_msgSend["colorWithCalibratedWhite:alpha:"] || _objj_forward)(CPColor, "colorWithCalibratedWhite:alpha:", 0.5, 1.0); }; +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPOutlineView\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("selectionIndexPaths"), function $CPOutlineView__selectionIndexPaths(self, _cmd) +{ + var indexes = (self.isa.method_msgSend["selectedRowIndexes"] || _objj_forward)(self, "selectedRowIndexes"), + paths = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + index = (indexes == null ? indexes : (indexes.isa.method_msgSend["firstIndex"] || _objj_forward)(indexes, "firstIndex")); + while (index !== CPNotFound) + { + var item = (self.isa.method_msgSend["itemAtRow:"] || _objj_forward)(self, "itemAtRow:", index); + if ((item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("indexPath")))) + (paths == null ? paths : (paths.isa.method_msgSend["addObject:"] || _objj_forward)(paths, "addObject:", (item == null ? item : (item.isa.method_msgSend["indexPath"] || _objj_forward)(item, "indexPath")))); + index = (indexes == null ? indexes : (indexes.isa.method_msgSend["indexGreaterThanIndex:"] || _objj_forward)(indexes, "indexGreaterThanIndex:", index)); + } + return paths; +} + +,["CPArray"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPOutlineView__initialize(self, _cmd) +{ + if (self !== (CPOutlineView.isa.method_msgSend["class"] || _objj_forward)(CPOutlineView, "class")) + return; + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "content"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "selectionIndexPaths"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "sortDescriptors"); +} + +,["void"])]); +} +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPOutlineView\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("content"), function $CPOutlineView__content(self, _cmd) +{ + return nil; +} + +,["id"]), new objj_method(sel_getUid("setContent:"), function $CPOutlineView__setContent_(self, _cmd, aContent) +{ +} + +,["void","id"]), new objj_method(sel_getUid("setSelectionIndexPaths:"), function $CPOutlineView__setSelectionIndexPaths_(self, _cmd, paths) +{ +} + +,["void","CPArray"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_binderClassForBinding:"), function $CPOutlineView___binderClassForBinding_(self, _cmd, aBinding) +{ + if (aBinding === "content") + return (_CPOutlineViewContentBinder == null ? _CPOutlineViewContentBinder : (_CPOutlineViewContentBinder.isa.method_msgSend["class"] || _objj_forward)(_CPOutlineViewContentBinder, "class")); + if (aBinding === "selectionIndexPaths") + return (_CPOutlineViewSelectionIndexPathsBinder == null ? _CPOutlineViewSelectionIndexPathsBinder : (_CPOutlineViewSelectionIndexPathsBinder.isa.method_msgSend["class"] || _objj_forward)(_CPOutlineViewSelectionIndexPathsBinder, "class")); + return (objj_getMetaClass("CPOutlineView").super_class.method_dtable["_binderClassForBinding:"] || _objj_forward)(self, "_binderClassForBinding:", aBinding); +} + +,["Class","CPString"])]); +} + +{var the_class = objj_allocateClassPair(CPBinder, "_CPOutlineViewContentBinder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_rootNode", "CPTreeNode")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("bind"), function $_CPOutlineViewContentBinder__bind(self, _cmd) +{ + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", self)); + (objj_getClass("_CPOutlineViewContentBinder").super_class.method_dtable["bind"] || _objj_forward)(self, "bind"); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("unbind"), function $_CPOutlineViewContentBinder__unbind(self, _cmd) +{ + if (((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["dataSource"] || _objj_forward)(___r1, "dataSource")) === self) + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", nil)); + (objj_getClass("_CPOutlineViewContentBinder").super_class.method_dtable["unbind"] || _objj_forward)(self, "unbind"); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("setValueFor:"), function $_CPOutlineViewContentBinder__setValueFor_(self, _cmd, aBinding) +{ + var destination = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedObjectKey)), + keyPath = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedKeyPathKey)), + value = (destination == null ? destination : (destination.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(destination, "valueForKeyPath:", keyPath)); + if (!value || !(value == null ? value : (value.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(value, "isKindOfClass:", (CPTreeNode == null ? CPTreeNode : (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class"))))) + self._rootNode = ((___r1 = (CPTreeNode == null ? CPTreeNode : (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + else + self._rootNode = value; + if (((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["dataSource"] || _objj_forward)(___r1, "dataSource")) !== self) + { + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["setDataSource:"] || _objj_forward)(___r1, "setDataSource:", self)); + } + else + { + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["reloadData"] || _objj_forward)(___r1, "reloadData")); + } + var ___r1; +} + +,["void","CPString"]), new objj_method(sel_getUid("rootNode"), function $_CPOutlineViewContentBinder__rootNode(self, _cmd) +{ + return self._rootNode; +} + +,["CPTreeNode"]), new objj_method(sel_getUid("outlineView:child:ofItem:"), function $_CPOutlineViewContentBinder__outlineView_child_ofItem_(self, _cmd, outlineView, index, item) +{ + var node = item || self._rootNode; + return ((___r1 = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", index)); + var ___r1; +} + +,["id","CPOutlineView","CPInteger","id"]), new objj_method(sel_getUid("outlineView:isItemExpandable:"), function $_CPOutlineViewContentBinder__outlineView_isItemExpandable_(self, _cmd, outlineView, item) +{ + var node = item || self._rootNode; + return !(node == null ? node : (node.isa.method_msgSend["isLeaf"] || _objj_forward)(node, "isLeaf")); +} + +,["BOOL","CPOutlineView","id"]), new objj_method(sel_getUid("outlineView:numberOfChildrenOfItem:"), function $_CPOutlineViewContentBinder__outlineView_numberOfChildrenOfItem_(self, _cmd, outlineView, item) +{ + var node = item || self._rootNode; + return ((___r1 = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + var ___r1; +} + +,["int","CPOutlineView","id"]), new objj_method(sel_getUid("outlineView:objectValueForTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_objectValueForTableColumn_byItem_(self, _cmd, outlineView, tableColumn, item) +{ + if ((item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject")))) + return (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")); + return item; +} + +,["id","CPOutlineView","CPTableColumn","id"])]); +} + +{var the_class = objj_allocateClassPair(CPBinder, "_CPOutlineViewSelectionIndexPathsBinder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isSyncingFromModel", "BOOL")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithBinding:name:to:keyPath:options:from:"), function $_CPOutlineViewSelectionIndexPathsBinder__initWithBinding_name_to_keyPath_options_from_(self, _cmd, aBinding, aName, aDestination, aKeyPath, options, aSource) +{ + self = (objj_getClass("_CPOutlineViewSelectionIndexPathsBinder").super_class.method_dtable["initWithBinding:name:to:keyPath:options:from:"] || _objj_forward)(self, "initWithBinding:name:to:keyPath:options:from:", aBinding, aName, aDestination, aKeyPath, options, aSource); + ((___r1 = (CPNotificationCenter.isa.method_msgSend["defaultCenter"] || _objj_forward)(CPNotificationCenter, "defaultCenter")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObserver:selector:name:object:"] || _objj_forward)(___r1, "addObserver:selector:name:object:", self, sel_getUid("outlineViewSelectionDidChange:"), CPOutlineViewSelectionDidChangeNotification, aSource)); + var ___r1; +} + +,["id","CPString","CPString","id","CPString","CPDictionary","id"]), new objj_method(sel_getUid("setValueFor:"), function $_CPOutlineViewSelectionIndexPathsBinder__setValueFor_(self, _cmd, aBinding) +{ + self._isSyncingFromModel = YES; + var destination = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedObjectKey)), + keyPath = ((___r1 = self._info), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectForKey:"] || _objj_forward)(___r1, "objectForKey:", CPObservedKeyPathKey)), + indexPaths = (destination == null ? destination : (destination.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(destination, "valueForKeyPath:", keyPath)) || [], + indexes = (CPMutableIndexSet.isa.method_msgSend["indexSet"] || _objj_forward)(CPMutableIndexSet, "indexSet"); + var rootNode = (destination == null ? destination : (destination.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(destination, "respondsToSelector:", sel_getUid("arrangedObjects"))) ? (destination == null ? destination : (destination.isa.method_msgSend["arrangedObjects"] || _objj_forward)(destination, "arrangedObjects")) : nil; + if (rootNode) + { + for (var i = 0, count = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["count"] || _objj_forward)(indexPaths, "count")); i < count; i++) + { + var item = (rootNode == null ? rootNode : (rootNode.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(rootNode, "descendantNodeAtIndexPath:", (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(indexPaths, "objectAtIndex:", i)))); + if (item) + { + var parentsToExpand = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + parent = (item == null ? item : (item.isa.method_msgSend["parentNode"] || _objj_forward)(item, "parentNode")); + while (parent && parent !== rootNode) + { + (parentsToExpand == null ? parentsToExpand : (parentsToExpand.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(parentsToExpand, "insertObject:atIndex:", parent, 0)); + parent = (parent == null ? parent : (parent.isa.method_msgSend["parentNode"] || _objj_forward)(parent, "parentNode")); + } + for (var j = 0; j < (parentsToExpand == null ? parentsToExpand : (parentsToExpand.isa.method_msgSend["count"] || _objj_forward)(parentsToExpand, "count")); j++) + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["expandItem:"] || _objj_forward)(___r1, "expandItem:", parentsToExpand[j])); + var row = ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["rowForItem:"] || _objj_forward)(___r1, "rowForItem:", item)); + if (row !== CPNotFound && row >= 0) + (indexes == null ? indexes : (indexes.isa.method_msgSend["addIndex:"] || _objj_forward)(indexes, "addIndex:", row)); + } + } + } + ((___r1 = self._source), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["selectRowIndexes:byExtendingSelection:"] || _objj_forward)(___r1, "selectRowIndexes:byExtendingSelection:", indexes, NO)); + self._isSyncingFromModel = NO; + var ___r1; +} + +,["void","CPString"]), new objj_method(sel_getUid("outlineViewSelectionDidChange:"), function $_CPOutlineViewSelectionIndexPathsBinder__outlineViewSelectionDidChange_(self, _cmd, note) +{ + if (self._isSyncingFromModel) + return; + (self.isa.method_msgSend["reverseSetValueFor:"] || _objj_forward)(self, "reverseSetValueFor:", "selectionIndexPaths"); +} + +,["void","CPNotification"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("unbind:forObject:"), function $_CPOutlineViewSelectionIndexPathsBinder__unbind_forObject_(self, _cmd, aBinding, anObject) +{ + if (aBinding === "selectionIndexPaths") + ((___r1 = (CPNotificationCenter.isa.method_msgSend["defaultCenter"] || _objj_forward)(CPNotificationCenter, "defaultCenter")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObserver:name:object:"] || _objj_forward)(___r1, "removeObserver:name:object:", self, CPOutlineViewSelectionDidChangeNotification, anObject)); + (objj_getMetaClass("_CPOutlineViewSelectionIndexPathsBinder").super_class.method_dtable["unbind:forObject:"] || _objj_forward)(self, "unbind:forObject:", aBinding, anObject); + var ___r1; +} + +,["void","CPString","id"])]); +} +{ +var the_class = objj_getClass("_CPOutlineViewContentBinder") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"_CPOutlineViewContentBinder\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("outlineView:objectValueForTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_objectValueForTableColumn_byItem_(self, _cmd, outlineView, tableColumn, item) +{ + var rep = (item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject"))) ? (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")) : item; + if (rep && (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier"))) + return (rep == null ? rep : (rep.isa.method_msgSend["valueForKey:"] || _objj_forward)(rep, "valueForKey:", (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier")))); + return rep; +} + +,["id","CPOutlineView","CPTableColumn","id"]), new objj_method(sel_getUid("outlineView:setObjectValue:forTableColumn:byItem:"), function $_CPOutlineViewContentBinder__outlineView_setObjectValue_forTableColumn_byItem_(self, _cmd, outlineView, value, tableColumn, item) +{ + var rep = (item == null ? item : (item.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(item, "respondsToSelector:", sel_getUid("representedObject"))) ? (item == null ? item : (item.isa.method_msgSend["representedObject"] || _objj_forward)(item, "representedObject")) : item; + if (rep && (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier"))) + (rep == null ? rep : (rep.isa.method_msgSend["setValue:forKey:"] || _objj_forward)(rep, "setValue:forKey:", value, (tableColumn == null ? tableColumn : (tableColumn.isa.method_msgSend["identifier"] || _objj_forward)(tableColumn, "identifier")))); +} + +,["void","CPOutlineView","id","CPTableColumn","id"]), new objj_method(sel_getUid("content"), function $_CPOutlineViewContentBinder__content(self, _cmd) +{ + if (self._source && self._source._itemsForRows) + return self._source._itemsForRows; + return []; +} + +,["id"])]); +} p;9;CPPanel.jt;2993;@STATIC;1.0;i;10;CPWindow.jt;2959;objj_executeFile("CPWindow.j", YES);CPOKButton = 1; CPCancelButton = 0; CPDocModalWindowMask = 1 << 6; @@ -43017,7 +43255,635 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_ ,["void","CPCoder"])]); } -p;12;CPTreeNode.jt;8980;@STATIC;1.0;I;21;Foundation/CPObject.jI;24;Foundation/CPIndexPath.jt;8906;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO); +p;18;CPTreeController.jt;48198;@STATIC;1.0;I;20;Foundation/CPArray.jI;24;Foundation/CPIndexPath.ji;20;CPObjectController.ji;19;CPKeyValueBinding.ji;12;CPTreeNode.jt;48058;objj_executeFile("Foundation/CPArray.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO);objj_executeFile("CPObjectController.j", YES);objj_executeFile("CPKeyValueBinding.j", YES);objj_executeFile("CPTreeNode.j", YES); +{var the_class = objj_allocateClassPair(CPObjectController, "CPTreeController"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_avoidsEmptySelection", "BOOL"), new objj_ivar("_preservesSelection", "BOOL"), new objj_ivar("_selectsInsertedObjects", "BOOL"), new objj_ivar("_alwaysUsesMultipleValuesMarker", "BOOL"), new objj_ivar("_childrenKeyPath", "CPString"), new objj_ivar("_countKeyPath", "CPString"), new objj_ivar("_leafKeyPath", "CPString"), new objj_ivar("_sortDescriptors", "CPArray"), new objj_ivar("_arrangedObjects", "id"), new objj_ivar("_selectionIndexPaths", "CPArray"), new objj_ivar("_disableSetContent", "BOOL")]);objj_registerClassPair(the_class); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPTreeController__init(self, _cmd) +{ + if (self = (objj_getClass("CPTreeController").super_class.method_dtable["init"] || _objj_forward)(self, "init")) + { + self._preservesSelection = YES; + self._selectsInsertedObjects = YES; + self._avoidsEmptySelection = YES; + self._alwaysUsesMultipleValuesMarker = NO; + self._childrenKeyPath = "children"; + (self == null ? self : (self.isa.method_msgSend["_init"] || _objj_forward)(self, "_init")); + } + return self; +} + +,["id"]), new objj_method(sel_getUid("_init"), function $CPTreeController___init(self, _cmd) +{ + self._sortDescriptors = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._selectionIndexPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._arrangedObjects = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("prepareContent"), function $CPTreeController__prepareContent(self, _cmd) +{ + (self.isa.method_msgSend["_setContentArray:"] || _objj_forward)(self, "_setContentArray:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject"))); +} + +,["void"]), new objj_method(sel_getUid("preservesSelection"), function $CPTreeController__preservesSelection(self, _cmd) +{ + return self._preservesSelection; +} + +,["BOOL"]), new objj_method(sel_getUid("setPreservesSelection:"), function $CPTreeController__setPreservesSelection_(self, _cmd, value) +{ + self._preservesSelection = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("selectsInsertedObjects"), function $CPTreeController__selectsInsertedObjects(self, _cmd) +{ + return self._selectsInsertedObjects; +} + +,["BOOL"]), new objj_method(sel_getUid("setSelectsInsertedObjects:"), function $CPTreeController__setSelectsInsertedObjects_(self, _cmd, value) +{ + self._selectsInsertedObjects = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("avoidsEmptySelection"), function $CPTreeController__avoidsEmptySelection(self, _cmd) +{ + return self._avoidsEmptySelection; +} + +,["BOOL"]), new objj_method(sel_getUid("setAvoidsEmptySelection:"), function $CPTreeController__setAvoidsEmptySelection_(self, _cmd, value) +{ + self._avoidsEmptySelection = value; +} + +,["void","BOOL"]), new objj_method(sel_getUid("alwaysUsesMultipleValuesMarker"), function $CPTreeController__alwaysUsesMultipleValuesMarker(self, _cmd) +{ + return self._alwaysUsesMultipleValuesMarker; +} + +,["BOOL"]), new objj_method(sel_getUid("setAlwaysUsesMultipleValuesMarker:"), function $CPTreeController__setAlwaysUsesMultipleValuesMarker_(self, _cmd, aFlag) +{ + self._alwaysUsesMultipleValuesMarker = aFlag; +} + +,["void","BOOL"]), new objj_method(sel_getUid("sortDescriptors"), function $CPTreeController__sortDescriptors(self, _cmd) +{ + return self._sortDescriptors; +} + +,["CPArray"]), new objj_method(sel_getUid("setSortDescriptors:"), function $CPTreeController__setSortDescriptors_(self, _cmd, value) +{ + if (self._sortDescriptors === value) + return; + self._sortDescriptors = (value == null ? value : (value.isa.method_msgSend["copy"] || _objj_forward)(value, "copy")); + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); +} + +,["void","CPArray"]), new objj_method(sel_getUid("childrenKeyPath"), function $CPTreeController__childrenKeyPath(self, _cmd) +{ + return self._childrenKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setChildrenKeyPath:"), function $CPTreeController__setChildrenKeyPath_(self, _cmd, aKeyPath) +{ + if (self._childrenKeyPath === aKeyPath) + return; + self._childrenKeyPath = aKeyPath; + (self.isa.method_msgSend["rearrangeObjects"] || _objj_forward)(self, "rearrangeObjects"); +} + +,["void","CPString"]), new objj_method(sel_getUid("countKeyPath"), function $CPTreeController__countKeyPath(self, _cmd) +{ + return self._countKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setCountKeyPath:"), function $CPTreeController__setCountKeyPath_(self, _cmd, aKeyPath) +{ + self._countKeyPath = aKeyPath; +} + +,["void","CPString"]), new objj_method(sel_getUid("leafKeyPath"), function $CPTreeController__leafKeyPath(self, _cmd) +{ + return self._leafKeyPath; +} + +,["CPString"]), new objj_method(sel_getUid("setLeafKeyPath:"), function $CPTreeController__setLeafKeyPath_(self, _cmd, aKeyPath) +{ + self._leafKeyPath = aKeyPath; +} + +,["void","CPString"]), new objj_method(sel_getUid("childrenKeyPathForNode:"), function $CPTreeController__childrenKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["childrenKeyPath"] || _objj_forward)(self, "childrenKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("countKeyPathForNode:"), function $CPTreeController__countKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["countKeyPath"] || _objj_forward)(self, "countKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("leafKeyPathForNode:"), function $CPTreeController__leafKeyPathForNode_(self, _cmd, node) +{ + return (self.isa.method_msgSend["leafKeyPath"] || _objj_forward)(self, "leafKeyPath"); +} + +,["CPString","CPTreeNode"]), new objj_method(sel_getUid("setContent:"), function $CPTreeController__setContent_(self, _cmd, value) +{ + if (self._disableSetContent) + return; + if (!value) + value = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + if (!(value == null ? value : (value.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(value, "isKindOfClass:", (CPArray.isa.method_msgSend["class"] || _objj_forward)(CPArray, "class")))) + value = (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", value); + var oldSelectedObjects = nil, + oldSelectionIndexPaths = nil; + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + oldSelectedObjects = (self.isa.method_msgSend["selectedObjects"] || _objj_forward)(self, "selectedObjects"); + else + oldSelectionIndexPaths = (self.isa.method_msgSend["selectionIndexPaths"] || _objj_forward)(self, "selectionIndexPaths"); + self._contentObject = value; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + (self.isa.method_msgSend["__setSelectedObjects:"] || _objj_forward)(self, "__setSelectedObjects:", oldSelectedObjects); + else + (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", oldSelectionIndexPaths, self._avoidsEmptySelection); +} + +,["void","id"]), new objj_method(sel_getUid("_setContentArray:"), function $CPTreeController___setContentArray_(self, _cmd, anArray) +{ + (self.isa.method_msgSend["setContent:"] || _objj_forward)(self, "setContent:", anArray); +} + +,["void","id"]), new objj_method(sel_getUid("contentArray"), function $CPTreeController__contentArray(self, _cmd) +{ + return self._contentObject; +} + +,["id"]), new objj_method(sel_getUid("arrangedObjects"), function $CPTreeController__arrangedObjects(self, _cmd) +{ + return self._arrangedObjects; +} + +,["id"]), new objj_method(sel_getUid("rearrangeObjects"), function $CPTreeController__rearrangeObjects(self, _cmd) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "arrangedObjects"); + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "arrangedObjects"); +} + +,["void"]), new objj_method(sel_getUid("_rearrangeObjects"), function $CPTreeController___rearrangeObjects(self, _cmd) +{ + var oldSelectedObjects = nil, + oldSelectionIndexPaths = nil; + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + oldSelectedObjects = (self.isa.method_msgSend["selectedObjects"] || _objj_forward)(self, "selectedObjects"); + else + oldSelectionIndexPaths = (self.isa.method_msgSend["selectionIndexPaths"] || _objj_forward)(self, "selectionIndexPaths"); + (self.isa.method_msgSend["__rebuildArrangedObjectsTree"] || _objj_forward)(self, "__rebuildArrangedObjectsTree"); + if ((self.isa.method_msgSend["preservesSelection"] || _objj_forward)(self, "preservesSelection")) + (self.isa.method_msgSend["__setSelectedObjects:"] || _objj_forward)(self, "__setSelectedObjects:", oldSelectedObjects); + else + (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", oldSelectionIndexPaths, self._avoidsEmptySelection); +} + +,["void"]), new objj_method(sel_getUid("__rebuildArrangedObjectsTree"), function $CPTreeController____rebuildArrangedObjectsTree(self, _cmd) +{ + var rootNode = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)), + contentArray = (self.isa.method_msgSend["contentArray"] || _objj_forward)(self, "contentArray"); + if (contentArray && (contentArray == null ? contentArray : (contentArray.isa.method_msgSend["count"] || _objj_forward)(contentArray, "count")) > 0) + { + var children = (self.isa.method_msgSend["_buildTreeNodesForObjects:"] || _objj_forward)(self, "_buildTreeNodesForObjects:", contentArray); + ((___r1 = (rootNode == null ? rootNode : (rootNode.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(rootNode, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(___r1, "addObjectsFromArray:", children)); + } + self._arrangedObjects = rootNode; + var ___r1; +} + +,["void"]), new objj_method(sel_getUid("_buildTreeNodesForObjects:"), function $CPTreeController___buildTreeNodesForObjects_(self, _cmd, objects) +{ + var count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); + if (count === 0) + return []; + var sortedObjects = objects; + if (self._sortDescriptors && ((___r1 = self._sortDescriptors), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0) + sortedObjects = (objects == null ? objects : (objects.isa.method_msgSend["sortedArrayUsingDescriptors:"] || _objj_forward)(objects, "sortedArrayUsingDescriptors:", self._sortDescriptors)); + var nodes = (CPMutableArray.isa.method_msgSend["arrayWithCapacity:"] || _objj_forward)(CPMutableArray, "arrayWithCapacity:", count); + for (var i = 0; i < count; i++) + { + var obj = (sortedObjects == null ? sortedObjects : (sortedObjects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(sortedObjects, "objectAtIndex:", i)), + node = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", obj)); + if (self._childrenKeyPath) + { + var childObjects = (obj == null ? obj : (obj.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(obj, "valueForKeyPath:", self._childrenKeyPath)); + if (childObjects && (childObjects == null ? childObjects : (childObjects.isa.method_msgSend["count"] || _objj_forward)(childObjects, "count")) > 0) + { + var childNodes = (self.isa.method_msgSend["_buildTreeNodesForObjects:"] || _objj_forward)(self, "_buildTreeNodesForObjects:", childObjects); + ((___r1 = (node == null ? node : (node.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(node, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(___r1, "addObjectsFromArray:", childNodes)); + } + } + (nodes == null ? nodes : (nodes.isa.method_msgSend["addObject:"] || _objj_forward)(nodes, "addObject:", node)); + } + return nodes; + var ___r1; +} + +,["CPArray","CPArray"]), new objj_method(sel_getUid("selectionIndexPath"), function $CPTreeController__selectionIndexPath(self, _cmd) +{ + return ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0 ? ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", 0)) : nil; + var ___r1; +} + +,["CPIndexPath"]), new objj_method(sel_getUid("setSelectionIndexPath:"), function $CPTreeController__setSelectionIndexPath_(self, _cmd, indexPath) +{ + var paths = indexPath ? (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath) : (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", paths); +} + +,["BOOL","CPIndexPath"]), new objj_method(sel_getUid("selectionIndexPaths"), function $CPTreeController__selectionIndexPaths(self, _cmd) +{ + return self._selectionIndexPaths; +} + +,["CPArray"]), new objj_method(sel_getUid("setSelectionIndexPaths:"), function $CPTreeController__setSelectionIndexPaths_(self, _cmd, indexPaths) +{ + (self.isa.method_msgSend["_selectionWillChange"] || _objj_forward)(self, "_selectionWillChange"); + var result = (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", indexPaths, NO); + (self.isa.method_msgSend["_selectionDidChange"] || _objj_forward)(self, "_selectionDidChange"); + return result; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("__setSelectionIndexPaths:avoidEmpty:"), function $CPTreeController____setSelectionIndexPaths_avoidEmpty_(self, _cmd, indexPaths, avoidEmpty) +{ + var newPaths = indexPaths; + if (!newPaths) + newPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + if (!(newPaths == null ? newPaths : (newPaths.isa.method_msgSend["count"] || _objj_forward)(newPaths, "count")) && avoidEmpty) + { + if (((___r1 = ((___r2 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0) + newPaths = (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", 0)); + } + if (((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["isEqualToArray:"] || _objj_forward)(___r1, "isEqualToArray:", newPaths))) + return NO; + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "selectionIndexPaths"); + self._selectionIndexPaths = (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["copy"] || _objj_forward)(newPaths, "copy")); + var binderClass = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "selectionIndexPaths")); + if (binderClass) + { + var binding = (binderClass == null ? binderClass : (binderClass.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binderClass, "getBinding:forObject:", "selectionIndexPaths", self)); + if (binding) + (binding == null ? binding : (binding.isa.method_msgSend["reverseSetValueFor:"] || _objj_forward)(binding, "reverseSetValueFor:", "selectionIndexPaths")); + } + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "selectionIndexPaths"); + return YES; + var ___r1, ___r2; +} + +,["BOOL","CPArray","BOOL"]), new objj_method(sel_getUid("addSelectionIndexPaths:"), function $CPTreeController__addSelectionIndexPaths_(self, _cmd, indexPaths) +{ + var newPaths = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["mutableCopy"] || _objj_forward)(___r1, "mutableCopy")); + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["addObjectsFromArray:"] || _objj_forward)(newPaths, "addObjectsFromArray:", indexPaths)); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", newPaths); + var ___r1; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("removeSelectionIndexPaths:"), function $CPTreeController__removeSelectionIndexPaths_(self, _cmd, indexPaths) +{ + var newPaths = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["mutableCopy"] || _objj_forward)(___r1, "mutableCopy")); + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["removeObjectsInArray:"] || _objj_forward)(newPaths, "removeObjectsInArray:", indexPaths)); + return (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", newPaths); + var ___r1; +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("selectedNodes"), function $CPTreeController__selectedNodes(self, _cmd) +{ + var nodes = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + count = ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + for (var i = 0; i < count; i++) + { + var node = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", ((___r2 = self._selectionIndexPaths), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r2, "objectAtIndex:", i)))); + if (node) + (nodes == null ? nodes : (nodes.isa.method_msgSend["addObject:"] || _objj_forward)(nodes, "addObject:", node)); + } + return nodes; + var ___r1, ___r2; +} + +,["CPArray"]), new objj_method(sel_getUid("selectedObjects"), function $CPTreeController__selectedObjects(self, _cmd) +{ + var objects = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"), + nodes = (self.isa.method_msgSend["selectedNodes"] || _objj_forward)(self, "selectedNodes"), + count = (nodes == null ? nodes : (nodes.isa.method_msgSend["count"] || _objj_forward)(nodes, "count")); + for (var i = 0; i < count; i++) + (objects == null ? objects : (objects.isa.method_msgSend["addObject:"] || _objj_forward)(objects, "addObject:", ((___r1 = (nodes == null ? nodes : (nodes.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(nodes, "objectAtIndex:", i))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["representedObject"] || _objj_forward)(___r1, "representedObject")))); + return objects; + var ___r1; +} + +,["CPArray"]), new objj_method(sel_getUid("__setSelectedObjects:"), function $CPTreeController____setSelectedObjects_(self, _cmd, objects) +{ + if (!objects || (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")) === 0) + return (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"), self._avoidsEmptySelection); + var newPaths = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"); + for (var i = 0, count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); i < count; i++) + { + var path = (self.isa.method_msgSend["_indexPathForObject:inNode:"] || _objj_forward)(self, "_indexPathForObject:inNode:", (objects == null ? objects : (objects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(objects, "objectAtIndex:", i)), (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")); + if (path) + (newPaths == null ? newPaths : (newPaths.isa.method_msgSend["addObject:"] || _objj_forward)(newPaths, "addObject:", path)); + } + return (self.isa.method_msgSend["__setSelectionIndexPaths:avoidEmpty:"] || _objj_forward)(self, "__setSelectionIndexPaths:avoidEmpty:", newPaths, self._avoidsEmptySelection); +} + +,["BOOL","CPArray"]), new objj_method(sel_getUid("_indexPathForObject:inNode:"), function $CPTreeController___indexPathForObject_inNode_(self, _cmd, anObject, node) +{ + if ((node == null ? node : (node.isa.method_msgSend["representedObject"] || _objj_forward)(node, "representedObject")) === anObject && (node == null ? node : (node.isa.method_msgSend["parentNode"] || _objj_forward)(node, "parentNode")) != nil) + return (node == null ? node : (node.isa.method_msgSend["indexPath"] || _objj_forward)(node, "indexPath")); + var children = (node == null ? node : (node.isa.method_msgSend["childNodes"] || _objj_forward)(node, "childNodes")); + if (children) + { + for (var i = 0, count = (children == null ? children : (children.isa.method_msgSend["count"] || _objj_forward)(children, "count")); i < count; i++) + { + var found = (self.isa.method_msgSend["_indexPathForObject:inNode:"] || _objj_forward)(self, "_indexPathForObject:inNode:", anObject, (children == null ? children : (children.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(children, "objectAtIndex:", i))); + if (found) + return found; + } + } + return nil; +} + +,["CPIndexPath","id","CPTreeNode"]), new objj_method(sel_getUid("canInsert"), function $CPTreeController__canInsert(self, _cmd) +{ + return (self.isa.method_msgSend["isEditable"] || _objj_forward)(self, "isEditable"); +} + +,["BOOL"]), new objj_method(sel_getUid("canInsertChild"), function $CPTreeController__canInsertChild(self, _cmd) +{ + return (self.isa.method_msgSend["isEditable"] || _objj_forward)(self, "isEditable") && ((___r1 = self._selectionIndexPaths), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) > 0; + var ___r1; +} + +,["BOOL"]), new objj_method(sel_getUid("canAddChild"), function $CPTreeController__canAddChild(self, _cmd) +{ + return (self.isa.method_msgSend["canInsertChild"] || _objj_forward)(self, "canInsertChild"); +} + +,["BOOL"]), new objj_method(sel_getUid("add:"), function $CPTreeController__add_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsert"] || _objj_forward)(self, "canInsert")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + selectionPath = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath"); + if (!selectionPath) + selectionPath = (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", ((___r1 = ((___r2 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count"))); + var length = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["length"] || _objj_forward)(selectionPath, "length")), + lastIndex = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(selectionPath, "indexAtPosition:", length - 1)), + insertPath = (selectionPath == null ? selectionPath : (selectionPath.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(selectionPath, "indexPathByRemovingLastIndex")); + insertPath = (insertPath == null ? insertPath : (insertPath.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(insertPath, "indexPathByAddingIndex:", lastIndex + 1)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1, ___r2; +} + +,["void","id"]), new objj_method(sel_getUid("addChild:"), function $CPTreeController__addChild_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canAddChild"] || _objj_forward)(self, "canAddChild")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath"))), + childCount = ((___r1 = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["childNodes"] || _objj_forward)(parentNode, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")), + insertPath = ((___r1 = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(___r1, "indexPathByAddingIndex:", childCount)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1; +} + +,["void","id"]), new objj_method(sel_getUid("insert:"), function $CPTreeController__insert_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsert"] || _objj_forward)(self, "canInsert")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + indexPath = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath") || (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", 0); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, indexPath); +} + +,["void","id"]), new objj_method(sel_getUid("insertChild:"), function $CPTreeController__insertChild_(self, _cmd, sender) +{ + if (!(self.isa.method_msgSend["canInsertChild"] || _objj_forward)(self, "canInsertChild")) + return; + var newObject = (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent") ? (self.isa.method_msgSend["newObject"] || _objj_forward)(self, "newObject") : (self.isa.method_msgSend["_defaultNewObject"] || _objj_forward)(self, "_defaultNewObject"), + insertPath = ((___r1 = (self.isa.method_msgSend["selectionIndexPath"] || _objj_forward)(self, "selectionIndexPath")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(___r1, "indexPathByAddingIndex:", 0)); + (self.isa.method_msgSend["insertObject:atArrangedObjectIndexPath:"] || _objj_forward)(self, "insertObject:atArrangedObjectIndexPath:", newObject, insertPath); + var ___r1; +} + +,["void","id"]), new objj_method(sel_getUid("insertObject:atArrangedObjectIndexPath:"), function $CPTreeController__insertObject_atArrangedObjectIndexPath_(self, _cmd, anObject, indexPath) +{ + (self.isa.method_msgSend["insertObjects:atArrangedObjectIndexPaths:"] || _objj_forward)(self, "insertObjects:atArrangedObjectIndexPaths:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", anObject), (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath)); +} + +,["void","id","CPIndexPath"]), new objj_method(sel_getUid("insertObjects:atArrangedObjectIndexPaths:"), function $CPTreeController__insertObjects_atArrangedObjectIndexPaths_(self, _cmd, objects, indexPaths) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "content"); + self._disableSetContent = YES; + var count = (objects == null ? objects : (objects.isa.method_msgSend["count"] || _objj_forward)(objects, "count")); + for (var i = 0; i < count; i++) + { + var object = (objects == null ? objects : (objects.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(objects, "objectAtIndex:", i)), + path = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(indexPaths, "objectAtIndex:", i)), + length = (path == null ? path : (path.isa.method_msgSend["length"] || _objj_forward)(path, "length")); + if (length === 1) + { + ((___r1 = self._contentObject), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(___r1, "insertObject:atIndex:", object, (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", 0)))); + } + else + { + var parentPath = (path == null ? path : (path.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(path, "indexPathByRemovingLastIndex")), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", parentPath)); + if (parentNode) + { + var parentObj = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["representedObject"] || _objj_forward)(parentNode, "representedObject")), + childIndex = (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", length - 1)); + var children = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["valueForKeyPath:"] || _objj_forward)(parentObj, "valueForKeyPath:", self._childrenKeyPath)); + if (!children) + { + children = (CPMutableArray.isa.method_msgSend["array"] || _objj_forward)(CPMutableArray, "array"); + (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["setValue:forKeyPath:"] || _objj_forward)(parentObj, "setValue:forKeyPath:", children, self._childrenKeyPath)); + } + var mutableChildren = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["mutableArrayValueForKeyPath:"] || _objj_forward)(parentObj, "mutableArrayValueForKeyPath:", self._childrenKeyPath)); + (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(mutableChildren, "insertObject:atIndex:", object, childIndex)); + } + } + } + var binding = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "contentArray")); + if (binding) + ((___r1 = (binding == null ? binding : (binding.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binding, "getBinding:forObject:", "contentArray", self))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_contentArrayDidChange"] || _objj_forward)(___r1, "_contentArrayDidChange")); + self._disableSetContent = NO; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + if ((self.isa.method_msgSend["selectsInsertedObjects"] || _objj_forward)(self, "selectsInsertedObjects")) + (self.isa.method_msgSend["setSelectionIndexPaths:"] || _objj_forward)(self, "setSelectionIndexPaths:", indexPaths); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "content"); + var ___r1; +} + +,["void","CPArray","CPArray"]), new objj_method(sel_getUid("remove:"), function $CPTreeController__remove_(self, _cmd, sender) +{ + (self.isa.method_msgSend["removeObjectsAtArrangedObjectIndexPaths:"] || _objj_forward)(self, "removeObjectsAtArrangedObjectIndexPaths:", self._selectionIndexPaths); +} + +,["void","id"]), new objj_method(sel_getUid("removeObjectAtArrangedObjectIndexPath:"), function $CPTreeController__removeObjectAtArrangedObjectIndexPath_(self, _cmd, indexPath) +{ + (self.isa.method_msgSend["removeObjectsAtArrangedObjectIndexPaths:"] || _objj_forward)(self, "removeObjectsAtArrangedObjectIndexPaths:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", indexPath)); +} + +,["void","CPIndexPath"]), new objj_method(sel_getUid("removeObjectsAtArrangedObjectIndexPaths:"), function $CPTreeController__removeObjectsAtArrangedObjectIndexPaths_(self, _cmd, indexPaths) +{ + (self.isa.method_msgSend["willChangeValueForKey:"] || _objj_forward)(self, "willChangeValueForKey:", "content"); + self._disableSetContent = YES; + var sortedPaths = (indexPaths == null ? indexPaths : (indexPaths.isa.method_msgSend["sortedArrayUsingSelector:"] || _objj_forward)(indexPaths, "sortedArrayUsingSelector:", sel_getUid("compare:"))), + count = (sortedPaths == null ? sortedPaths : (sortedPaths.isa.method_msgSend["count"] || _objj_forward)(sortedPaths, "count")); + for (var i = count - 1; i >= 0; i--) + { + var path = (sortedPaths == null ? sortedPaths : (sortedPaths.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(sortedPaths, "objectAtIndex:", i)), + length = (path == null ? path : (path.isa.method_msgSend["length"] || _objj_forward)(path, "length")); + if (length === 1) + { + ((___r1 = self._contentObject), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(___r1, "removeObjectAtIndex:", (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", 0)))); + } + else + { + var parentPath = (path == null ? path : (path.isa.method_msgSend["indexPathByRemovingLastIndex"] || _objj_forward)(path, "indexPathByRemovingLastIndex")), + parentNode = ((___r1 = (self.isa.method_msgSend["arrangedObjects"] || _objj_forward)(self, "arrangedObjects")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["descendantNodeAtIndexPath:"] || _objj_forward)(___r1, "descendantNodeAtIndexPath:", parentPath)); + if (parentNode) + { + var parentObj = (parentNode == null ? parentNode : (parentNode.isa.method_msgSend["representedObject"] || _objj_forward)(parentNode, "representedObject")), + childIndex = (path == null ? path : (path.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(path, "indexAtPosition:", length - 1)), + mutableChildren = (parentObj == null ? parentObj : (parentObj.isa.method_msgSend["mutableArrayValueForKeyPath:"] || _objj_forward)(parentObj, "mutableArrayValueForKeyPath:", self._childrenKeyPath)); + if (mutableChildren && childIndex < (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["count"] || _objj_forward)(mutableChildren, "count"))) + (mutableChildren == null ? mutableChildren : (mutableChildren.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(mutableChildren, "removeObjectAtIndex:", childIndex)); + } + } + } + var binding = ((___r1 = (self.isa.method_msgSend["class"] || _objj_forward)(self, "class")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_binderClassForBinding:"] || _objj_forward)(___r1, "_binderClassForBinding:", "contentArray")); + if (binding) + ((___r1 = (binding == null ? binding : (binding.isa.method_msgSend["getBinding:forObject:"] || _objj_forward)(binding, "getBinding:forObject:", "contentArray", self))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["_contentArrayDidChange"] || _objj_forward)(___r1, "_contentArrayDidChange")); + self._disableSetContent = NO; + (self.isa.method_msgSend["_rearrangeObjects"] || _objj_forward)(self, "_rearrangeObjects"); + (self.isa.method_msgSend["didChangeValueForKey:"] || _objj_forward)(self, "didChangeValueForKey:", "content"); + var ___r1; +} + +,["void","CPArray"]), new objj_method(sel_getUid("moveNode:toIndexPath:"), function $CPTreeController__moveNode_toIndexPath_(self, _cmd, node, indexPath) +{ + (self.isa.method_msgSend["moveNodes:toIndexPath:"] || _objj_forward)(self, "moveNodes:toIndexPath:", (CPArray.isa.method_msgSend["arrayWithObject:"] || _objj_forward)(CPArray, "arrayWithObject:", node), indexPath); +} + +,["void","CPTreeNode","CPIndexPath"]), new objj_method(sel_getUid("moveNodes:toIndexPath:"), function $CPTreeController__moveNodes_toIndexPath_(self, _cmd, nodes, startingIndexPath) +{ + (CPException.isa.method_msgSend["raise:reason:"] || _objj_forward)(CPException, "raise:reason:", CPUnsupportedMethodException, "moveNodes:toIndexPath: is not yet implemented in CPTreeController."); +} + +,["void","CPArray","CPIndexPath"])]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTreeController__initialize(self, _cmd) +{ + if (self !== (CPTreeController.isa.method_msgSend["class"] || _objj_forward)(CPTreeController, "class")) + return; + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "contentArray"); + (self.isa.method_msgSend["exposeBinding:"] || _objj_forward)(self, "exposeBinding:", "sortDescriptors"); +} + +,["void"]), new objj_method(sel_getUid("keyPathsForValuesAffectingContentArray"), function $CPTreeController__keyPathsForValuesAffectingContentArray(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "content"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingArrangedObjects"), function $CPTreeController__keyPathsForValuesAffectingArrangedObjects(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "content", "sortDescriptors", "childrenKeyPath"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectionIndexPath"), function $CPTreeController__keyPathsForValuesAffectingSelectionIndexPath(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectedObjects"), function $CPTreeController__keyPathsForValuesAffectingSelectedObjects(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingSelectedNodes"), function $CPTreeController__keyPathsForValuesAffectingSelectedNodes(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanAddChild"), function $CPTreeController__keyPathsForValuesAffectingCanAddChild(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanInsert"), function $CPTreeController__keyPathsForValuesAffectingCanInsert(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"]), new objj_method(sel_getUid("keyPathsForValuesAffectingCanInsertChild"), function $CPTreeController__keyPathsForValuesAffectingCanInsertChild(self, _cmd) +{ + return (CPSet.isa.method_msgSend["setWithObjects:"] || _objj_forward)(CPSet, "setWithObjects:", "selectionIndexPaths"); +} + +,["CPSet"])]); +} +var CPTreeControllerAvoidsEmptySelection = "CPTreeControllerAvoidsEmptySelection", + CPTreeControllerPreservesSelection = "CPTreeControllerPreservesSelection", + CPTreeControllerSelectsInsertedObjects = "CPTreeControllerSelectsInsertedObjects", + CPTreeControllerAlwaysUsesMultipleValuesMarker = "CPTreeControllerAlwaysUsesMultipleValuesMarker", + CPTreeControllerChildrenKeyPath = "CPTreeControllerChildrenKeyPath", + CPTreeControllerCountKeyPath = "CPTreeControllerCountKeyPath", + CPTreeControllerLeafKeyPath = "CPTreeControllerLeafKeyPath"; +{ +var the_class = objj_getClass("CPTreeController") +if(!the_class) throw new SyntaxError("*** Could not find definition for class \"CPTreeController\""); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTreeController__initWithCoder_(self, _cmd, aCoder) +{ + self = (objj_getClass("CPTreeController").super_class.method_dtable["initWithCoder:"] || _objj_forward)(self, "initWithCoder:", aCoder); + if (self) + { + self._avoidsEmptySelection = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerAvoidsEmptySelection)); + self._preservesSelection = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerPreservesSelection)); + self._selectsInsertedObjects = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerSelectsInsertedObjects)); + self._alwaysUsesMultipleValuesMarker = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeBoolForKey:"] || _objj_forward)(aCoder, "decodeBoolForKey:", CPTreeControllerAlwaysUsesMultipleValuesMarker)); + self._childrenKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerChildrenKeyPath)) || "children"; + self._countKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerCountKeyPath)); + self._leafKeyPath = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeControllerLeafKeyPath)); + self._sortDescriptors = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._selectionIndexPaths = (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"); + self._arrangedObjects = ((___r1 = (CPTreeNode.isa.method_msgSend["alloc"] || _objj_forward)(CPTreeNode, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["initWithRepresentedObject:"] || _objj_forward)(___r1, "initWithRepresentedObject:", nil)); + if (!(self == null ? self : (self.isa.method_msgSend["content"] || _objj_forward)(self, "content")) && (self == null ? self : (self.isa.method_msgSend["automaticallyPreparesContent"] || _objj_forward)(self, "automaticallyPreparesContent"))) + (self == null ? self : (self.isa.method_msgSend["prepareContent"] || _objj_forward)(self, "prepareContent")); + else if (!(self == null ? self : (self.isa.method_msgSend["content"] || _objj_forward)(self, "content"))) + (self == null ? self : (self.isa.method_msgSend["_setContentArray:"] || _objj_forward)(self, "_setContentArray:", (CPArray.isa.method_msgSend["array"] || _objj_forward)(CPArray, "array"))); + } + return self; + var ___r1; +} + +,["id","CPCoder"]), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTreeController__encodeWithCoder_(self, _cmd, aCoder) +{ + (objj_getClass("CPTreeController").super_class.method_dtable["encodeWithCoder:"] || _objj_forward)(self, "encodeWithCoder:", aCoder); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._avoidsEmptySelection, CPTreeControllerAvoidsEmptySelection)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._preservesSelection, CPTreeControllerPreservesSelection)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._selectsInsertedObjects, CPTreeControllerSelectsInsertedObjects)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeBool:forKey:"] || _objj_forward)(aCoder, "encodeBool:forKey:", self._alwaysUsesMultipleValuesMarker, CPTreeControllerAlwaysUsesMultipleValuesMarker)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._childrenKeyPath, CPTreeControllerChildrenKeyPath)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._countKeyPath, CPTreeControllerCountKeyPath)); + (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["encodeObject:forKey:"] || _objj_forward)(aCoder, "encodeObject:forKey:", self._leafKeyPath, CPTreeControllerLeafKeyPath)); +} + +,["void","CPCoder"]), new objj_method(sel_getUid("awakeFromCib"), function $CPTreeController__awakeFromCib(self, _cmd) +{ + (self.isa.method_msgSend["_selectionWillChange"] || _objj_forward)(self, "_selectionWillChange"); + (self.isa.method_msgSend["_selectionDidChange"] || _objj_forward)(self, "_selectionDidChange"); +} + +,["void"])]); +} +p;12;CPTreeNode.jt;12134;@STATIC;1.0;I;21;Foundation/CPObject.jI;24;Foundation/CPIndexPath.jI;20;Foundation/CPArray.jt;12034;objj_executeFile("Foundation/CPObject.j", NO);objj_executeFile("Foundation/CPIndexPath.j", NO);objj_executeFile("Foundation/CPArray.j", NO); {var the_class = objj_allocateClassPair(CPObject, "CPTreeNode"), meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_representedObject", "id"), new objj_ivar("_parentNode", "CPTreeNode"), new objj_ivar("_childNodes", "CPMutableArray")]);objj_registerClassPair(the_class); class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), function $CPTreeNode__representedObject(self, _cmd) @@ -43025,12 +43891,22 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu return self._representedObject; } -,["id"]), new objj_method(sel_getUid("parentNode"), function $CPTreeNode__parentNode(self, _cmd) +,["id"]), new objj_method(sel_getUid("setRepresentedObject:"), function $CPTreeNode__setRepresentedObject_(self, _cmd, newValue) +{ + self._representedObject = newValue; +} + +,["void","id"]), new objj_method(sel_getUid("parentNode"), function $CPTreeNode__parentNode(self, _cmd) { return self._parentNode; } -,["CPTreeNode"]), new objj_method(sel_getUid("initWithRepresentedObject:"), function $CPTreeNode__initWithRepresentedObject_(self, _cmd, anObject) +,["CPTreeNode"]), new objj_method(sel_getUid("setParentNode:"), function $CPTreeNode__setParentNode_(self, _cmd, newValue) +{ + self._parentNode = newValue; +} + +,["void","CPTreeNode"]), new objj_method(sel_getUid("initWithRepresentedObject:"), function $CPTreeNode__initWithRepresentedObject_(self, _cmd, anObject) { self = (objj_getClass("CPTreeNode").super_class.method_dtable["init"] || _objj_forward)(self, "init"); if (self) @@ -43043,31 +43919,21 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["id","id"]), new objj_method(sel_getUid("indexPath"), function $CPTreeNode__indexPath(self, _cmd) { - if (self._parentNode != nil) + if (self._parentNode) { - var path; - var index; - index = ((___r1 = ((___r2 = self._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexOfObject:"] || _objj_forward)(___r1, "indexOfObject:", self)); - path = ((___r1 = self._parentNode), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPath"] || _objj_forward)(___r1, "indexPath")); - if (path != nil) - { - return (path == null ? path : (path.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(path, "indexPathByAddingIndex:", index)); - } - else - { - return (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", index); - } - } - else - { - return nil; + var index = ((___r1 = ((___r2 = self._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["childNodes"] || _objj_forward)(___r2, "childNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexOfObjectIdenticalTo:"] || _objj_forward)(___r1, "indexOfObjectIdenticalTo:", self)); + var parentPath = ((___r1 = self._parentNode), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["indexPath"] || _objj_forward)(___r1, "indexPath")); + if (parentPath) + return (parentPath == null ? parentPath : (parentPath.isa.method_msgSend["indexPathByAddingIndex:"] || _objj_forward)(parentPath, "indexPathByAddingIndex:", index)); + return (CPIndexPath.isa.method_msgSend["indexPathWithIndex:"] || _objj_forward)(CPIndexPath, "indexPathWithIndex:", index); } + return nil; var ___r1, ___r2; } ,["CPIndexPath"]), new objj_method(sel_getUid("isLeaf"), function $CPTreeNode__isLeaf(self, _cmd) { - return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) <= 0; + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")) == 0; var ___r1; } @@ -43084,15 +43950,21 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["CPMutableArray"]), new objj_method(sel_getUid("insertObject:inChildNodesAtIndex:"), function $CPTreeNode__insertObject_inChildNodesAtIndex_(self, _cmd, aTreeNode, anIndex) { - ((___r1 = ((___r2 = aTreeNode._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(___r2, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectIdenticalTo:"] || _objj_forward)(___r1, "removeObjectIdenticalTo:", aTreeNode)); - aTreeNode._parentNode = self; + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class"))) && aTreeNode._parentNode) + { + ((___r1 = ((___r2 = aTreeNode._parentNode), ___r2 == null ? ___r2 : (___r2.isa.method_msgSend["mutableChildNodes"] || _objj_forward)(___r2, "mutableChildNodes"))), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectIdenticalTo:"] || _objj_forward)(___r1, "removeObjectIdenticalTo:", aTreeNode)); + } + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + aTreeNode._parentNode = self; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["insertObject:atIndex:"] || _objj_forward)(___r1, "insertObject:atIndex:", aTreeNode, anIndex)); var ___r1, ___r2; } -,["void","id","CPInteger"]), new objj_method(sel_getUid("removeObjectFromChildNodesAtIndex:"), function $CPTreeNode__removeObjectFromChildNodesAtIndex_(self, _cmd, anIndex) +,["void","CPTreeNode","CPInteger"]), new objj_method(sel_getUid("removeObjectFromChildNodesAtIndex:"), function $CPTreeNode__removeObjectFromChildNodesAtIndex_(self, _cmd, anIndex) { - ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex))._parentNode = nil; + var node = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + if ((node == null ? node : (node.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(node, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + node._parentNode = nil; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["removeObjectAtIndex:"] || _objj_forward)(___r1, "removeObjectAtIndex:", anIndex)); var ___r1; } @@ -43100,15 +43972,30 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu ,["void","CPInteger"]), new objj_method(sel_getUid("replaceObjectFromChildNodesAtIndex:withObject:"), function $CPTreeNode__replaceObjectFromChildNodesAtIndex_withObject_(self, _cmd, anIndex, aTreeNode) { var oldTreeNode = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); - oldTreeNode._parentNode = nil; - aTreeNode._parentNode = self; + if ((oldTreeNode == null ? oldTreeNode : (oldTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(oldTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + oldTreeNode._parentNode = nil; + if ((aTreeNode == null ? aTreeNode : (aTreeNode.isa.method_msgSend["isKindOfClass:"] || _objj_forward)(aTreeNode, "isKindOfClass:", (CPTreeNode.isa.method_msgSend["class"] || _objj_forward)(CPTreeNode, "class")))) + aTreeNode._parentNode = self; ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["replaceObjectAtIndex:withObject:"] || _objj_forward)(___r1, "replaceObjectAtIndex:withObject:", anIndex, aTreeNode)); var ___r1; } ,["void","CPInteger","id"]), new objj_method(sel_getUid("objectInChildNodesAtIndex:"), function $CPTreeNode__objectInChildNodesAtIndex_(self, _cmd, anIndex) { - return self._childNodes[anIndex]; + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + var ___r1; +} + +,["id","CPInteger"]), new objj_method(sel_getUid("count"), function $CPTreeNode__count(self, _cmd) +{ + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); + var ___r1; +} + +,["CPInteger"]), new objj_method(sel_getUid("objectAtIndex:"), function $CPTreeNode__objectAtIndex_(self, _cmd, anIndex) +{ + return ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", anIndex)); + var ___r1; } ,["id","CPInteger"]), new objj_method(sel_getUid("sortWithSortDescriptors:recursively:"), function $CPTreeNode__sortWithSortDescriptors_recursively_(self, _cmd, sortDescriptors, shouldSortRecursively) @@ -43118,17 +44005,28 @@ class_addMethods(the_class, [new objj_method(sel_getUid("representedObject"), fu return; var count = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["count"] || _objj_forward)(___r1, "count")); while (count--) - ((___r1 = self._childNodes[count]), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["sortWithSortDescriptors:recursively:"] || _objj_forward)(___r1, "sortWithSortDescriptors:recursively:", sortDescriptors, YES)); + { + var child = ((___r1 = self._childNodes), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(___r1, "objectAtIndex:", count)); + if ((child == null ? child : (child.isa.method_msgSend["respondsToSelector:"] || _objj_forward)(child, "respondsToSelector:", sel_getUid("sortWithSortDescriptors:recursively:")))) + (child == null ? child : (child.isa.method_msgSend["sortWithSortDescriptors:recursively:"] || _objj_forward)(child, "sortWithSortDescriptors:recursively:", sortDescriptors, YES)); + } var ___r1; } ,["void","CPArray","BOOL"]), new objj_method(sel_getUid("descendantNodeAtIndexPath:"), function $CPTreeNode__descendantNodeAtIndexPath_(self, _cmd, indexPath) { - var index = 0, - count = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")), - node = self; - for (; index < count; ++index) - node = (node == null ? node : (node.isa.method_msgSend["objectInChildNodesAtIndex:"] || _objj_forward)(node, "objectInChildNodesAtIndex:", (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(indexPath, "indexAtPosition:", index)))); + if (!indexPath || (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")) == 0) + return self; + var node = self, + length = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["length"] || _objj_forward)(indexPath, "length")); + for (var i = 0; i < length; i++) + { + var index = (indexPath == null ? indexPath : (indexPath.isa.method_msgSend["indexAtPosition:"] || _objj_forward)(indexPath, "indexAtPosition:", i)), + count = (node == null ? node : (node.isa.method_msgSend["count"] || _objj_forward)(node, "count")); + if (index >= count || index < 0) + return nil; + node = (node == null ? node : (node.isa.method_msgSend["objectAtIndex:"] || _objj_forward)(node, "objectAtIndex:", index)); + } return node; } @@ -43155,8 +44053,11 @@ var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_ self._representedObject = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeRepresentedObjectKey)); self._parentNode = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeParentNodeKey)); self._childNodes = (aCoder == null ? aCoder : (aCoder.isa.method_msgSend["decodeObjectForKey:"] || _objj_forward)(aCoder, "decodeObjectForKey:", CPTreeNodeChildNodesKey)); + if (!self._childNodes) + self._childNodes = ((___r1 = (CPMutableArray.isa.method_msgSend["alloc"] || _objj_forward)(CPMutableArray, "alloc")), ___r1 == null ? ___r1 : (___r1.isa.method_msgSend["init"] || _objj_forward)(___r1, "init")); } return self; + var ___r1; } ,["id","CPCoder"]), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTreeNode__encodeWithCoder_(self, _cmd, aCoder) diff --git a/Resources/CPTreeControllerTest/AppController.j b/Resources/CPTreeControllerTest/AppController.j new file mode 100644 index 000000000..15e24c0e4 --- /dev/null +++ b/Resources/CPTreeControllerTest/AppController.j @@ -0,0 +1,153 @@ +/* + * AppController.j + * TreeControllerBindingsTest + * + * Created for testing CPOutlineView and CPTreeController bindings. + */ + +@import +@import + +@implementation AppController : CPObject +{ + CPTreeController treeController; + CPTextField logField; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask], + contentView = [theWindow contentView]; + + // 1. Create the Data Model + var root1 = [[Node alloc] initWithName:@"Root 1" children:[]], + child1 = [[Node alloc] initWithName:@"Child 1.1" children:[]], + child2 = [[Node alloc] initWithName:@"Child 1.2" children:[]], + root2 = [[Node alloc] initWithName:@"Root 2" children:[]], + child3 = [[Node alloc] initWithName:@"Child 2.1" children:[]]; + + [root1 setChildren:[child1, child2]]; + [root2 setChildren:[child3]]; + var contentArray = [root1, root2]; + + // 2. Setup the Tree Controller + treeController = [[CPTreeController alloc] init]; + [treeController setChildrenKeyPath:@"children"]; + [treeController setContent:contentArray]; + + // 3. Setup the Outline View + var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(20, 20, 250, 300)]; + [scrollView setAutohidesScrollers:YES]; + + var outlineView = [[CPOutlineView alloc] initWithFrame:CGRectMake(0, 0, 250, 300)]; + var column = [[CPTableColumn alloc] initWithIdentifier:@"name"]; + [[column headerView] setStringValue:@"Node Name"]; + [column setWidth:240]; + [column setEditable:YES]; // Editable to test bidirectional bindings in the tree + + [outlineView addTableColumn:column]; + [outlineView setOutlineTableColumn:column]; + [outlineView setAllowsMultipleSelection:YES]; + [scrollView setDocumentView:outlineView]; + [contentView addSubview:scrollView]; + + // 4. Establish Bindings for the Outline View + [outlineView bind:@"content" toObject:treeController withKeyPath:@"arrangedObjects" options:nil]; + [outlineView bind:@"selectionIndexPaths" toObject:treeController withKeyPath:@"selectionIndexPaths" options:nil]; + + var scrollView2 = [[CPScrollView alloc] initWithFrame:CGRectMake(300, 20, 250, 300)]; + [scrollView2 setAutohidesScrollers:YES]; + var outlineView2 = [[CPOutlineView alloc] initWithFrame:CGRectMake(0, 0, 250, 300)]; + var column2 = [[CPTableColumn alloc] initWithIdentifier:@"name"]; + [[column2 headerView] setStringValue:@"Node Name"]; + [column2 setWidth:240]; + [column2 setEditable:YES]; // Editable to test bidirectional bindings in the tree + + [outlineView2 addTableColumn:column2]; + [outlineView2 setOutlineTableColumn:column2]; + [outlineView2 setAllowsMultipleSelection:YES]; + [scrollView2 setDocumentView:outlineView2]; + [contentView addSubview:scrollView2]; + + // 4. Establish Bindings for the Outline View + [outlineView2 bind:@"content" toObject:treeController withKeyPath:@"arrangedObjects" options:nil]; + [outlineView2 bind:@"selectionIndexPaths" toObject:treeController withKeyPath:@"selectionIndexPaths" options:nil]; + + + + [theWindow orderFront:self]; +} + +- (void)selectSpecificNode:(id)sender +{ + // Programmatically select index path [0, 1] which is "Child 1.2" + // This tests the `_CPOutlineViewSelectionIndexPathsBinder` auto-expand logic. + var path =[CPIndexPath indexPathWithIndexes:[0, 1]]; + [treeController setSelectionIndexPath:path]; +} + +- (void)observeValueForKeyPath:(CPString)keyPath ofObject:(id)object change:(CPDictionary)change context:(id)context +{ + if (keyPath === @"selectionIndexPaths") + { + var selectedObjects = [treeController selectedObjects]; + if ([selectedObjects count] > 0) + { + var names = [CPMutableArray array]; + for (var i = 0; i <[selectedObjects count]; i++) + [names addObject:[selectedObjects[i] name]];[logField setStringValue:[names componentsJoinedByString:@", "]]; + } + else + { + [logField setStringValue:@"Nothing selected"]; + } + } +} + +@end + + +// --- Custom Data Model --- + +@implementation Node : CPObject +{ + CPString name; + CPArray children; +} + +- (id)initWithName:(CPString)aName children:(CPArray)someChildren +{ + self = [super init]; + if (self) + { + name = aName; + children = someChildren; + } + return self; +} + +// Explicit accessors to ensure Key-Value Observing (KVO) works flawlessly. +- (void)setName:(CPString)aName +{ + [self willChangeValueForKey:@"name"]; + name = aName;[self didChangeValueForKey:@"name"]; +} + +- (CPString)name +{ + return name; +} + +- (void)setChildren:(CPArray)someChildren +{ + [self willChangeValueForKey:@"children"]; + children = someChildren; + [self didChangeValueForKey:@"children"]; +} + +- (CPArray)children +{ + return children; +} + +@end diff --git a/Resources/CPTreeControllerTest/Info.plist b/Resources/CPTreeControllerTest/Info.plist new file mode 100644 index 000000000..3af283991 --- /dev/null +++ b/Resources/CPTreeControllerTest/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + treecontroller + CPPrincipalClass + CPApplication + + diff --git a/Resources/CPTreeControllerTest/Jakefile b/Resources/CPTreeControllerTest/Jakefile new file mode 100644 index 000000000..8f62ca5cd --- /dev/null +++ b/Resources/CPTreeControllerTest/Jakefile @@ -0,0 +1,93 @@ +/* + * Jakefile + * tooltips + * + * Created by You on April 26, 2011. + * Copyright 2011, Your Company All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"); + +app ("tooltips", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "tooltips.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("tooltips"); + task.setIdentifier("com.yourcompany.tooltips"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("tooltips"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["tooltips"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "tooltips", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "tooltips", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "tooltips")); + OS.system(["press", "-f", FILE.join("Build", "Release", "tooltips"), FILE.join("Build", "Deployment", "tooltips")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "tooltips")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "tooltips"), FILE.join("Build", "Desktop", "tooltips", "tooltips.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "tooltips", "tooltips.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "tooltips")); + print("----------------------------"); +} diff --git a/Resources/CPTreeControllerTest/index-debug.html b/Resources/CPTreeControllerTest/index-debug.html new file mode 100644 index 000000000..a36b1d3b9 --- /dev/null +++ b/Resources/CPTreeControllerTest/index-debug.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + __project.name__ + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Resources/CPTreeControllerTest/index.html b/Resources/CPTreeControllerTest/index.html new file mode 100644 index 000000000..ea103c811 --- /dev/null +++ b/Resources/CPTreeControllerTest/index.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + __project.name__ + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Resources/CPTreeControllerTest/main.j b/Resources/CPTreeControllerTest/main.j new file mode 100644 index 000000000..9e6a15286 --- /dev/null +++ b/Resources/CPTreeControllerTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * tooltips + * + * Created by You on April 26, 2011. + * Copyright 2011, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Resources/recipes.txt b/Resources/recipes.txt index 2bc05436c..0410dc268 100644 --- a/Resources/recipes.txt +++ b/Resources/recipes.txt @@ -1,143 +1,144 @@ -1772558475571|ArrayController1| -1772558475587|ArrayControllerInitialSelectionTest| -1772558475600|ArrayControllerRemovingFirstTest| -1772558475614|AttachedSheet| -1772558475628|AttachedSheet2| -1772558475641|Bindings| -1772558475655|CGCanvasContext| -1772558475669|CGPath| -1772558475683|CPAlertTest| -1772558475696|CPAnimatablePropertyContainerTest| -1772558475710|CPAnimationContextTest| -1772558475724|CPAnimationTest| -1772558475738|CPBinder-echo-bug| -1772558475751|CPBoxCibTest| -1772558475766|CPBoxTest| -1772558475779|CPBrowserTest| -1772558475793|CPButtonKeyEquivalentDefaultTest| -1772558475807|CPButtonTest| -1772558475821|CPByteCountFormatter| -1772558475835|CPCollectionViewNibTest| -1772558475848|CPColor-CPImage-description| -1772558475862|CPColorWellBindings| -1772558475876|CPComboBoxTest| -1772558475897|CPControlPerformClickExceptionTest| -1772558475914|CPControlSize| -1772558475932|CPCursor| -1772558475947|CPDateFormatterTest| -1772558475961|CPDatePickerTest| -1772558475974|CPDictionaryControllerTest| -1772558475988|CPDocumentControllerTest| -1772558476002|CPFormatterTest| -1772558476015|CPGraphicsTest| -1772558476029|CPImageAndTextViewImageScaling| -1772558476043|CPImageViewAlignmentScaling| -1772558476056|CPImageViewTest| -1772558476070|CPImageViewbindingsTest| -1772558476084|CPLevelIndicator| -1772558476097|CPLocalizationTest| -1772558476111|CPLogTest| -1772558476124|CPMenuCALayerTest| -1772558476138|CPMenuEnabledBindingsTest| -1772558476152|CPMenuKeyEquivalents| -1772558476165|CPMenuRemoveAllTest| -1772558476179|CPMenuSubmenuPlacementConstraints| -1772558476193|CPMenuTest| -1772558476206|CPOutlineViewCibTest| -1772558476220|CPOutlineViewTest| -1772558476234|CPOutlineViewViewBasedCibTest| -1772558476247|CPPanelTest| -1772558476261|CPPlatformWindow| -1772558476275|CPPlattformWindowMinSize| -1772558476288|CPPopUpButtonBindings| -1772558476302|CPPopUpButtonTest| -1772558476316|CPPopover| -1772558476330|CPPredicateEditorCibTest| -1772558476343|CPProgressIndicator| -1772558476357|CPPropertyListSerializationTest| -1772558476371|CPRadioBindings| -1772558476384|CPRuleEditorCibTest| -1772558476398|CPScrollView| -1772558476411|CPScrollView2| -1772558476425|CPSearchField| -1772558476439|CPSearchFieldPredicateBinding| -1772558476452|CPSegmentedControlBindings| -1772558476466|CPSegmentedControlTest| -1772558476479|CPSoundTest| -1772558476493|CPSplitViewDivider| -1772558476506|CPSplitViewTest| -1772558476520|CPStackViewTest| -1772558476534|CPStepperBindings| -1772558476547|CPStepperNibTest| -1772558476561|CPTabView2| -1772558476574|CPTabViewBindings| -1772558476588|CPTabViewNib| -1772558476601|CPTableViewGroupRows| -1772558476615|CPTextField| -1772558476629|CPTextFieldEditingStyleTest| -1772558476642|CPTextFieldHeightTest| -1772558476656|CPTextFieldMovementsTest| -1772558476670|CPTextFieldMultiline| -1772558476683|CPTextView| -1772558476697|CPTextViewCibTest| -1772558476710|CPTextViewDelegateAndNotifications| -1772558476724|CPTimeZone| -1772558476738|CPTokenFieldTest| -1772558476751|CPToolTip| -1772558476765|CPToolbarTest| -1772558476779|CPURLConnectionAsyncTest| -1772558476792|CPURLConnectionSynchronousTest| -1772558476806|CPUserDefaults| -1772558476820|CPUserDefaultsControllerTest| -1772558476833|CPUserNotificationTest| -1772558476847|CPViewController| -1772558476860|CPVisualEffectViewTest| -1772558476874|CPWebViewTest| -1772558476888|CPWebViewTest2| -1772558476901|CPWindowLiveResizeTest| -1772558476915|CPWindowMovableTest| -1772558476928|CPWindowResizeStyle| -1772558476942|ChildWindows| -1772558476956|CompilationTests| -1772558476969|ContinuouslyUpdatesValueBinding| -1772558476983|CopyAndPaste| -1772558476996|CrossOriginTest| -1772558477010|FF4096Test| -1772558477024|FontEnhancementTest| -1772558477037|FontMetricsExplorer| -1772558477051|KeyEquivalents| -1772558477064|KeyViewLoopTest| -1772558477078|KeyWindowInTheBackgroundActivation| -1772558477091|LayoutTest| -1772558477105|LoadTimeTest| -1772558477119|LongBindings| -1772558477132|MobileTest| -1772558477146|MultipleValueBindings| -1772558477160|NSBoxTest| -1772558477173|NSBrowserTest| -1772558477187|NewTextFieldBezel| -1772558477201|Nib2CibAlignment| -1772558477214|Nib2CibBaselineAlignementTest| -1772558477228|Nib2CibSubviewsOrderTest| -1772558477241|NibAppRemixed| -1772558477255|PatternFillTest| -1772558477269|PlatformWindows| -1772558477282|PopUpButtonEscTest| -1772558477296|ScalingTest| -1772558477310|ScalingTest2| -1772558477323|ScrollviewTheming| -1772558477337|SheetWindowOrderFrontIssue| -1772558477351|SimpleBindings2| -1772558477365|SmartFoldersDemo| -1772558477378|TableTest| -1772558477392|ThemeBrowser| -1772558477406|ThemeKitchenSink| -1772558477419|TrackingArea| -1772558477433|UndoRedoWithMenuUpdate| -1772558477446|UserlandNSTest| -1772558477460|layoutEphemeralSubviewTest| -1772558477474|loadDynamicFrameworks| -1772558477487|performKeyEquivalentTest| -1772558477501|predicateWithFormat| -1772558477515|resignFirstResponder-CPControlTextDidEndEditing| -1772558477528|sizeToFitFix| +1772996249321|ArrayController1| +1772996249335|ArrayControllerInitialSelectionTest| +1772996249348|ArrayControllerRemovingFirstTest| +1772996249361|AttachedSheet| +1772996249374|AttachedSheet2| +1772996249386|Bindings| +1772996249399|CGCanvasContext| +1772996249412|CGPath| +1772996249425|CPAlertTest| +1772996249437|CPAnimatablePropertyContainerTest| +1772996249450|CPAnimationContextTest| +1772996249463|CPAnimationTest| +1772996249475|CPBinder-echo-bug| +1772996249488|CPBoxCibTest| +1772996249500|CPBoxTest| +1772996249513|CPBrowserTest| +1772996249526|CPButtonKeyEquivalentDefaultTest| +1772996249539|CPButtonTest| +1772996249551|CPByteCountFormatter| +1772996249564|CPCollectionViewNibTest| +1772996249577|CPColor-CPImage-description| +1772996249589|CPColorWellBindings| +1772996249602|CPComboBoxTest| +1772996249615|CPControlPerformClickExceptionTest| +1772996249627|CPControlSize| +1772996249640|CPCursor| +1772996249653|CPDateFormatterTest| +1772996249666|CPDatePickerTest| +1772996249679|CPDictionaryControllerTest| +1772996249692|CPDocumentControllerTest| +1772996249705|CPFormatterTest| +1772996249718|CPGraphicsTest| +1772996249731|CPImageAndTextViewImageScaling| +1772996249744|CPImageViewAlignmentScaling| +1772996249757|CPImageViewTest| +1772996249770|CPImageViewbindingsTest| +1772996249782|CPLevelIndicator| +1772996249795|CPLocalizationTest| +1772996249808|CPLogTest| +1772996249821|CPMenuCALayerTest| +1772996249834|CPMenuEnabledBindingsTest| +1772996249847|CPMenuKeyEquivalents| +1772996249859|CPMenuRemoveAllTest| +1772996249872|CPMenuSubmenuPlacementConstraints| +1772996249885|CPMenuTest| +1772996249897|CPOutlineViewCibTest| +1772996249910|CPOutlineViewTest| +1772996249922|CPOutlineViewViewBasedCibTest| +1772996249935|CPPanelTest| +1772996249948|CPPlatformWindow| +1772996249961|CPPlattformWindowMinSize| +1772996249974|CPPopUpButtonBindings| +1772996249987|CPPopUpButtonTest| +1772996250000|CPPopover| +1772996250012|CPPredicateEditorCibTest| +1772996250025|CPProgressIndicator| +1772996250038|CPPropertyListSerializationTest| +1772996250051|CPRadioBindings| +1772996250063|CPRuleEditorCibTest| +1772996250076|CPScrollView| +1772996250088|CPScrollView2| +1772996250101|CPSearchField| +1772996250114|CPSearchFieldPredicateBinding| +1772996250127|CPSegmentedControlBindings| +1772996250140|CPSegmentedControlTest| +1772996250152|CPSoundTest| +1772996250165|CPSplitViewDivider| +1772996250178|CPSplitViewTest| +1772996250191|CPStackViewTest| +1772996250204|CPStepperBindings| +1772996250217|CPStepperNibTest| +1772996250230|CPTabView2| +1772996250243|CPTabViewBindings| +1772996250255|CPTabViewNib| +1772996250268|CPTableViewGroupRows| +1772996250281|CPTextField| +1772996250293|CPTextFieldEditingStyleTest| +1772996250306|CPTextFieldHeightTest| +1772996250319|CPTextFieldMovementsTest| +1772996250332|CPTextFieldMultiline| +1772996250345|CPTextView| +1772996250358|CPTextViewCibTest| +1772996250371|CPTextViewDelegateAndNotifications| +1772996250383|CPTimeZone| +1772996250396|CPTokenFieldTest| +1772996250409|CPToolTip| +1772996250421|CPToolbarTest| +1772996250435|CPTreeControllerTest| +1772996250447|CPURLConnectionAsyncTest| +1772996250460|CPURLConnectionSynchronousTest| +1772996250472|CPUserDefaults| +1772996250485|CPUserDefaultsControllerTest| +1772996250497|CPUserNotificationTest| +1772996250510|CPViewController| +1772996250523|CPVisualEffectViewTest| +1772996250536|CPWebViewTest| +1772996250549|CPWebViewTest2| +1772996250562|CPWindowLiveResizeTest| +1772996250575|CPWindowMovableTest| +1772996250588|CPWindowResizeStyle| +1772996250601|ChildWindows| +1772996250614|CompilationTests| +1772996250626|ContinuouslyUpdatesValueBinding| +1772996250639|CopyAndPaste| +1772996250651|CrossOriginTest| +1772996250664|FF4096Test| +1772996250677|FontEnhancementTest| +1772996250689|FontMetricsExplorer| +1772996250702|KeyEquivalents| +1772996250715|KeyViewLoopTest| +1772996250728|KeyWindowInTheBackgroundActivation| +1772996250741|LayoutTest| +1772996250754|LoadTimeTest| +1772996250766|LongBindings| +1772996250779|MobileTest| +1772996250792|MultipleValueBindings| +1772996250804|NSBoxTest| +1772996250818|NSBrowserTest| +1772996250831|NewTextFieldBezel| +1772996250844|Nib2CibAlignment| +1772996250857|Nib2CibBaselineAlignementTest| +1772996250870|Nib2CibSubviewsOrderTest| +1772996250883|NibAppRemixed| +1772996250895|PatternFillTest| +1772996250908|PlatformWindows| +1772996250920|PopUpButtonEscTest| +1772996250933|ScalingTest| +1772996250945|ScalingTest2| +1772996250958|ScrollviewTheming| +1772996250970|SheetWindowOrderFrontIssue| +1772996250983|SimpleBindings2| +1772996250995|SmartFoldersDemo| +1772996251008|TableTest| +1772996251020|ThemeBrowser| +1772996251034|ThemeKitchenSink| +1772996251047|TrackingArea| +1772996251060|UndoRedoWithMenuUpdate| +1772996251073|UserlandNSTest| +1772996251085|layoutEphemeralSubviewTest| +1772996251098|loadDynamicFrameworks| +1772996251110|performKeyEquivalentTest| +1772996251124|predicateWithFormat| +1772996251136|resignFirstResponder-CPControlTextDidEndEditing| +1772996251149|sizeToFitFix|