[ruleeditor] r103 commited - NSPredicateEditor first attempt

74 views
Skip to first unread message

codesite...@google.com

unread,
Jul 21, 2009, 5:16:39 AM7/21/09
to psruleedit...@googlegroups.com
Revision: 103
Author: cacaodev
Date: Tue Jul 21 02:15:15 2009
Log: NSPredicateEditor first attempt
http://code.google.com/p/ruleeditor/source/detail?r=103

Added:
/trunk/English.lproj/NSPredicateEditor.xib
/trunk/NSPredicateEditor Tiger-Info.plist
/trunk/NSPredicateEditorController.h
/trunk/NSPredicateEditorController.m
/trunk/NSRuleEditor/NSPredicateEditor.h
/trunk/NSRuleEditor/NSPredicateEditor.m
/trunk/NSRuleEditor/NSPredicateEditorItem.h
/trunk/NSRuleEditor/NSPredicateEditorItem.m
/trunk/NSRuleEditor/NSPredicateEditorRowTemplate.h
/trunk/NSRuleEditor/NSPredicateEditorRowTemplate.m
Modified:
/trunk/EditableTextField.m
/trunk/English.lproj/NSRuleEditor.xib
/trunk/English.lproj/NSRuleEditorVanilla.xib
/trunk/NSRuleEditor/NSRuleEditor.h
/trunk/NSRuleEditor/NSRuleEditor.m
/trunk/NSRuleEditor/NSRuleEditorPopupButton.h
/trunk/NSRuleEditor/NSRuleEditorPopupButton.m
/trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.h
/trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.m
/trunk/NSRuleEditor/NSRuleEditorTextField.m
/trunk/NSRuleEditor/NSRuleEditorTextFieldCell.h
/trunk/NSRuleEditor/NSRuleEditorTextFieldCell.m
/trunk/NSRuleEditor/NSRuleEditorViewSliceRow.h
/trunk/NSRuleEditor/NSRuleEditorViewSliceRow.m
/trunk/NSRuleEditor.xcodeproj/project.pbxproj
/trunk/NSRuleEditor.xcodeproj/x.mode2v3
/trunk/NSRuleEditor.xcodeproj/x.pbxuser
/trunk/NSRuleEditorController.m
/trunk/RuleDelegate.m
/trunk/Vanilla/NSRuleEditorViewSliceRow.m
/trunk/Vanilla/RuleEditor.m

=======================================
--- /dev/null
+++ /trunk/English.lproj/NSPredicateEditor.xib Tue Jul 21 02:15:15 2009
@@ -0,0 +1,3159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9G55</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.43</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="368"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1021">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSCustomObject" id="1014">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1050">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSCustomObject" id="203559887">
+ <string key="NSClassName">NSFontManager</string>
+ </object>
+ <object class="NSMenu" id="649796088">
+ <string key="NSTitle">AMainMenu</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="694149608">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">NewApplication</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <object class="NSCustomResource" key="NSOnImage" id="756751024">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuCheckmark</string>
+ </object>
+ <object class="NSCustomResource" key="NSMixedImage" id="908425081">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuMixedState</string>
+ </object>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="110575045">
+ <string key="NSTitle">NewApplication</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="238522557">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">About NewApplication</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="304266470">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="609285721">
+ <reference key="NSMenu" ref="110575045"/>
+ <string type="base64-UTF8"
key="NSTitle">UHJlZmVyZW5jZXPigKY</string>
+ <string key="NSKeyEquiv">,</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="481834944">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1046388886">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Services</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="752062318">
+ <string key="NSTitle">Services</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <string key="NSName">_NSServicesMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="646227648">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="755159360">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Hide NewApplication</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="342932134">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Hide Others</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="908899353">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Show All</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1056857174">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="632727374">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Quit NewApplication</string>
+ <string key="NSKeyEquiv">q</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ <string key="NSName">_NSAppleMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="379814623">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">File</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="720053764">
+ <string key="NSTitle">File</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="705341025">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">New</string>
+ <string key="NSKeyEquiv">n</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="722745758">
+ <reference key="NSMenu" ref="720053764"/>
+ <string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string>
+ <string key="NSKeyEquiv">o</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1025936716">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">Open Recent</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="1065607017">
+ <string key="NSTitle">Open Recent</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="759406840">
+ <reference key="NSMenu" ref="1065607017"/>
+ <string key="NSTitle">Clear Menu</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ <string key="NSName">_NSRecentDocumentsMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="425164168">
+ <reference key="NSMenu" ref="720053764"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="776162233">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">Close</string>
+ <string key="NSKeyEquiv">w</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1023925487">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">Save</string>
+ <string key="NSKeyEquiv">s</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="117038363">
+ <reference key="NSMenu" ref="720053764"/>
+ <string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string>
+ <string key="NSKeyEquiv">S</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="579971712">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">Revert to Saved</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1010469920">
+ <reference key="NSMenu" ref="720053764"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="294629803">
+ <reference key="NSMenu" ref="720053764"/>
+ <string key="NSTitle">Page Setup...</string>
+ <string key="NSKeyEquiv">P</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSToolTip"/>
+ </object>
+ <object class="NSMenuItem" id="49223823">
+ <reference key="NSMenu" ref="720053764"/>
+ <string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string>
+ <string key="NSKeyEquiv">p</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="952259628">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">Edit</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="789758025">
+ <string key="NSTitle">Edit</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="1058277027">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Undo</string>
+ <string key="NSKeyEquiv">z</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="790794224">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Redo</string>
+ <string key="NSKeyEquiv">Z</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1040322652">
+ <reference key="NSMenu" ref="789758025"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="296257095">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Cut</string>
+ <string key="NSKeyEquiv">x</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="860595796">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Copy</string>
+ <string key="NSKeyEquiv">c</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="29853731">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Paste</string>
+ <string key="NSKeyEquiv">v</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="437104165">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Delete</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="583158037">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Select All</string>
+ <string key="NSKeyEquiv">a</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="212016141">
+ <reference key="NSMenu" ref="789758025"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="892235320">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Find</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="963351320">
+ <string key="NSTitle">Find</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="447796847">
+ <reference key="NSMenu" ref="963351320"/>
+ <string type="base64-UTF8" key="NSTitle">RmluZOKApg</string>
+ <string key="NSKeyEquiv">f</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">1</int>
+ </object>
+ <object class="NSMenuItem" id="326711663">
+ <reference key="NSMenu" ref="963351320"/>
+ <string key="NSTitle">Find Next</string>
+ <string key="NSKeyEquiv">g</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">2</int>
+ </object>
+ <object class="NSMenuItem" id="270902937">
+ <reference key="NSMenu" ref="963351320"/>
+ <string key="NSTitle">Find Previous</string>
+ <string key="NSKeyEquiv">G</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">3</int>
+ </object>
+ <object class="NSMenuItem" id="159080638">
+ <reference key="NSMenu" ref="963351320"/>
+ <string key="NSTitle">Use Selection for Find</string>
+ <string key="NSKeyEquiv">e</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">7</int>
+ </object>
+ <object class="NSMenuItem" id="88285865">
+ <reference key="NSMenu" ref="963351320"/>
+ <string key="NSTitle">Jump to Selection</string>
+ <string key="NSKeyEquiv">j</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="972420730">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Spelling and Grammar</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="769623530">
+ <string key="NSTitle">Spelling and Grammar</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="679648819">
+ <reference key="NSMenu" ref="769623530"/>
+ <string type="base64-UTF8"
key="NSTitle">U2hvdyBTcGVsbGluZ+KApg</string>
+ <string key="NSKeyEquiv">:</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="96193923">
+ <reference key="NSMenu" ref="769623530"/>
+ <string key="NSTitle">Check Spelling</string>
+ <string key="NSKeyEquiv">;</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="948374510">
+ <reference key="NSMenu" ref="769623530"/>
+ <string key="NSTitle">Check Spelling While Typing</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="967646866">
+ <reference key="NSMenu" ref="769623530"/>
+ <string key="NSTitle">Check Grammar With Spelling</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="507821607">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Substitutions</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="698887838">
+ <string key="NSTitle">Substitutions</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="605118523">
+ <reference key="NSMenu" ref="698887838"/>
+ <string key="NSTitle">Smart Copy/Paste</string>
+ <string key="NSKeyEquiv">f</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">1</int>
+ </object>
+ <object class="NSMenuItem" id="197661976">
+ <reference key="NSMenu" ref="698887838"/>
+ <string key="NSTitle">Smart Quotes</string>
+ <string key="NSKeyEquiv">g</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">2</int>
+ </object>
+ <object class="NSMenuItem" id="708854459">
+ <reference key="NSMenu" ref="698887838"/>
+ <string key="NSTitle">Smart Links</string>
+ <string key="NSKeyEquiv">G</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">3</int>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="676164635">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Speech</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="785027613">
+ <string key="NSTitle">Speech</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="731782645">
+ <reference key="NSMenu" ref="785027613"/>
+ <string key="NSTitle">Start Speaking</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="680220178">
+ <reference key="NSMenu" ref="785027613"/>
+ <string key="NSTitle">Stop Speaking</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="2112390">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">Format</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="501796217">
+ <string key="NSTitle">Format</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="971801161">
+ <reference key="NSMenu" ref="501796217"/>
+ <string key="NSTitle">Font</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="497723209">
+ <string key="NSTitle">Font</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="441815405">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Show Fonts</string>
+ <string key="NSKeyEquiv">t</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="878418168">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Bold</string>
+ <string key="NSKeyEquiv">b</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">2</int>
+ </object>
+ <object class="NSMenuItem" id="454477206">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Italic</string>
+ <string key="NSKeyEquiv">i</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">1</int>
+ </object>
+ <object class="NSMenuItem" id="813763567">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Underline</string>
+ <string key="NSKeyEquiv">u</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="352534544">
+ <reference key="NSMenu" ref="497723209"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="759504030">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Bigger</string>
+ <string key="NSKeyEquiv">+</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">3</int>
+ </object>
+ <object class="NSMenuItem" id="324950511">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Smaller</string>
+ <string key="NSKeyEquiv">-</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <int key="NSTag">4</int>
+ </object>
+ <object class="NSMenuItem" id="1051461222">
+ <reference key="NSMenu" ref="497723209"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="248601140">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Kern</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="744149954">
+ <string key="NSTitle">Kern</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="15858418">
+ <reference key="NSMenu" ref="744149954"/>
+ <string key="NSTitle">Use Default</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="757553982">
+ <reference key="NSMenu" ref="744149954"/>
+ <string key="NSTitle">Use None</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="613500744">
+ <reference key="NSMenu" ref="744149954"/>
+ <string key="NSTitle">Tighten</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="397264890">
+ <reference key="NSMenu" ref="744149954"/>
+ <string key="NSTitle">Loosen</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="38294751">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Ligature</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="56736524">
+ <string key="NSTitle">Ligature</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="675759450">
+ <reference key="NSMenu" ref="56736524"/>
+ <string key="NSTitle">Use Default</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="316802497">
+ <reference key="NSMenu" ref="56736524"/>
+ <string key="NSTitle">Use None</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="420353311">
+ <reference key="NSMenu" ref="56736524"/>
+ <string key="NSTitle">Use All</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="4994896">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Baseline</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="477178502">
+ <string key="NSTitle">Baseline</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="178074898">
+ <reference key="NSMenu" ref="477178502"/>
+ <string key="NSTitle">Use Default</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="307100484">
+ <reference key="NSMenu" ref="477178502"/>
+ <string key="NSTitle">Superscript</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="286838373">
+ <reference key="NSMenu" ref="477178502"/>
+ <string key="NSTitle">Subscript</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="27277497">
+ <reference key="NSMenu" ref="477178502"/>
+ <string key="NSTitle">Raise</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="173530678">
+ <reference key="NSMenu" ref="477178502"/>
+ <string key="NSTitle">Lower</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="422130818">
+ <reference key="NSMenu" ref="497723209"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="49443634">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Show Colors</string>
+ <string key="NSKeyEquiv">C</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="21512141">
+ <reference key="NSMenu" ref="497723209"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="1056959215">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Copy Style</string>
+ <string key="NSKeyEquiv">c</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="477727584">
+ <reference key="NSMenu" ref="497723209"/>
+ <string key="NSTitle">Paste Style</string>
+ <string key="NSKeyEquiv">v</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ <string key="NSName">_NSFontMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="726511710">
+ <reference key="NSMenu" ref="501796217"/>
+ <string key="NSTitle">Text</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="424393205">
+ <string key="NSTitle">Text</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="382198266">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Align Left</string>
+ <string key="NSKeyEquiv">{</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="879920475">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Center</string>
+ <string key="NSKeyEquiv">|</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="981054879">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Justify</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="242341901">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Align Right</string>
+ <string key="NSKeyEquiv">}</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="880529558">
+ <reference key="NSMenu" ref="424393205"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="651461010">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Show Ruler</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="185606376">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Copy Ruler</string>
+ <string key="NSKeyEquiv">c</string>
+ <int key="NSKeyEquivModMask">1310720</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="283355154">
+ <reference key="NSMenu" ref="424393205"/>
+ <string key="NSTitle">Paste Ruler</string>
+ <string key="NSKeyEquiv">v</string>
+ <int key="NSKeyEquivModMask">1310720</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="586577488">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">View</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="466310130">
+ <string key="NSTitle">View</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="102151532">
+ <reference key="NSMenu" ref="466310130"/>
+ <string key="NSTitle">Show Toolbar</string>
+ <string key="NSKeyEquiv">t</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="756751024"/>
+ <reference key="NSMixedImage" ref="908425081"/>
+ </object>
+ <object class="NSMenuItem" id="237841660">
+ <reference key="NSMenu" ref="466310130"/>
+ <string type="base64-UTF8"
key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string>
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/NSPredicateEditor Tiger-Info.plist Tue Jul 21 02:15:15 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST
1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSMainNibFile</key>
+ <string>NSPredicateEditor</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
=======================================
--- /dev/null
+++ /trunk/NSPredicateEditorController.h Tue Jul 21 02:15:15 2009
@@ -0,0 +1,15 @@
+//
+// NSPredicateEditorController.h
+// NSRuleEditor
+//
+// Created by x on 28/02/09.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface NSPredicateEditorController : NSObject {
+ IBOutlet NSView *editor;
+}
+- (IBAction)displayPredicate:(id)sender;
+@end
=======================================
--- /dev/null
+++ /trunk/NSPredicateEditorController.m Tue Jul 21 02:15:15 2009
@@ -0,0 +1,38 @@
+//
+// NSPredicateEditorController.m
+// NSRuleEditor
+//
+// Created by x on 28/02/09.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+#import "NSPredicateEditorController.h"
+#import "NSPredicateEditor.h"
+#import "NSPredicateEditorRowTemplate.h"
+
+
+@implementation NSPredicateEditorController
+- (void)applicationDidFinishLaunching:(NSNotification*)notification
+{
+ NSArray *leftExpressions = [NSArray arrayWithObjects:[NSExpression
expressionForKeyPath:@"name"],[NSExpression
expressionForKeyPath:@"age"],nil];
+ NSArray *rightExpressions = [NSArray arrayWithObjects:[NSExpression
expressionForConstantValue:@"Marcel"],[NSExpression
expressionForConstantValue:@"bob"],nil];
+ NSArray *operators = [NSArray arrayWithObjects:[NSNumber
numberWithInt:NSEqualToPredicateOperatorType],nil];
+
+ NSPredicateEditorRowTemplate *template = [[NSPredicateEditorRowTemplate
alloc] initWithLeftExpressions:leftExpressions
+ rightExpressions:rightExpressions
+ modifier:0
+ operators:operators
+ options:0];
+ NSArray *templates = [[editor rowTemplates] arrayByAddingObject:template];
+ [editor setRowTemplates:templates];
+
+}
+- (IBAction)displayPredicate:(id)sender
+{
+ NSString *format = [sender stringValue];
+ NSPredicate *predicate = [NSPredicate predicateWithFormat:format];
+ if(predicate)
+ [editor setObjectValue:predicate];
+}
+
+@end
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditor.h Tue Jul 21 02:15:15 2009
@@ -0,0 +1,61 @@
+/*
+ * Generated by class-dump 3.1.2.
+ *
+ * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
+ */
+#import "NSRuleEditor.h"
+
+@interface PredicateEditor : RuleEditor
+{
+ id _allTemplates;
+ NSArray *_rootItems;
+ NSArray *_rootHeaderItems;
+ id _predicateTarget;
+ SEL _predicateAction;
+ struct {
+ unsigned int settingValue:1;
+ unsigned int reserved:31;
+ } _peFlags;
+ id _predicateEditorReserved[3];
+}
+
+- (BOOL)_forceUseDelegate;
+- (void)dealloc;
+- (void)encodeWithCoder:(id)fp8;
+- (BOOL)_wantsMinimalArchival;
+- (id)initWithCoder:(id)fp8;
+- (void)_setDefaultTargetAndActionOnView:(id)fp8;
+- (id)_rowFromTemplate:(id)fp8 withRowType:(unsigned int)fp12;
+- (id)_rowObjectFromPredicate:(id)fp8;
+- (void)_reflectPredicate:(id)fp8;
+- (id)_constructTreeForTemplate:(id)fp8;
+- (id)_constructTreesForTemplates:(id)fp8;
+- (id)_mergeTree:(id)fp8;
+- (void)_updateItemsBySimpleTemplates;
+- (void)_updateItemsByCompoundTemplates;
+- (id)rowTemplates;
+- (void)setRowTemplates:(id)fp8;
+- (void)validateEditing;
+- (id)objectValue;
+- (void)setObjectValue:(id)fp8;
+- (id)predicate;
+- (id)_predicateFromRowItem:(id)fp8;
+- (unsigned int)_compoundPredicateTypeForRootRows;
+- (void)_updatePredicateFromRows;
+- (void)controlTextDidBeginEditing:(id)fp8;
+- (void)controlTextDidEndEditing:(id)fp8;
+- (void)controlTextDidChange:(id)fp8;
+- (void)_templateControlValueDidChange:(id)fp8;
+- (void)setTarget:(id)fp8;
+- (id)target;
+- (void)setAction:(SEL)fp8;
+- (SEL)action;
+- (void)reloadCriteria;
+- (void)_initRuleEditorShared;
+- (int)_queryNumberOfChildrenOfItem:(id)fp8 withRowType:(unsigned int)fp12;
+- (id)_queryChild:(int)fp8 ofItem:(id)fp12 withRowType:(int)fp16;
+- (id)_queryValueForItem:(id)fp8 inRow:(int)fp12;
+- (void)_updatePredicate;
+
+@end
+
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditor.m Tue Jul 21 02:15:15 2009
@@ -0,0 +1,534 @@
+#import "NSPredicateEditorItem.h"
+#import "NSPredicateEditor.h"
+#import "NSPredicateEditorRowTemplate.h"
+
+@implementation PredicateEditor
+
+- (BOOL)_forceUseDelegate
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return ([super delegate] != nil);
+}
+- (void)dealloc
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [_rootItems release];
+ [_rootHeaderItems release];
+ [_allTemplates release];
+
+ [super dealloc];
+}
+
+- (void)encodeWithCoder:(id)coder
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super encodeWithCoder:(id)coder];
+}
+
+- (id)initWithCoder:(id)coder
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ self = [super initWithCoder:coder];
+ if(self !=nil)
+ {
+ NSArray *nibTemplates = [coder
decodeObjectForKey:@"NSPredicateTemplates"];
+ if(nibTemplates != nil)
+ [self setRowTemplates:nibTemplates];
+ }
+ return self;
+}
+- (BOOL)_wantsMinimalArchival
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return [super _wantsMinimalArchival];
+}
+
+- (void)_setDefaultTargetAndActionOnView:(id)view
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+
+ [view setAction:@selector(_templateControlValueDidChange:)];
+ [view setTarget:self];
+}
+
+#pragma mark Set the Predicate
+
+- (void)setObjectValue:(id)objectValue
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [self _reflectPredicate:objectValue];
+}
+
+- (void)_reflectPredicate:(id)predicate
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ //[self nestingMode];
+ id root = [self _rootRowsArray];
+ if([root count] >0) [root removeObjectAtIndex:0];
+
+ if(predicate != nil){
+ id row = [self _rowObjectFromPredicate:predicate];
+ NSLog(@"%@: %s = %@",[self className],_cmd,[row description]);
+ [root insertObject:row atIndex:0];
+ }
+}
+
+- (id)_rowObjectFromPredicate:(id)predicate
+{
+ NSLog(@"%@: %s%@",[self className],_cmd,predicate);
+ double quality;
+
+ NSMutableArray *subrows = [NSMutableArray array];
+ if([predicate isKindOfClass:[NSCompoundPredicate class]])
+ {
+ NSEnumerator *subpredicates = [[predicate subpredicates]
objectEnumerator];
+ NSPredicate *subpred;
+ while(subpred = [subpredicates nextObject])
+ {
+ id subrow = [self _rowObjectFromPredicate:subpred];
+ if(subrow)[subrows addObject:subrow];
+ }
+
+ NSPredicateEditorRowTemplate *ctemplate = [NSPredicateEditorRowTemplate
_bestMatchForPredicate:predicate inTemplates:[self rowTemplates]
quality:&quality];
+ [ctemplate setPredicate:predicate];
+ id compound_row = [self _rowFromTemplate:ctemplate
withRowType:NSRuleEditorRowTypeCompound];
+ [compound_row setValue:subrows forKey:[super subrowsKeyPath]];
+ return compound_row;
+
+ NSLog(@"%@: %s crow = %@",[self className],_cmd,compound_row);
+ }
+
+ NSPredicateEditorRowTemplate *template = [NSPredicateEditorRowTemplate
_bestMatchForPredicate:(NSPredicate*)predicate inTemplates:[self
rowTemplates] quality:&quality];
+
+ [template setPredicate:predicate];
+
+ return [self _rowFromTemplate:template
withRowType:NSRuleEditorRowTypeSimple];
+}
+
+- (id)_rowFromTemplate:(NSPredicateEditorRowTemplate*)template
withRowType:(NSRuleEditorRowType)type
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ id items;
+ items = (type == NSRuleEditorRowTypeSimple) ? _rootItems :
_rootHeaderItems;
+
+ NSMutableArray *criteria = [NSMutableArray array];
+ NSMutableArray *values = [NSMutableArray array];
+ NSArray *views = [template templateViews];
+
+ int count;
+ while((count = [items count]) > 0)
+ {
+ int i;
+ id child;
+ for (i=0; i<count; i++) {
+ child = [items objectAtIndex:i];
+ NSPopUpButton *aView = [views objectAtIndex:[child indexIntoTemplate]];
+ [self _setDefaultTargetAndActionOnView:aView];
+ id viewTitle = [[aView selectedItem] title];
+ id itemTitle = [child title];
+ NSLog(@"VIEW TITLE %@ ITEM TITLE = %@
indexInto %d",viewTitle,itemTitle,[child indexIntoTemplate]);
+ if([viewTitle isEqualToString:itemTitle])
+ {
+ [criteria addObject:child];
+ [values addObject:itemTitle];
+ break;
+ }
+ }
+ items = [child children];
+ }
+
+ NSDictionary *row = [NSMutableDictionary
dictionaryWithObjectsAndKeys:criteria,@"criteria",values,@"displayValues",[NSNumber
numberWithInt:type],@"rowType",nil];
+ NSLog(@"%s %@",_cmd,row);
+
+ return row;
+}
+
+#pragma mark Manage templates
+
+- (id)_constructTreeForTemplate:(NSPredicateEditorRowTemplate*)template
+{
+ NSLog(@"%@: %s%@",[self className],_cmd,[template description]);
+ NSMutableArray *tree = [NSMutableArray array];
+
+ // return [super _constructTreeForTemplate:template];
+ if([template _templateType] == 2)
+ {
+ NSEnumerator *compoundTypes = [[template compoundTypes]
objectEnumerator];
+ NSNumber *type;
+ int i = 0;
+ while(type = [compoundTypes nextObject]) {
+ NSPredicateEditorItem *item = [NSPredicateEditorItem new];
+ [item setIndexIntoTemplate:0];
+ NSLog(@"template %@",template);
+ [item setTemplate:template];
+ [item setOriginalTemplate:template];
+ [item setMenuItemIndex:i];
+ [item setTitle:[template _displayValueForCompoundPredicateType: [type
intValue]]];
+
+ [tree addObject:item];
+ i++;
+ }
+ NSPredicateEditorItem *child = [NSPredicateEditorItem new];
+ [child setIndexIntoTemplate:1];
+ [child setTemplate:template];
+ [child setOriginalTemplate:template];
+ [child setMenuItemIndex:0];
+ [child setTitle:@"of the following are true"];
+
+ [[tree arrayByApplyingSelector:@selector(children)]
makeObjectsPerformSelector:@selector(setArray:) withObject:[NSMutableArray
arrayWithObject:child]];
+ NSLog(@"TREE %@",[tree description]);
+ return tree;
+
+ }
+ else if([template _templateType] == 1)
+ {
+ NSEnumerator *leftExp = [[template leftExpressions] objectEnumerator];
+ NSExpression *exp;
+ int menuItemIndex = 0;
+ while(exp = [leftExp nextObject]) {
+ NSPredicateEditorItem *item = [NSPredicateEditorItem new];
+ [item setIndexIntoTemplate:0];
+ [item setTemplate:template];
+ [item setOriginalTemplate:template];
+ [item setMenuItemIndex:menuItemIndex];
+ NSExpressionType type = [exp expressionType];
+ NSString *title;
+ switch (type) {
+ case NSKeyPathExpressionType: title = [template
_displayValueForKeyPath:[exp keyPath]];
+ break;
+ case NSConstantValueExpressionType: title = [template
_displayValueForConstantValue:[exp constantValue]];
+ break;
+ default: [NSException raise:NSInvalidArgumentException
format:@"Invalid Expression type %d",type];
+ break;
+ }
+ [item setTitle:title];
+
+ [tree addObject:item];
+ menuItemIndex++;
+ }
+
+ NSMutableArray *right_expressions_children = [NSMutableArray array];
+ NSEnumerator *rightExp = [[template rightExpressions] objectEnumerator];
+ menuItemIndex = 0;
+ while(exp = [rightExp nextObject]) {
+ NSPredicateEditorItem *item = [NSPredicateEditorItem new];
+ [item setIndexIntoTemplate:2];
+ [item setTemplate:template];
+ [item setOriginalTemplate:template];
+ [item setMenuItemIndex:menuItemIndex];
+
+ NSExpressionType type = [exp expressionType];
+ NSString *title;
+ switch (type) {
+ case NSKeyPathExpressionType: title = [template
_displayValueForKeyPath:[exp keyPath]];
+ break;
+ case NSConstantValueExpressionType: title = [template
_displayValueForConstantValue:[exp constantValue]];
+ break;
+ default: [NSException raise:NSInvalidArgumentException
format:@"Invalid Expression type %d",type];
+ break;
+ }
+ [item setTitle:title];
+ [right_expressions_children addObject:item];
+ menuItemIndex++;
+ }
+
+ NSMutableArray *operators_children = [NSMutableArray array];
+ NSEnumerator *operators = [[template operators] objectEnumerator];
+ NSNumber *operator;
+ menuItemIndex = 0;
+ while(operator = [operators nextObject]) {
+ NSPredicateEditorItem *item = [NSPredicateEditorItem new];
+ [item setIndexIntoTemplate:1];
+ [item setTemplate:template];
+ [item setOriginalTemplate:template];
+ [item setMenuItemIndex:menuItemIndex];
+ [item setTitle:[template _displayValueForPredicateOperator:operator]];
+
+ [operators_children addObject:item];
+ menuItemIndex++;
+ }
+
+ [[operators_children arrayByApplyingSelector:@selector(children)]
makeObjectsPerformSelector:@selector(setArray:)
withObject:right_expressions_children];
+
+ [[tree arrayByApplyingSelector:@selector(children)]
makeObjectsPerformSelector:@selector(setArray:)
withObject:operators_children];
+
+ NSLog(@"TREE %@",[tree description]);
+ return tree;
+ }
+
+ return nil;
+}
+
+- (id)_constructTreesForTemplates:(id)templates
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ NSMutableArray *trees = [NSMutableArray array];
+ int i, count = [templates count];
+ for (i = 0; i < count; i++) {
+ id template = [templates objectAtIndex:i];
+ id tree = [self _constructTreeForTemplate:template];
+ [trees addObject:tree];
+ }
+ return trees;
+}
+
+- (id)_mergeTree:(id)tree
+{
+ NSMutableArray *uniqued = [NSMutableArray array];
+ NSEnumerator *treeEnum = [tree objectEnumerator];
+ id item;
+ int i = 0;
+ while(item = [treeEnum nextObject])
+ {
+ if([[uniqued valueForKey:@"title"] indexOfObject:[item title]] ==
NSNotFound)
+ {
+ [item setMenuItemIndex:i++];
+ NSArray *mergedChildren = [self _mergeTree:[item children]];
+ [[item children] setArray:mergedChildren];
+ [uniqued addObject:item];
+ }
+ }
+
+ //NSLog(@"Merge %@ super = %@ = \n current = %@", tree, [super
_mergeTree:tree],uniqued);
+ return uniqued;
+}
+
+- (void)_updateItemsBySimpleTemplates
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ NSMutableArray *templates = [NSMutableArray array];
+ NSEnumerator *allTemplates = [_allTemplates objectEnumerator];
+ NSPredicateEditorRowTemplate *t;
+ while (t = [allTemplates nextObject]) {
+ if([t _rowType] == NSRuleEditorRowTypeSimple)
+ [templates addObject:t];
+ }
+ NSArray *trees = [self _constructTreesForTemplates:templates];
+ NSMutableArray *flat = [NSMutableArray array];
+ NSEnumerator *e_trees = [trees objectEnumerator];
+ id tree;
+ while(tree = [e_trees nextObject])
+ [flat addObjectsFromArray:tree];
+
+ if([trees count] >0)
+ {
+ id mergedTree = [self _mergeTree:flat];
+ [_rootItems release];
+ _rootItems = [mergedTree retain];
+ }
+}
+
+- (void)_updateItemsByCompoundTemplates
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ NSMutableArray *templates = [NSMutableArray array];
+ NSEnumerator *allTemplates = [_allTemplates objectEnumerator];
+ NSPredicateEditorRowTemplate *t;
+ while (t = [allTemplates nextObject]) {
+ if([t _rowType] == NSRuleEditorRowTypeCompound)
+ [templates addObject:t];
+ }
+ NSArray *trees = [self _constructTreesForTemplates:templates];
+ NSMutableArray *flat = [NSMutableArray array];
+ NSEnumerator *e_trees = [trees objectEnumerator];
+ id tree;
+ while(tree = [e_trees nextObject])
+ [flat addObjectsFromArray:tree];
+
+ if([trees count] >0)
+ {
+ id mergedTree = [self _mergeTree:flat];
+ [_rootHeaderItems release];
+ _rootHeaderItems = [mergedTree retain];
+ }
+}
+
+- (id)rowTemplates
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return _allTemplates;
+}
+- (void)setRowTemplates:(id)templates
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ if(_allTemplates != templates)
+ {
+ [_allTemplates release];
+ _allTemplates = [templates retain];
+ }
+ [self _updateItemsByCompoundTemplates];
+ [self _updateItemsBySimpleTemplates];
+
+ NSLog(@"headerItems %@ \n items %@",_rootHeaderItems,[_rootItems
valueForKey:@"children"]);
+}
+- (void)validateEditing
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super validateEditing];
+}
+
+#pragma mark Get the predicate
+
+- (id)objectValue
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return [super objectValue];
+}
+- (void)_updatePredicate
+{
+ NSLog(@"%@: %s %i",[self className],_cmd,_peFlags.settingValue);
+ [self _updatePredicateFromRows];
+}
+- (id)predicate
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return [super predicate];
+}
+- (void)_updatePredicateFromRows
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ id rootRowsArray = [self _rootRowsArray];
+ NSMutableArray *subpredicates = [NSMutableArray array];
+ int i, count = [rootRowsArray count];
+ for (i = 0; i < count; i++) {
+ id item = [rootRowsArray objectAtIndex:i];
+ NSPredicate * predicate = [self _predicateFromRowItem:item];
+ if(predicate != nil)[subpredicates addObject:predicate];
+ }
+ NSCompoundPredicate *compound = [[NSCompoundPredicate alloc]
initWithType:[self _compoundPredicateTypeForRootRows]
subpredicates:subpredicates];
+ [self willChangeValueForKey:@"objectValue"];
+ [super _setPredicate:compound];
+ [self didChangeValueForKey:@"objectValue"];
+ [compound release];
+}
+- (id)_predicateFromRowItem:(id)rowItem
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ NSArray *subrows = [rowItem valueForKey:[super subrowsKeyPath]];
+ int i, count = [subrows count];
+ NSMutableArray *subpredicates = [NSMutableArray array];
+
+ for (i = 0; i < count; i++) {
+ NSObject * childItem = [subrows objectAtIndex:i];
+ id predicate = [self _predicateFromRowItem:childItem];
+ [subpredicates addObject:predicate];
+ }
+
+ id lastItem, item;
+ NSEnumerator *criteria = [[rowItem valueForKey:[super criteriaKeyPath]]
objectEnumerator];
+ while(item = [criteria nextObject])
+ {
+ if([item indexIntoTemplate] == 0 && [item templateView] == nil)
+ [item forwardPropogateTemplate:[item template] withViews:[[item
template] templateViews] forOriginalTemplate:[item originalTemplate]];
+
+ [[item templateView] selectItemWithTitle:[item title]];
+ lastItem = item;
+ }
+ id originalTemplate = [lastItem originalTemplate];
+ // if([originalTemplate _templateType] ==2 && [subpredicates count] == 0)
return [NSPredicate predicateWithValue:YES];
+
+ return [originalTemplate predicateWithSubpredicates:subpredicates];
+}
+
+- (NSCompoundPredicateType)_compoundPredicateTypeForRootRows
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return NSAndPredicateType;
+}
+
+#pragma mark Others
+
+- (void)controlTextDidBeginEditing:(id)fp8
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super controlTextDidBeginEditing:(id)fp8];
+}
+- (void)controlTextDidEndEditing:(id)fp8
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super controlTextDidEndEditing:(id)fp8];
+}
+- (void)controlTextDidChange:(id)fp8
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super controlTextDidChange:(id)fp8];
+}
+- (void)_templateControlValueDidChange:(id)sender
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ //[super _templateControlValueDidChange:(id)sender];
+}
+- (void)setTarget:(id)target
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ if(_predicateTarget != target)
+ _predicateTarget = target;
+}
+- (id)target
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return _predicateTarget;
+}
+- (void)setAction:(SEL)action
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ if(_predicateAction != action)
+ _predicateAction = action;
+}
+- (SEL)action
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return _predicateAction;
+}
+- (void)reloadCriteria
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ //[super reloadCriteria];
+}
+- (void)_initRuleEditorShared
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ [super _initRuleEditorShared];
+ _allTemplates = [[NSMutableArray alloc] init];
+ _rootItems = [[NSMutableArray alloc] init];
+ _rootHeaderItems = [[NSMutableArray alloc] init];
+}
+
+- (int)_queryNumberOfChildrenOfItem:(id)rowItem withRowType:(unsigned
int)type
+{
+ NSLog(@"%@: %s%@",[self className],_cmd,rowItem);
+
+ if([self _forceUseDelegate])
+ return [super _queryNumberOfChildrenOfItem:(id)rowItem
withRowType:(unsigned int)type];
+
+ if(rowItem == nil){
+ id items = (type == NSRuleEditorRowTypeSimple) ? _rootItems :
_rootHeaderItems;
+ return [items count];
+ }
+
+ return [[rowItem children] count];
+}
+- (id)_queryChild:(int)index ofItem:(id)rowItem withRowType:(int)type
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ if([self _forceUseDelegate])
+ return [super _queryChild:(int)index ofItem:(id)rowItem
withRowType:(int)type];
+
+ if(rowItem == nil){
+ id items = (type == NSRuleEditorRowTypeSimple) ? _rootItems :
_rootHeaderItems;
+ return [items objectAtIndex:index];
+ }
+
+ return [[rowItem children] objectAtIndex:index];
+}
+- (id)_queryValueForItem:(id)rowItem inRow:(int)rowIndex
+{
+ NSLog(@"%@: %s",[self className],_cmd);
+ if([self _forceUseDelegate])
+ return [super _queryValueForItem:(id)rowItem inRow:(int)rowIndex];
+
+ return [rowItem title];
+}
+
+@end
+
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditorItem.h Tue Jul 21 02:15:15 2009
@@ -0,0 +1,44 @@
+/*
+ * Generated by class-dump 3.1.2.
+ *
+ * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
+ */
+
+
+@class NSMutableArray, NSPredicateEditorRowTemplate, NSString;
+
+@interface NSPredicateEditorItem : NSObject <NSCopying>
+{
+
+ NSPredicateEditorRowTemplate *originalTemplate;
+ NSPredicateEditorRowTemplate *template;
+ int indexIntoTemplate;
+ id templateView;
+ int menuItemIndex;
+ NSString *title;
+ NSMutableArray *children;
+
+}
+
+- (id)init;
+- (id)originalTemplate;
+- (void)setOriginalTemplate:(id)fp8;
+- (void)forwardPropogateTemplate:(id)fp8 withViews:(id)fp12
forOriginalTemplate:(id)fp16;
+- (id)template;
+- (void)setTemplate:(id)fp8;
+- (id)templateView;
+- (void)setTemplateView:(id)fp8;
+- (int)menuItemIndex;
+- (void)setMenuItemIndex:(int)fp8;
+- (int)indexIntoTemplate;
+- (void)setIndexIntoTemplate:(int)fp8;
+- (id)children;
+- (id)title;
+- (void)setTitle:(id)fp8;
+- (id)copyWithZone:(struct _NSZone *)fp8;
+- (BOOL)isEqual:(id)fp8;
+- (void)dealloc;
+- (id)description;
+
+@end
+
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditorItem.m Tue Jul 21 02:15:15 2009
@@ -0,0 +1,129 @@
+//
+// NSPredicateEditorItem.m
+// PredicateEditor
+//
+// Created by x on 17/02/09.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+#import "NSPredicateEditorItem.h"
+
+@implementation NSPredicateEditorItem
+
+- (void)forwardPropogateTemplate:(id)template withViews:(id)views
forOriginalTemplate:(id)anOriginalTemplate
+{
+ NSLog(@"%@ %p %s views = %@",[self className],self,_cmd,views);
+ [super forwardPropogateTemplate:(id)template withViews:(id)views
forOriginalTemplate:(id)anOriginalTemplate];
+ NSEnumerator *children = [[self children] objectEnumerator];
+ id childItem;
+ while(childItem = [children nextObject])
+ {
+ [childItem forwardPropogateTemplate:template withViews:views
forOriginalTemplate:anOriginalTemplate];
+ }
+
+ [self setTemplate:template];
+ [self setOriginalTemplate:anOriginalTemplate];
+ [self setTemplateView:[views objectAtIndex:[self indexIntoTemplate]]];
+}
+
+- (id)originalTemplate{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return originalTemplate;
+}
+
+- (id)template{
+ NSLog(@"%@: %s",[self className],_cmd);
+ return template;
+}
+
+- (id) init
+{
+ self = [super init];
+ if (self != nil) {
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ children = [[NSMutableArray alloc] init];
+ }
+ return self;
+}
+
+- (void)setTemplate:(id)aTemplate
+{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ template = aTemplate;
+}
+- (void)setOriginalTemplate:(id)aTemplate
+{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ originalTemplate = aTemplate ;
+}
+
+- (id)templateView{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ return templateView;
+}
+
+- (void)setTemplateView:(id)view
+{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ [templateView release];
+ templateView = [view retain];
+}
+- (int)menuItemIndex{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ return menuItemIndex;
+}
+- (void)setMenuItemIndex:(int)index{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ menuItemIndex = index;
+}
+- (int)indexIntoTemplate{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ return indexIntoTemplate;
+}
+- (void)setIndexIntoTemplate:(int)index{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ indexIntoTemplate = index;
+}
+- (id)children{
+ NSLog(@"%@ %p %s",[children className],self,_cmd);
+ return children;
+}
+
+- (id)title{
+ return title;
+}
+
+- (void)setTitle:(id)aTitle{
+ [title release];
+ title = [aTitle retain];
+}
+
+
+- (id)copyWithZone:(NSZone *)zone{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+
+ NSPredicateEditorItem *new = [NSPredicateEditorItem new];
+ new ->indexIntoTemplate = indexIntoTemplate;
+ new ->title = [title copy];
+ new ->menuItemIndex = menuItemIndex;
+ new ->originalTemplate = originalTemplate;
+
+ return new;
+}
+
+/*
+ - (BOOL)isEqual:(id)item{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ return ([item indexIntoTemplate] == [self indexIntoTemplate] && [[item
title] isEqualToString:[self title]]);
+ }
+ */
+- (void)dealloc{
+ NSLog(@"%@ %p %s",[self className],self,_cmd);
+ [title release];
+ [super dealloc];
+}
+- (id)description{
+ return [NSString stringWithFormat:@"%@ [%@ (%@)] indexIntoTemplate:%d
menuItemIndex:%d view: %@",[self className],[self title],[[self title]
className],indexIntoTemplate,menuItemIndex,templateView];
+}
+
+@end
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditorRowTemplate.h Tue Jul 21 02:15:15
2009
@@ -0,0 +1,63 @@
+
+@interface NSPredicateEditorRowTemplate : NSObject <NSCoding, NSCopying>
+{
+ int _templateType;
+ unsigned int _predicateOptions;
+ unsigned int _predicateModifier;
+ unsigned int _leftAttributeType;
+ unsigned int _rightAttributeType;
+ NSArray *_views;
+ struct {
+ unsigned int leftIsWildcard:1;
+ unsigned int rightIsWildcard:1;
+ unsigned int reserved:30;
+ } _ptFlags;
+ id _patternReserved;
+}
+
++ (id)_attributeDescriptionForKeyPath:(id)fp8 inEntity:(id)fp12;
++ (id)_operatorsForAttributeType:(unsigned int)fp8;
++ (id)templatesWithAttributeKeyPaths:(id)fp8 inEntityDescription:(id)fp12;
++ (id)_bestMatchForPredicate:(id)fp8 inTemplates:(id)fp12 quality:(double
*)fp16;
+- (int)_templateType;
+- (id)_displayValueForPredicateOperator:(id)fp8;
+- (id)_displayValueForCompoundPredicateType:(unsigned int)fp8;
+- (id)_displayValueForConstantValue:(id)fp8;
+- (id)_displayValueForKeyPath:(id)fp8;
+- (id)_viewFromExpressions:(id)fp8;
+- (id)_viewFromOperatorTypes:(id)fp8;
+- (id)_viewFromAttributeType:(unsigned int)fp8;
+- (id)_viewFromCompoundTypes:(id)fp8;
+- (id)initWithLeftExpressions:(id)fp8 rightExpressions:(id)fp12
modifier:(unsigned int)fp16 operators:(id)fp20 options:(unsigned int)fp24;
+- (id)initWithLeftExpressions:(id)fp8
rightExpressionAttributeType:(unsigned int)fp12 modifier:(unsigned int)fp16
operators:(id)fp20 options:(unsigned int)fp24;
+- (id)initWithCompoundTypes:(id)fp8;
+- (id)init;
+- (id)initWithCoder:(id)fp8;
+- (void)encodeWithCoder:(id)fp8;
+- (id)operators;
+- (id)leftExpressions;
+- (id)rightExpressions;
+- (id)compoundTypes;
+- (unsigned int)options;
+- (unsigned int)modifier;
+- (unsigned int)rightExpressionAttributeType;
+- (id)_viewFromExpressionObject:(id)fp8;
+- (void)_setLeftExpressionObject:(id)fp8;
+- (void)_setRightExpressionObject:(id)fp8;
+- (void)_setOptions:(unsigned int)fp8;
+- (void)_setModifier:(unsigned int)fp8;
+- (void)_setComparisonPredicate:(id)fp8;
+- (void)_setCompoundPredicate:(id)fp8;
+- (void)setPredicate:(id)fp8;
+- (id)predicateWithSubpredicates:(id)fp8;
+- (unsigned int)_rowType;
+- (BOOL)_predicateIsNoneAreTrue:(id)fp8;
+- (id)displayableSubpredicatesOfPredicate:(id)fp8;
+- (id)copyWithZone:(struct _NSZone *)fp8;
+- (double)matchForPredicate:(id)fp8;
+- (void)dealloc;
+- (id)templateViews;
+- (id)description;
+
+@end
+
=======================================
--- /dev/null
+++ /trunk/NSRuleEditor/NSPredicateEditorRowTemplate.m Tue Jul 21 02:15:15
2009
@@ -0,0 +1,621 @@
+#import "NSPredicateEditorRowTemplate.h"
+#import "NSRuleEditorPopUpButton.h"
+
+typedef enum {
+ NSUndefinedAttributeType = 0,
+ NSInteger16AttributeType = 100,
+ NSInteger32AttributeType = 200,
+ NSInteger64AttributeType = 300,
+ NSDecimalAttributeType = 400,
+ NSDoubleAttributeType = 500,
+ NSFloatAttributeType = 600,
+ NSStringAttributeType = 700,
+ NSBooleanAttributeType = 800,
+ NSDateAttributeType = 900,
+ NSBinaryDataAttributeType = 1000,
+ NSTransformableAttributeType = 1800
+} NSAttributeType;
+
+@implementation NSPredicateEditorRowTemplate
+
++ (id)_attributeDescriptionForKeyPath:(id)fp8 inEntity:(id)fp12
+{
+}
++ (id)templatesWithAttributeKeyPaths:(id)fp8 inEntityDescription:(id)fp12
+{
+}
++
(NSPredicateEditorRowTemplate*)_bestMatchForPredicate:(NSPredicate*)predicate
inTemplates:(NSArray*)templates quality:(double *)quality
+{
+ NSLog(@"%s",_cmd);
+ int i, count = [templates count];
+ double match_value = 0.0;
+ int templateIndex = NSNotFound;
+ for (i = 0; i < count; i++) {
+ NSPredicateEditorRowTemplate *template = [templates objectAtIndex:i];
+ double amatch = [template matchForPredicate:predicate];
+ if(amatch > match_value)
+ {
+ templateIndex = i;
+ match_value = amatch;
+ }
+ }
+
+ if(templateIndex != NSNotFound)
+ {
+ id matchedTemplate = [templates objectAtIndex:templateIndex];
+ return [[matchedTemplate copy] autorelease];
+ }
+
+ [NSException raise:NSRangeException format:@"Cannot find template for
predicate: %@",[predicate predicateFormat]];
+ return nil;
+}
+- (BOOL)_predicateIsNoneAreTrue:(id)fp8
+{
+ return [super _predicateIsNoneAreTrue:(id)fp8];
+}
+- (id)_viewFromExpressionObject:(id)object
+{
+ return [super _viewFromExpressionObject:(id)object];
+}
+
+- (id)init
+{
+ if(self = [super init])
+ {
+
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder*)coder
+{
+ self = [super init];
+ if(self != nil)
+ {
+ _templateType = [coder decodeIntForKey:@"NSPredicateTemplateType"];
+ NSLog(@"Template type = %d",_templateType);
+ _predicateOptions = [coder
decodeIntForKey:@"NSPredicateTemplateOptionsOptions"];
+ _predicateModifier = [coder
decodeIntForKey:@"NSPredicateTemplateModifier"];
+ _leftAttributeType = [coder
decodeIntForKey:@"NSPredicateTemplateLeftAttributeType"];
+ _rightAttributeType = [coder
decodeIntForKey:@"NSPredicateTemplateRightAttributeType"];
+ _ptFlags.leftIsWildcard = [coder
decodeBoolForKey:@"NSPredicateTemplateLeftIsWildcard"];
+ _ptFlags.rightIsWildcard = [coder
decodeBoolForKey:@"NSPredicateTemplateRightIsWildcard"];
+ _views = [[coder decodeObjectForKey:@"NSPredicateTemplateViews"] retain];
+ }
+ return self;
+}
+- (void)encodeWithCoder:(NSCoder *)coder
+{
+ [coder encodeInt:_templateType forKey:@"NSPredicateTemplateType"];
+ [coder encodeInt:_predicateOptions forKey:@"NSPredicateTemplateOptions"];
+ [coder encodeInt:_predicateModifier
forKey:@"NSPredicateTemplateModifier"];
+ [coder encodeInt:_leftAttributeType
forKey:@"NSPredicateTemplateLeftAttributeType"]; // template 1
+ [coder encodeInt:_rightAttributeType
forKey:@"NSPredicateTemplateeRightAttributeType"]; // template 1
+ [coder encodeBool:_ptFlags.leftIsWildcard
forKey:@"NSPredicateTemplateLeftIsWildcard"];
+ [coder encodeBool:_ptFlags.rightIsWildcard
forKey:@"NSPredicateTemplateRightIsWildcard"];
+ [coder encodeObject:_views forKey:@"NSPredicateTemplateViews"];
+}
+
+- (NSArray *)leftExpressions
+{
+ if(_templateType != 2)
+ {
+ NSView *view = [_views objectAtIndex:0];
+ return [[view itemArray] valueForKey:@"representedObject"];
+ }
+
+ return nil;
+}
+
+- (NSArray *)operators
+{
+ if(_templateType != 2)
+ {
+ NSView *view = [_views objectAtIndex:1];
+ return [[view itemArray] valueForKey:@"representedObject"];
+ }
+
+ return nil;
+}
+- (NSArray *)rightExpressions
+{
+ if(_templateType != 2)
+ {
+ NSView *view = [_views objectAtIndex:2];
+ return [[view itemArray] valueForKey:@"representedObject"];
+ }
+
+ return nil;
+}
+- (NSArray *)compoundTypes
+{
+ if(_templateType == 2)
+ {
+ NSView *view = [_views objectAtIndex:0];
+ return [[view itemArray] valueForKey:@"representedObject"];
+ }
+
+ return nil;
+}
+
+- (NSAttributeType)rightExpressionAttributeType
+{
+ if(_templateType == 1 && _ptFlags.rightIsWildcard)
+ {
+ NSView *view = [_views objectAtIndex:2];
+ return [view tag];
+ }
+
+ return nil;
+}
+
+- (NSComparisonPredicateModifier)modifier
+{
+ if(_templateType != 2)
+ return _predicateModifier;
+ return nil;
+}
+
+- (int)options
+{
+ if(_templateType != 2)
+ return _predicateOptions;
+ return nil;
+}
+
+- (void)_setComparisonPredicate:(id)predicate
+{
+ NSView *left = [_views objectAtIndex:0];
+ NSPopUpButton *middle = [_views objectAtIndex:1];
+ NSView *right = [_views objectAtIndex:2];
+
+ NSExpression *leftExpression = [predicate leftExpression];
+ NSExpression *rightExpression = [predicate rightExpression];
+ NSNumber *operator = [NSNumber numberWithInt:[predicate
predicateOperatorType]];
+
+ if(_ptFlags.leftIsWildcard)
+ [left setObjectValue:[leftExpression constantValue]];
+ else
+ {
+ int index = [left indexOfItemWithRepresentedObject:leftExpression];
+ [left selectItemAtIndex:index];
+ }
+
+ int op_index = [middle indexOfItemWithRepresentedObject:operator];
+ [middle selectItemAtIndex:op_index];
+
+ if(_ptFlags.rightIsWildcard)
+ [right setObjectValue:[rightExpression constantValue]];
+ else
+ {
+ int index = [right indexOfItemWithRepresentedObject:rightExpression];
+ [right selectItemAtIndex:index];
+ }
+}
+
+- (void)_setCompoundPredicate:(id)predicate
+{
+ NSPopUpButton *left = [_views objectAtIndex:0];
+ NSNumber *type = [NSNumber numberWithInt:[predicate
compoundPredicateType]];
+ int index = [left indexOfItemWithRepresentedObject:type];
+ [left selectItemAtIndex:index];
+}
+
+- (void)setPredicate:(id)predicate
+{
+ if(_templateType == 2)
+ [self _setCompoundPredicate:predicate];
+ else
+ [self _setComparisonPredicate:predicate];
+}
+
+- (id)predicateWithSubpredicates:(id)subpredicates
+{
+ if(_templateType == 2)
+ {
+ NSView *left = [_views objectAtIndex:0];
+ NSNumber *type = [[left selectedItem] representedObject];
+ return [[[NSCompoundPredicate alloc] initWithType:[type intValue]
subpredicates:subpredicates] autorelease];
+ }
+ else
+ {
+ NSView *left = [_views objectAtIndex:0];
+ NSPopUpButton *middle = [_views objectAtIndex:1];
+ NSView *right = [_views objectAtIndex:2];
+
+ NSExpression *lhs;
+ NSExpression *rhs;
+
+ if(_ptFlags.leftIsWildcard)
+ lhs = [NSExpression expressionForConstantValue:[left objectValue]];
+ else
+ lhs = [[left selectedItem] representedObject];
+
+ NSPredicateOperatorType operator = [[[middle selectedItem]
representedObject] intValue];
+
+ if(_ptFlags.rightIsWildcard)
+ rhs = [NSExpression expressionForConstantValue:[right objectValue]];
+ else
+ rhs = [[right selectedItem] representedObject];
+
+ return [NSComparisonPredicate predicateWithLeftExpression:lhs
+ rightExpression:rhs
+ modifier:[self modifier]
+ type:operator
+ options:[self options]];
+ }
+
+
+ return nil;
+}
+
+- (unsigned int)_rowType
+{
+ return (_templateType == 2) ? 1 : 0;
+}
+
+- (id)copyWithZone:(NSZone*)zone
+{
+ NSPredicateEditorRowTemplate *new = [[NSPredicateEditorRowTemplate alloc]
init];
+ new ->_templateType = _templateType;
+ new ->_predicateOptions = _predicateOptions;
+ new ->_leftAttributeType = _leftAttributeType;
+ new ->_rightAttributeType = _rightAttributeType;
+ new ->_ptFlags = _ptFlags;
+ new ->_views = [[NSArray alloc] initWithArray:_views copyItems:NO];
+ return new;
+}
+
+- (id)templateViews
+{
+ return _views;
+}
+- (void)_setLeftExpressionObject:(id)object
+{
+ [[_views objectAtIndex:0] setObjectValue:object];
+}
+- (void)_setRightExpressionObject:(id)object
+{
+ [[_views objectAtIndex:2] setObjectValue:object];
+}
+
++ (id)_operatorsForAttributeType:(NSAttributeType)attributeType
+{
+ NSMutableArray *operators_array = [NSMutableArray arrayWithCapacity:13];
+
+ switch (attributeType)
+ {
+ case NSUndefinedAttributeType :
+ break;
+ case NSInteger16AttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSInteger32AttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSInteger64AttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSDecimalAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSDoubleAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSFloatAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSStringAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSBooleanAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSDateAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ case NSBinaryDataAttributeType : [operators_array addObjects:
+ [NSNumber numberWithInt:NSGreaterThanPredicateOperatorType],
+ [NSNumber
numberWithInt:NSGreaterThanOrEqualToPredicateOperatorType],nil];
+ break;
+ default : ;
+ }
+
+ return operators_array;
+}
+- (int)_templateType
+{
+ return _templateType;
+}
+- (id)_displayValueForPredicateOperator:(NSNumber*)operator
+{
+ NSString *value;
+
+ switch ([operator intValue])
+ {
+ case NSLessThanPredicateOperatorType : value = @"is less than";
+ break;
+ case NSLessThanOrEqualToPredicateOperatorType : value = @"is less than
or equal to";
+ break;
+ case NSGreaterThanPredicateOperatorType : value = @"is greater than";
+ break;
+ case NSGreaterThanOrEqualToPredicateOperatorType : value = @"is greater
than or equal to";
+ break;
+ case NSEqualToPredicateOperatorType : value = @"is";
+ break;
+ case NSNotEqualToPredicateOperatorType : value = @"is not";
+ break;
+ case NSMatchesPredicateOperatorType : value = @"matches";
+ break;
+ case NSLikePredicateOperatorType : value = @"is like";
+ break;
+ case NSBeginsWithPredicateOperatorType : value = @"begins with";
+ break;
+ case NSEndsWithPredicateOperatorType : value = @"ends with";
+ break;
+ case NSInPredicateOperatorType : value = @"in";
+ break;
+ case 99 : value = @"contains";
+ break;
+ case 100 : value = @"between";
+ break;
+ default : value = [NSString stringWithFormat:@"unknown predicate
operator %d",[operator intValue]];
+ }
+
+ return value;
+}
+- (id)_displayValueForCompoundPredicateType:(unsigned int)predicateType
+{
+ NSString *value;
+ switch (predicateType)
+ {
+ case NSNotPredicateType: value = @"None";
+ break;
+ case NSAndPredicateType: value = @"All";
+ break;
+ case NSOrPredicateType: value = @"Any";
+ break;
+ default : value = [NSString stringWithFormat:@"unknown compound
predicate type %d",predicateType];
+ }
+ return value;
+}
+- (id)_displayValueForConstantValue:(id)value
+{
+ NSLog(@"%s%@",_cmd,[value className]);
+ return [value description]; // number, date, string, ... localize
+}
+- (id)_displayValueForKeyPath:(NSString*)keyPath
+{
+ NSLog(@"%s%@",_cmd,[keyPath className]);
+ return keyPath; // localize
+}
+
+- (id)_viewFromExpressions:(id)expressions
+{
+ NSPopUpButton *popup = [[[NSRuleEditorPopUpButton alloc]
initWithFrame:NSMakeRect(0, 0, 100, 18)] autorelease];
+ [popup setBezelStyle:NSRoundRectBezelStyle];
+ NSMenu *menu = [[NSMenu alloc] init];
+ NSEnumerator *collec = [expressions objectEnumerator];
+ NSExpression *exp;
+
+ while(exp = [collec nextObject])
+ {
+ NSExpressionType type = [exp expressionType];
+ NSString *title;
+ switch (type) {
+ case NSKeyPathExpressionType: title = [self
_displayValueForKeyPath:[exp keyPath]];
+ break;
+ case NSConstantValueExpressionType: title = [self
_displayValueForConstantValue:[exp constantValue]];
+ break;
+ default: [NSException raise:NSInvalidArgumentException format:@"Invalid
Expression type %d",type];
+ break;
+ }
+
+ NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:nil
keyEquivalent:@""];
+ [item setRepresentedObject:exp];
+ [menu addItem:item];
+ }
+ [popup setMenu:menu];
+ [popup selectItemAtIndex:0];
+ [menu release];
+ [popup sizeToFit];
+
+ return popup;
+}
+- (id)_viewFromOperatorTypes:(id)operators
+{
+ NSPopUpButton *popup = [[[NSRuleEditorPopUpButton alloc]
initWithFrame:NSMakeRect(0, 0, 100, 18)] autorelease];
+ [popup setBezelStyle:NSRoundRectBezelStyle];
+ NSMenu *menu = [[NSMenu alloc] init];
+ NSEnumerator *collec = [operators objectEnumerator];
+ NSNumber *op;
+
+ while(op = [collec nextObject])
+ {
+ NSString *title = [self _displayValueForPredicateOperator:op];
+ NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:nil
keyEquivalent:@""];
+ [item setRepresentedObject:op];
+ [menu addItem:item];
+ }
+ [popup setMenu:menu];
+ [menu release];
+ [popup sizeToFit];
+
+ return popup;
+}
+- (NSView*)_viewFromAttributeType:(NSAttributeType)attributeType
+{
+ Class class;
+
+ switch (attributeType)
+ {
+ case NSUndefinedAttributeType : class = nil;
+ break;
+ case NSInteger16AttributeType : class = [NSTextField class];
+ break;
+ case NSInteger32AttributeType : class = [NSTextField class];
+ break;
+ case NSInteger64AttributeType : class = [NSTextField class];
+ break;
+ case NSDecimalAttributeType : class = [NSTextField class];
+ break;
+ case NSDoubleAttributeType : class = [NSTextField class];
+ break;
+ case NSFloatAttributeType : class = [NSTextField class];
+ break;
+ case NSStringAttributeType : class = [NSTextField class];
+ break;
+ case NSBooleanAttributeType : class = [NSButton class];
+ break;
+ case NSDateAttributeType : class = [NSDatePicker class];
+ break;
+ case NSBinaryDataAttributeType : class = nil;
+ break;
+ default : class = nil;
+ }
+
+ NSView *view = [[[class alloc] initWithFrame:NSMakeRect(0,0,60,17)]
autorelease];
+ [[view cell] setControlSize:NSMiniControlSize];
+ [[view cell] setFont:[NSFont systemFontOfSize:10]];
+ [view setTag:attributeType];
+ [view sizeToFit];
+
+ return view;
+}
+
+- (id)_viewFromCompoundTypes:(id)compoundTypes
+{
+ NSPopUpButton *popup = [[[NSRuleEditorPopUpButton alloc]
initWithFrame:NSMakeRect(0, 0, 100, 18)] autorelease];
+ NSMenu *menu = [[NSMenu alloc] init];
+ NSEnumerator *collec = [compoundTypes objectEnumerator];
+ NSNumber *type;
+
+ while(type = [collec nextObject])
+ {
+ NSString *title = [self _displayValueForCompoundPredicateType:[type
intValue]];
+ NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:nil
keyEquivalent:@""];
+ [item setRepresentedObject:type];
+ [menu addItem:item];
+ }
+ [popup setMenu:menu];
+ [menu release];
+ [popup sizeToFit];
+
+ return popup;
+}
+
+- (id)initWithLeftExpressions:(NSArray *)leftExpressions
rightExpressions:(NSArray *)rightExpressions
modifier:(NSComparisonPredicateModifier)modifier operators:(NSArray
*)operators options:(int)options;
+{
+
+ self = [super init];
+ if (self != nil) {
+ _templateType = 1;
+ _ptFlags.rightIsWildcard = NO;
+ _ptFlags.leftIsWildcard = NO;
+ _predicateModifier = modifier;
+ _predicateOptions = options;
+
+ NSView *leftView = [self _viewFromExpressions:leftExpressions];
+ NSView *rightView = [self _viewFromExpressions:rightExpressions];
+ NSView *middleView = [self _viewFromOperatorTypes:operators];
+ _views = [[NSArray alloc]
initWithObjects:leftView,middleView,rightView,nil];
+
+ }
+ return self;
+}
+- (id)initWithLeftExpressions:(NSArray *)leftExpressions
rightExpressionAttributeType:(NSAttributeType)attributeType
modifier:(NSComparisonPredicateModifier)modifier operators:(NSArray
*)operators options:(int)options;
+{
+
+ self = [super init];
+ if (self != nil) {
+ _templateType = 1;
+ _ptFlags.rightIsWildcard = YES;
+ _ptFlags.leftIsWildcard = NO;
+ _rightAttributeType = attributeType;
+ _predicateModifier = modifier;
+ _predicateOptions = options;
+
+ NSView *leftView = [self _viewFromExpressions:leftExpressions];
+ NSArray *operators = [NSPredicateEditorRowTemplate
_operatorsForAttributeType:attributeType];
+ NSView *middleView = [self _viewFromOperatorTypes:operators];
+ NSView *rightView = [self _viewFromAttributeType:attributeType];
+ _views = [[NSArray alloc]
initWithObjects:leftView,middleView,rightView,nil];
+ }
+ return self;
+}
+- (id)initWithCompoundTypes:(NSArray *)compoundTypes
+{
+ self = [super init];
+ if (self != nil) {
+ _templateType = 2;
+ _ptFlags.leftIsWildcard = NO;
+ _ptFlags.rightIsWildcard = NO;
+ NSView *leftView = [self _viewFromCompoundTypes:compoundTypes];
+ NSView *rightView = [[NSRuleEditorPopUpButton alloc] init];
+ _views = [[NSArray alloc] initWithObjects:leftView,rightView,nil];
+ }
+ return self;
+}
+
+- (void) dealloc
+{
+ // [_views release];
+ [super dealloc];
+}
+- (void)_setOptions:(unsigned int)options
+{
+ _predicateOptions = options;
+}
+- (void)_setModifier:(unsigned int)modifier
+{
+ _predicateModifier = modifier;
+}
+- (NSArray *)displayableSubpredicatesOfPredicate:(NSPredicate *)predicate
+{
+
+ if([predicate isKindOfClass:[NSCompoundPredicate class]])
+ return [predicate subpredicates];
+
+ return nil;
+}
+- (double)matchForPredicate:(NSPredicate *)predicate
+{
+ // How exactly this value (float 0-1) is computed ?
+ if([self _templateType] == 2 && [predicate
isKindOfClass:[NSCompoundPredicate class]])
+ {
+ if ([[self compoundTypes] containsObject:[NSNumber
numberWithInt:[predicate compoundPredicateType]]])
+ return 1;
+ }
+ else if ([self _templateType] == 1 && [predicate
isKindOfClass:[NSComparisonPredicate class]])
+ {
+ if (!_ptFlags.leftIsWildcard && ![[self leftExpressions]
containsObject:[predicate leftExpression]]) return 0;
+
+ if (!_ptFlags.rightIsWildcard && ![[self rightExpressions]
containsObject:[predicate rightExpression]]) return 0;
+
+ if (![[self operators] containsObject:[NSNumber numberWithInt:[predicate
predicateOperatorType]]]) return 0;
+
+ if ([predicate options] != [self options]) return 0.9;
+
+ if ([predicate comparisonPredicateModifier] != [self modifier]) return
0.9;
+
+ return 1;
+ }
+
+ return 0;
+}
+
+- (NSString*)description
+{
+ return [NSString
stringWithFormat:@"\nCompounds=%@\nLeft=%@\nOperators=%@\nRight=%@\n",[self
compoundTypes],[self leftExpressions],[self operators],[self
rightExpressions]];
+}
+
+@end
=======================================
--- /trunk/EditableTextField.m Sat Oct 4 03:59:17 2008
+++ /trunk/EditableTextField.m Tue Jul 21 02:15:15 2009
@@ -12,7 +12,7 @@

- (id) initWithFrame:(NSRect)frame
{
- self = [super initWithFrame:NSMakeRect(0, 0, 150, 16)];
+ self = [super initWithFrame:NSMakeRect(0, 0, 150, 18)];
if (self != nil) {
[[self cell] setControlSize:NSMiniControlSize];
[self setFont:[NSFont systemFontOfSize:11.]];
@@ -27,7 +27,7 @@
{
self = [self initWithFrame:NSZeroRect];
if (self != nil) {
- [self setBackgroundColor:[NSColor greenColor]];
+ [self setBackgroundColor:[NSColor colorWithCalibratedWhite:0.97
alpha:1]];
NSString *sv = [coder decodeObjectForKey:@"NSTextFieldStringValue"];
NSLog(@"%p %s '%@'",self, SELNAME(_cmd),sv);

@@ -50,5 +50,4 @@
NSLog(@"%s",SELNAME(_cmd));
[[NSNotificationCenter defaultCenter]
postNotificationName:@"NSRuleEditorRulesDidChangeNotification" object:nil];
}
-
@end
=======================================
--- /trunk/English.lproj/NSRuleEditor.xib Fri Oct 3 05:56:51 2008
+++ /trunk/English.lproj/NSRuleEditor.xib Tue Jul 21 02:15:15 2009
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1040</int>
- <string key="IBDocument.SystemVersion">9F33</string>
- <string key="IBDocument.InterfaceBuilderVersion">672</string>
- <string key="IBDocument.AppKitVersion">949.34</string>
- <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <string key="IBDocument.SystemVersion">9G55</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.43</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="368"/>
@@ -14,6 +14,15 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSCustomObject" id="1021">
@@ -1685,6 +1694,14 @@
</object>
<int key="connectionID">542</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">initialFirstResponder</string>
+ <reference key="source" ref="513744381"/>
+ <reference key="destination" ref="396064318"/>
+ </object>
+ <int key="connectionID">543</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -2634,7 +2651,6 @@
<string>354.IBPluginDependency</string>
<string>354.ImportedFromIB2</string>
<string>367.IBEditorWindowLastContentRect</string>
- <string>367.IBPluginDependency</string>
<string>367.IBWindowTemplateEditedContentRect</string>
<string>367.NSWindowTemplate.visibleAtLaunch</string>
<string>367.editorWindowContentRectSynchronizationRect</string>
@@ -2663,6 +2679,11 @@
<string>487.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>5.ImportedFromIB2</string>
+ <string>506.IBPluginDependency</string>
+ <string>507.IBPluginDependency</string>
+ <string>508.IBPluginDependency</string>
+ <string>527.IBPluginDependency</string>
+ <string>528.IBPluginDependency</string>
<string>531.IBPluginDependency</string>
<string>538.IBPluginDependency</string>
<string>539.IBPluginDependency</string>
@@ -2851,9 +2872,8 @@
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
- <string>{{556, 178}, {611, 674}}</string>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{556, 178}, {611, 674}}</string>
+ <string>{{379, 88}, {611, 674}}</string>
+ <string>{{379, 88}, {611, 674}}</string>
<reference ref="9"/>
<string>{{11, 666}, {480, 270}}</string>
<reference ref="8"/>
@@ -2881,6 +2901,11 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2940,7 +2965,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">542</int>
+ <int key="maxID">543</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
=======================================
--- /trunk/English.lproj/NSRuleEditorVanilla.xib Fri Oct 3 05:56:51 2008
+++ /trunk/English.lproj/NSRuleEditorVanilla.xib Tue Jul 21 02:15:15 2009
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9F33</string>
- <string key="IBDocument.InterfaceBuilderVersion">672</string>
- <string key="IBDocument.AppKitVersion">949.34</string>
- <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <string key="IBDocument.SystemVersion">9G55</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.43</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="368"/>
@@ -14,6 +14,15 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSCustomObject" id="1021">
@@ -2613,7 +2622,6 @@
<string>354.IBPluginDependency</string>
<string>354.ImportedFromIB2</string>
<string>367.IBEditorWindowLastContentRect</string>
- <string>367.IBPluginDependency</string>
<string>367.IBWindowTemplateEditedContentRect</string>
<string>367.NSWindowTemplate.visibleAtLaunch</string>
<string>367.editorWindowContentRectSynchronizationRect</string>
@@ -2642,6 +2650,9 @@
<string>56.IBPluginDependency</string>
<string>56.ImportedFromIB2</string>
<string>560.IBPluginDependency</string>
+ <string>563.IBPluginDependency</string>
+ <string>564.IBPluginDependency</string>
+ <string>565.IBPluginDependency</string>
<string>57.IBEditorWindowLastContentRect</string>
<string>57.IBPluginDependency</string>
<string>57.ImportedFromIB2</string>
@@ -2826,9 +2837,8 @@
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
- <string>{{636, 216}, {642, 679}}</string>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{636, 216}, {642, 679}}</string>
+ <string>{{346, 216}, {642, 679}}</string>
+ <string>{{346, 216}, {642, 679}}</string>
<reference ref="9"/>
<string>{{11, 666}, {480, 270}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2855,6 +2865,9 @@
<reference ref="9"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{286, 489}, {245, 183}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
=======================================
--- /trunk/NSRuleEditor/NSRuleEditor.h Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditor.h Tue Jul 21 02:15:15 2009
@@ -25,7 +25,7 @@

@class NSIndexSet, NSMutableArray, NSPredicate, NSString, NSTimer, NSView,
NSViewAnimation, RuleEditorViewSliceRow;

-@interface RuleEditor : NSControl <NSDraggingInfo>
+@interface RuleEditor : NSControl
{
struct {
unsigned int elideUpdating:1;
@@ -47,7 +47,7 @@

NSIndexSet *_draggingRows;
int _subviewIndexOfDropLine;
- id _dropLineView;
+ NSView *_dropLineView;

NSMutableArray *_rowCache;
NSMutableArray *_slices;
@@ -59,6 +59,7 @@
NSString *_subrowsArrayKeyPath;
NSString *_typeKeyPath;
NSString *_valuesKeyPath;
+ NSString *_stringsFileName;

NSTimer *_frameTimer;
NSView *_slicesHolder;
@@ -74,7 +75,6 @@
id _ruleDelegate;
id _boundArrayOwner;

- NSString *_stringsFilename;
id _headerLocalizer;
id _standardLocalizer;

@@ -99,14 +99,13 @@
- (NSColor*)_sliceBottomBorderColor;
- (NSColor*)_sliceLastBottomBorderColor;
- (NSColor*)_sliceTopBorderColor;
-- (NSColor*)_sliceTopBorderColor;
- (NSIndexSet*)_childlessParentsIfSlicesWereDeletedAtIndexes:(id)indexes;
- (NSIndexSet*)selectedRowIndexes;
- (NSIndexSet*)subrowIndexesForRow:(int)rowIndex;
- (NSMutableArray*)_getItemsAndValuesToAddForRow:(int)rowIndex
ofType:(NSRuleEditorRowType)type;
- (NSMutableArray*)_subrowObjectsOfObject:(id)rowObject;
- (NSMutableArray*)displayValuesForRow:(int)rowIndex;
--
(NSMutableIndexSet*)_includeSubslicesForSlicesAtIndexes:(NSIndexSet*)indexes;
+- (NSIndexSet*)_includeSubslicesForSlicesAtIndexes:(NSIndexSet*)indexes;
- (NSPredicate *)predicate;
- (NSPredicate*)predicateForRow:(int)rowIndex;
- (NSRuleEditorNestingMode)nestingMode;
@@ -121,7 +120,7 @@
- (RuleEditorViewSliceRow*)_createNewSliceWithFrame:(NSRect)frame
ruleEditorView:(RuleEditor*)editor;
- (RuleEditorViewSliceRow*)_newSlice;

-- (id)_insertNewRowAtIndex:(int)rowIndex
ofType:(NSRuleEditorRowType)rowType withParentRow:(int)rowIndex;
+- (id)_insertNewRowAtIndex:(int)rowIndex
ofType:(NSRuleEditorRowType)rowType withParentRow:(int)parentRow;
- (id)_queryChild:(int)child ofItem:(id)item
withRowType:(NSRuleEditorRowType)rowType;
- (id)_queryValueForItem:(id)item inRow:(int)rowIndex;
- (id)_rowCacheForIndex:(int)index;
@@ -153,7 +152,6 @@
- (void)_mouseDownOnSlice:(id)slice withEvent:(NSEvent*)event;
- (void)_postRowCountChangedNotificationOfType:(NSString*)notificationName
indexes:(NSIndexSet*)indexes;
- (void)_reconfigureSubviewsAnimate:(BOOL)animate;
-- (void)_removeSubrowsForRow:(int)rowIndex fromSet:(NSIndexSet*)set;
- (void)_setAllowsEmptyCompoundRows:(BOOL)allow;
- (void)_setBoundDataSource:(id)datasource withKeyPath:(NSString *)keyPath
options:(NSDictionary*)options;
- (void)_startObservingRowObjectsRecursively:(id)rowObjects;
@@ -188,42 +186,48 @@
- (void)sizeToFit;
- (void)unbind:(id)object;
- (NSString*)formattingStringsFilename;
-- (void)setFormattingStringsFilename:(id)filename;
+- (void)setFormattingStringsFilename:(NSString*)filename;
+
+- (void)_clearDropLine;
+- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender;
+- (NSIndexSet*)_draggingTypes;
+- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender;
+- (void)draggedImage:(NSImage *)dragImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation;
+
+- (NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender;

- (BOOL)_dragShouldBeginFromMouseDown:(NSView*)view;
- (BOOL)_performDragForSlice:(id)slice withEvent:(NSEvent*)event;
-- (BOOL)performDragOperation:(id)fp8;
-- (id)_dragHandleColors;
-- (id)_dragImageForIndices:(id)fp8;
-- (id)_draggingTypes;
-- (unsigned int)_dragOperationFromInfo:(id)fp8;
+- (NSImage*)_dragImageForIndices:(NSIndexSet*)indices;
- (unsigned int)_updateDragging:(id)fp8;
-- (unsigned int)draggingEntered:(id)fp8;
- (unsigned int)draggingSourceOperationMaskForLocal:(BOOL)fp8;
-- (unsigned int)draggingUpdated:(id)fp8;
-- (void)draggedImage:(id)fp8 endedAt:(struct _NSPoint)fp12
operation:(unsigned int)fp20;
- (void)draggingExited:(id)fp8;

+- (void)_postRuleOptionChangedNotification;
+
+- (NSView*)_createSliceDropSeparator;
+

/*==========================================================================================================*/
/* UNIMPLEMENTED */

/*==========================================================================================================*/
/*
-
+ - (NSArray*)_dragHandleColors;
+ - (void)_setWindow:(NSWindow*)window;
+ - (void)_windowUpdate:(id)sender;
+
+ - (void)_removeSubrowsForRow:(int)rowIndex fromSet:(NSIndexSet*)set;
- (BOOL)_isInDesignMode;
- (BOOL)_privateDelegateMethodsEnabled;
- (BOOL)_suppressKeyDownHandling;
- (BOOL)_wantsMinimalArchival;
- - (BOOL)wantsPeriodicDraggingUpdates;
- - (id)_createSliceDropSeparator;
- (id)_extendItem:(id)fp8 withRow:(int)fp12;
- (id)_generateFormattingDictionaryStringsFile;
- (id)_layoutOrdersForChoiceRootedAtItem:(id)fp8 inRow:(int)fp12;
- (id)_localizerForSlice:(id)fp8;
- (id)_queryOrderLocalizedDictionaries:(id)fp8 withParent:(id)fp12;
- (id)formattingDictionary;
- - (id)formattingStringsFileName;
- (int)_layoutOrderForItem:(id)fp8 inRow:(int)fp12;
- - (void)_fullCacheUpdate;
+ - (void)_fullCacheUpdate; // créé de nouveaux caches avec les contenus
des vieux caches (rowObject, rowIndex, indentation).
- (void)_fullCacheUpdateRecursive:(id)fp8 intoRow:(int *)fp12
withIndentation:(int)fp16;
- (void)_rightMouseDownOnSlice:(id)fp8 withEvent:(id)fp12;
- (void)_sendRuleAction;
@@ -233,11 +237,8 @@
- (void)_setStandardLocalizer:(id)fp8;
- (void)_setSuppressKeyDownHandling:(BOOL)flag;
- (void)_stopAnimationWithoutChangingFrames;
- - (void)_windowChangedKeyState;
- (void)setFormattingDictionary:(id)fp8;
- - (void)setFormattingStringsFileName:(id)fp8;
- (BOOL)_findRowObject:(id)fp8 startingAtObject:(id)fp12 withIndex:(int
*)fp16;
- - (BOOL)_nextUnusedItems:(id *)fp8 andValues:(id *)fp12 forRow:(int)fp16
forRowType:(unsigned int)fp20;
- (BOOL)_ruleViewHasFirstResponder;
- (id)_globalIndexesForSubrowIndexes:(id)fp8 ofParentObject:(id)fp12;
- (id)_rootRowsArray;
@@ -247,13 +248,10 @@
- (void)_getAllAvailableItems:(id *)fp8 values:(id *)fp12
asChildrenOfItem:(id)fp16 inRow:(int)fp20;
- (void)_loadInitialRows;
- (void)_performClickOnSlice:(id)fp8 withEvent:(id)fp12;
- - (void)_postRuleOptionChangedNotification;
- (void)_recursiveGenerateFormattingDictionaryPlistForItem:(id)fp8
rowType:(unsigned int)fp12 intoArray:(id)fp16 withPriorValues:(id)fp20
hasSiblings:(BOOL)fp24;
- (void)_setPredicate:(id)fp8;
- (void)reloadCriteria;
- (void)selectRowIndexes:(id)fp8 byExtendingSelection:(BOOL)fp12;
- - (void)_setWindow:(id)fp8;
- - (void)_windowUpdate:(id)fp8;
*/
@end

=======================================
--- /trunk/NSRuleEditor/NSRuleEditor.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditor.m Tue Jul 21 02:15:15 2009
@@ -21,6 +21,7 @@
NSString * const NSRuleEditorPredicateCustomSelector =
@"NSRuleEditorPredicateCustomSelector";
NSString * const NSRuleEditorPredicateCompoundType =
@"NSRuleEditorPredicateCompoundType";
NSString * const NSRuleEditorRowsDidChangeNotification =
@"NSRuleEditorRowsDidChangeNotification";
+NSString * const NSRuleEditorRulesDidChangeNotification =
@"NSRuleEditorRulesDidChangeNotification";

NSString * const NSRuleEditorItemPBoardType =
@"NSRuleEditorItemPBoardType";

@@ -29,14 +30,22 @@
static void *subrowsContext = (void*)@"subrows_array";
static void *boundArrayContext = (void*)@"bound_array";

+@interface NSObject (NSRuleEditor)
+- (int)ruleEditor:(RuleEditor *)editor
numberOfChildrenForCriterion:(id)criterion
withRowType:(NSRuleEditorRowType)rowType;
+- (id)ruleEditor:(RuleEditor *)editor child:(int)index
forCriterion:(id)criterion withRowType:(NSRuleEditorRowType)rowType;
+- (id)ruleEditor:(RuleEditor *)editor
displayValueForCriterion:(id)criterion inRow:(int)row;
+- (NSDictionary *)ruleEditor:(RuleEditor *)editor
predicatePartsForCriterion:(id)criterion withDisplayValue:(id)value
inRow:(int)row;
+- (void)ruleEditorRowsDidChange:(NSNotification *)notification;
+@end
+
@implementation RuleEditor

-// DIRTY HACK FOR REMOVING OBSERVERS SETBY IB BINDINGS
+// DIRTY HACK FOR REMOVING OBSERVERS SET BY IB BINDINGS
- (void)windowWillClose:(NSNotification*)window
{
- id *observationInfo = [self observationInfo];
+ NSArray *observationInfo = [self observationInfo];
NSArray *binders = [observationInfo
valueForKeyPath:@"_observances._observer._observer"];
- [binders
makeObjectsPerformSelector:@selector(releaseConnectionWithSynchronizePeerBinders:)
withObject:YES];
+ [binders
makeObjectsPerformSelector:@selector(releaseConnectionWithSynchronizePeerBinders:)
withObject:(id)YES];
}

- (BOOL)isFlipped
@@ -58,24 +67,22 @@
// BOOL int float : we should nil check keys first.
_alignmentGridWidth = [coder
decodeDoubleForKey:@"NSRuleEditorAlignmentGridWidth"];
_sliceHeight = [coder decodeDoubleForKey:@"NSRuleEditorSliceHeight"];
-
+ _stringsFileName = [[coder
decodeObjectForKey:@"NSRuleEditorStringsFileName"] retain];
_ruleEditorFlags.editable = [coder
decodeBoolForKey:@"NSRuleEditorEditable"];
_ruleEditorFlags.allowsEmptyCompoundRows = [coder
decodeBoolForKey:@"NSRuleEditorAllowsEmptyCompoundRows"];
- _ruleEditorFlags.disallowEmpty = [coder
decodeBoolForKey:@"NSRuleEditorDisallowEmpty"];
-
- _nestingMode = [coder decodeIntForKey:@"NSRuleEditorNestingMode"];
-
+ _ruleEditorFlags.disallowEmpty = [coder
decodeBoolForKey:@"NSRuleEditorDisallowEmpty"];
+ _nestingMode = [coder decodeIntForKey:@"NSRuleEditorNestingMode"];
_typeKeyPath = [[coder decodeObjectForKey:@"NSRuleEditorRowTypeKeyPath"]
retain];
_itemsKeyPath = [[coder decodeObjectForKey:@"NSRuleEditorItemsKeyPath"]
retain];
_valuesKeyPath = [[coder
decodeObjectForKey:@"NSRuleEditorValuesKeyPath"] retain];
_subrowsArrayKeyPath = [[coder
decodeObjectForKey:@"NSRuleEditorSubrowsArrayKeyPath"] retain];
_boundArrayKeyPath = [[coder
decodeObjectForKey:@"NSRuleEditorBoundArrayKeyPath"] retain];
-
_rowClass = NSClassFromString([coder
decodeObjectForKey:@"NSRuleEditorRowClass"]);
- _boundArrayOwner = [coder
decodeObjectForKey:@"NSRuleEditorBoundArrayOwner"];
-
+
+ _slicesHolder = [[coder decodeObjectForKey:@"NSRuleEditorSlicesHolder"]
retain];
+ //_boundArrayOwner = [[coder
decodeObjectForKey:@"NSRuleEditorBoundArrayOwner"] retain];
_slices = [[coder decodeObjectForKey:@"NSRuleEditorSlices"] retain];
- // NSMutableSet * dragTypes = [coder decodeObjectForKey:@"NSDragTypes"];
+ _ruleDelegate = [coder decodeObjectForKey:@"NSRuleEditorDelegate"];

[self _initRuleEditorShared];
}
@@ -90,6 +97,7 @@
[coder encodeBool:_ruleEditorFlags.allowsEmptyCompoundRows
forKey:@"NSRuleEditorAllowsEmptyCompoundRows"];
[coder encodeBool:_ruleEditorFlags.disallowEmpty
forKey:@"NSRuleEditorDisallowEmpty"];

+ [coder encodeObject:_stringsFileName
forKey:@"NSRuleEditorStringsFilename"];
[coder encodeObject:_typeKeyPath forKey:@"NSRuleEditorRowTypeKeyPath"];
[coder encodeObject:_itemsKeyPath forKey:@"NSRuleEditorItemsKeyPath"];
[coder encodeObject:_valuesKeyPath forKey:@"NSRuleEditorValuesKeyPath"];
@@ -97,6 +105,7 @@
[coder encodeObject:_subrowsArrayKeyPath
forKey:@"NSRuleEditorSubrowsArrayKeyPath"];
[coder encodeObject:NSStringFromClass(_rowClass)
forKey:@"NSRuleEditorRowClass"];

+ [coder encodeObject:_slicesHolder forKey:@"NSRuleEditorSlicesHolder"];
[coder encodeObject:_slices forKey:@"NSRuleEditorSlices"];
[coder encodeObject:_boundArrayOwner
forKey:@"NSRuleEditorBoundArrayOwner"];
}
@@ -104,7 +113,33 @@
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:(NSRect)frame];
- if (self != nil){
+ if (self != nil)
+ {
+ _slices = [[NSMutableArray alloc] init];
+
+ _nestingMode = NSRuleEditorNestingModeSimple; // 10.5 default =
NSRuleEditorNestingModeCompound
+ _subviewIndexOfDropLine = -1;
+ _lastRow = 0;
+ _ruleEditorFlags.editable = 1;
+ _ruleEditorFlags.delegateWantsValidation = 1;
+ _sliceHeight = 25.;
+
+ [self setRowClass:[NSMutableDictionary class]];
+ [self setCriteriaKeyPath:@"criteria"];
+ [self setSubrowsKeyPath:@"subrows"];
+ [self setRowTypeKeyPath:@"rowType"];
+ [self setDisplayValuesKeyPath:@"displayValues"];
+ [self setBoundArrayKeyPath:@"boundArray"];
+
+ _dropLineView = [self _createSliceDropSeparator];
+ _slicesHolder = [[RuleEditorViewSliceHolder alloc] initWithFrame:[self
bounds]];
+ [_slicesHolder setAutoresizingMask:64];
+ [_slicesHolder addSubview:_dropLineView];
+ [self addSubview:_slicesHolder];
+
+ _boundArrayOwner = [[RuleEditorViewUnboundRowHolder alloc] init];
+ [_boundArrayOwner addObserver:self forKeyPath:_boundArrayKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:boundArrayContext];
+
[self _initRuleEditorShared];
}
return self;
@@ -112,39 +147,29 @@

- (void)_initRuleEditorShared
{
+ _rowCache = [[NSMutableArray alloc] init];
+
_currentAnimation = [[NSViewAnimation alloc] initWithDuration:0.
animationCurve:NSAnimationEaseInOut];
[_currentAnimation setAnimationBlockingMode:NSAnimationNonblocking];
-
- _rowCache = [[NSMutableArray alloc] init];
- _slices = [[NSMutableArray alloc] init];
-
- _nestingMode = NSRuleEditorNestingModeSimple; // 10.5 default =
NSRuleEditorNestingModeCompound
- _subviewIndexOfDropLine = -1;
- _lastRow = 0;
- _ruleEditorFlags.editable = 1;
- _ruleEditorFlags.delegateWantsValidation = 1;
-
- _rowClass = [NSMutableDictionary class];
- _itemsKeyPath = [[NSString stringWithString:@"criteria"] retain];
- _subrowsArrayKeyPath = [[NSString stringWithString:@"subrows"] retain];
- _typeKeyPath = [[NSString stringWithString:@"rowType"] retain];
- _valuesKeyPath = [[NSString stringWithString:@"displayValues"] retain];
-
- _dropLineView = [self _createSliceDropSeparator];
-
- _slicesHolder = [[RuleEditorViewSliceHolder alloc] initWithFrame:[self
bounds]];
- [_slicesHolder setAutoresizingMask:64];
- [_slicesHolder addSubview:_dropLineView];
- [self addSubview:_slicesHolder];
-
- [self setBoundArrayKeyPath:@"boundArray"];
- _boundArrayOwner = [[RuleEditorViewUnboundRowHolder alloc] init];
- [_boundArrayOwner addObserver:self forKeyPath:_boundArrayKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:boundArrayContext];
+ [_currentAnimation setDuration:0.5];
+
[self registerForDraggedTypes:[NSArray
arrayWithObjects:NSRuleEditorItemPBoardType,nil]];

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(windowWillClose:)
name:NSWindowWillCloseNotification object:nil];
- [center addObserver:self selector:@selector(reloadPredicate)
name:@"NSRuleEditorRulesDidChangeNotification" object:nil];
+ [center addObserver:self selector:@selector(_updatePredicate)
name:NSRuleEditorRulesDidChangeNotification object:nil];
+
+ [[NSApplication sharedApplication] setNextResponder:self];
+}
+
+- (BOOL)acceptsFirstResponder
+{
+ return YES;
+}
+
+-(void)keyDown:(NSEvent*)event
+{
+ NSLog("Command %i",[event modifierFlags] & NSCommandKeyMask);
}

- (void)dealloc
@@ -169,7 +194,7 @@

if(_currentAnimation)[_currentAnimation release];
if(_predicate)[_predicate release];
- if(_stringsFilename)[_stringsFilename release];
+ if(_stringsFileName)[_stringsFileName release];

// if(_ruleDelegate)[_ruleDelegate release];

@@ -184,9 +209,14 @@
[super dealloc];
}

-- (RuleEditorViewSliceDropSeparator*)_createSliceDropSeparator
-{
- NSView *view = [[RuleEditorViewSliceDropSeparator alloc]
initWithFrame:NSMakeRect(0,-5, [self frame].size.width, 2)];
+- (id)_rootRowsArray{
+ return [_boundArrayOwner valueForKey:_boundArrayKeyPath];
+}
+
+- (NSView*)_createSliceDropSeparator
+{
+ float width = [self frame].size.width;
+ NSView *view = [[RuleEditorViewSliceDropSeparator alloc]
initWithFrame:NSMakeRect(0.05*width,-5, 0.9*width, 2)];
[view setAutoresizingMask:NSViewWidthSizable];
return view;
}
@@ -198,7 +228,7 @@

- (BOOL)_wantsRowAnimations
{
- return YES;
+ return [self numberOfRows] > 0;
}

- (BOOL)_allowsEmptyCompoundRows
@@ -413,8 +443,10 @@

- (int)_rowIndexForRowObject:(id)rowobject
{
- if(rowobject == _boundArrayOwner) return -1;
- else return [[self _searchCacheForRowObject:rowobject] rowIndex]; // Pas
bon car le rowIndex du row cache n'est pas synchro avec la position dans
_rowCache.
+ if(rowobject == _boundArrayOwner)
+ return -1;
+ else
+ return [[self _searchCacheForRowObject:rowobject] rowIndex]; // Pas bon
car le rowIndex du row cache n'est pas synchro avec la position dans
_rowCache.
}

- (int)parentRowForRow:(int)rowIndex
@@ -440,10 +472,9 @@

- (NSMutableArray*)_subrowObjectsOfObject:(id)object
{
- if(object == _boundArrayOwner)
- return [object mutableArrayValueForKey:_boundArrayKeyPath];
- else
- return [object mutableArrayValueForKey:_subrowsArrayKeyPath];
+ NSString *keyPath = (object == _boundArrayOwner) ? _boundArrayKeyPath :
_subrowsArrayKeyPath;
+
+ return [object mutableArrayValueForKey:keyPath];
}

- (NSIndexSet*)subrowIndexesForRow:(int)rowIndex
@@ -605,30 +636,79 @@
[[self _subrowObjectsOfObject:_boundArrayOwner] insertObjects:boundRows
atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [boundRows
count])]];
}

-- (NSMutableArray*)_getItemsAndValuesToAddForRow:(int)rowIndex
ofType:(NSRuleEditorRowType)type
-{
- NSMutableArray *itemsAndValues = [NSMutableArray array];
-
- id item = NULL;
- int numItems;
- BOOL firstItemAdded = NO;
-
- int relativeIndex = (type == NSRuleEditorRowTypeSimple) ? rowIndex :
rowIndex - [self parentRowForRow:rowIndex] -1;
-
- while((numItems = [self _queryNumberOfChildrenOfItem:item
withRowType:type]) > 0){
- NSMutableDictionary *itemAndValue = [NSMutableDictionary dictionary];
-
- int childIndex = (firstItemAdded)?0:(relativeIndex % numItems);
-
- id child = [self _queryChild:childIndex ofItem:item withRowType:type];
- [itemAndValue setObject:child forKey:@"item"];
-
- id value = [self _queryValueForItem:child inRow:rowIndex];
- [itemAndValue setObject:value forKey:@"value"];
-
+
+- (BOOL)_nextUnusedItems:(NSArray**)items andValues:(NSArray**)values
forRow:(int)rowIndex forRowType:(unsigned int)type
+{
+ id parentItem = [items lastObject]; // if empty items array, this is NULL
aka the root item;
+
+ int found = NSNotFound;
+ int childrenCount = [self _queryNumberOfChildrenOfItem:parentItem
withRowType:type];
+ NSLog(@"childrenCount %d ",childrenCount);
+ if(childrenCount == 0) return NO;
+
+ NSMutableArray *current_criterions = [NSMutableArray array];
+ int row;
+ for (row=0; row < [self numberOfRows]; row++) // num of rows should be
num of siblings of parentItem
+ {
+ if([self rowTypeForRow:row] == type)
+ {
+ id crit = [[self criteriaForRow:row] objectAtIndex:[items count]];
+ [current_criterions addObject:crit];
+ }
+ }
+
+ while(found == NSNotFound)
+ {
+ NSMutableArray *buffer = [NSMutableArray
arrayWithArray:current_criterions];
+ int i;
+ for(i=0;i<childrenCount;i++)
+ {
+ id o = [self _queryChild:i ofItem:parentItem withRowType:type];
+ if([current_criterions indexOfObject:o] == NSNotFound)
+ {
+ NSLog(@"Found existing criterion at Index %d",i);
+ found = i;
+ break;
+ }
+ }
+
+ if(found == NSNotFound)
+ {
+ int j;
+ for(j = 0;j <childrenCount;j++){
+ id anobject = [self _queryChild:j ofItem:parentItem withRowType:type];
+ int index = [buffer indexOfObject:anobject];
+ if(index != NSNotFound)[buffer removeObjectAtIndex:index];
+ }
+ current_criterions = buffer;
+ }
+ }
+
+ id foundItem = [self _queryChild:found ofItem:parentItem
withRowType:type];
+ [items addObject:foundItem];
+ NSString *foundValue = [self _queryValueForItem:foundItem inRow:rowIndex];
+ [values addObject:foundValue];
+
+ return YES;
+}
+
+- (NSMutableArray*)_getItemsAndValuesToAddForRow:(int)rowIndex
ofType:(NSRuleEditorRowType)type
+{
+ BOOL unusedItems = YES;
+ NSMutableArray *itemsAndValues = [NSMutableArray array];
+ NSMutableArray *items = [NSMutableArray array];
+ NSMutableArray *values = [NSMutableArray array];
+
+ while(unusedItems)
+ unusedItems = [self _nextUnusedItems:items andValues:values
forRow:rowIndex forRowType:type];
+
+ int i;
+ for(i = 0; i < [items count]; i++)
+ {
+ id item = [items objectAtIndex:i];
+ NSString *value = [values objectAtIndex:i];
+ NSDictionary *itemAndValue = [NSDictionary
dictionaryWithObjectsAndKeys:item,@"item",value,@"value",nil];
[itemsAndValues addObject:itemAndValue];
- firstItemAdded = YES;
- item = child;
}

return itemsAndValues;
@@ -653,7 +733,8 @@
int parentRowIndex, rowtype;
int numberOfRows = [self numberOfRows];

- switch (_nestingMode){
+ switch (_nestingMode)
+ {
case NSRuleEditorNestingModeSimple:
rowtype = (numberOfRows ==
0)?NSRuleEditorRowTypeCompound:NSRuleEditorRowTypeSimple;
parentRowIndex = (numberOfRows == 0)?-1:0;
@@ -680,7 +761,7 @@
[self insertRowAtIndex:numberOfRows withType:rowtype
asSubrowOfRow:parentRowIndex animate:YES];
}

-- (void)insertRowAtIndex:(int)insertIndex withType:(unsigned int)rowtype
asSubrowOfRow:(int)parentRowIndex animate:(BOOL)animate
+- (void)insertRowAtIndex:(int)insertIndex
withType:(NSRuleEditorRowType)rowtype asSubrowOfRow:(int)parentRowIndex
animate:(BOOL)animate
{
[_currentAnimation setDuration:(animate)?0.5:0.0];

@@ -722,42 +803,42 @@
return row;
}

-- (void)_startObservingRowObjectsRecursively:(id)rowObjects
+- (void)_startObservingRowObjectsRecursively:(id)objects
{
#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
- NSEnumerator *collection = [rowObjects objectEnumerator];
- id rowObject;
- while (rowObject = [collection nextObject])
+ NSEnumerator *collection = [objects objectEnumerator];
+ id object;
+ while (object = [collection nextObject])
#else
- for(id rowObject in rowObjects)
+ for(id object in objects)
#endif
{
- [rowObject addObserver:self forKeyPath:_itemsKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:itemsContext];
- [rowObject addObserver:self forKeyPath:_valuesKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:valuesContext];
- [rowObject addObserver:self forKeyPath:_subrowsArrayKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:subrowsContext];
-
- NSMutableArray *subrows = [self _subrowObjectsOfObject:rowObject];
+ [object addObserver:self forKeyPath:_itemsKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:itemsContext];
+ [object addObserver:self forKeyPath:_valuesKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:valuesContext];
+ [object addObserver:self forKeyPath:_subrowsArrayKeyPath
options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNew
context:subrowsContext];
+
+ NSMutableArray *subrows = [self _subrowObjectsOfObject:object];
[self _startObservingRowObjectsRecursively:subrows];
}

// ORIG IMPL : calls +keyPathsForValuesAffectingValueForKey: for all keys
}

-- (void)_stopObservingRowObjectsRecursively:(id)rowObjects
+- (void)_stopObservingRowObjectsRecursively:(id)objects
{
#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
- NSEnumerator *collection = [rowObjects objectEnumerator];
- id rowObject;
- while (rowObject = [collection nextObject])
+ NSEnumerator *collection = [objects objectEnumerator];
+ id object;
+ while (object = [collection nextObject])
#else
- for(id rowObject in rowObjects)
+ for(id object in objects)
#endif
{
- [rowObject removeObserver:self forKeyPath:_itemsKeyPath];
- [rowObject removeObserver:self forKeyPath:_valuesKeyPath];
- [rowObject removeObserver:self forKeyPath:_subrowsArrayKeyPath];
-
- NSMutableArray *subrows = [rowObject objectForKey:_subrowsArrayKeyPath];
+ [object removeObserver:self forKeyPath:_itemsKeyPath];
+ [object removeObserver:self forKeyPath:_valuesKeyPath];
+ [object removeObserver:self forKeyPath:_subrowsArrayKeyPath];
+
+ NSMutableArray *subrows = [object valueForKey:_subrowsArrayKeyPath];
[self _stopObservingRowObjectsRecursively:subrows];
}
}
@@ -795,20 +876,17 @@
}

[self _changedRowArray:newRows withOldRowArray:oldRows forParent:object];
-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
+
NSEnumerator *collection = [newRows objectEnumerator];
id newRow;
while (newRow = [collection nextObject])
-#else
- for(id newRow in newRows)
-#endif
{
NSMutableArray *subnewRows = [self _subrowObjectsOfObject:newRow];
if([subnewRows count]>0)[self _changedRowArray:subnewRows
withOldRowArray:[NSArray array] forParent:newRow];
}

- [self _reconfigureSubviewsAnimate:YES];
- [self reloadPredicate];
+ [self _reconfigureSubviewsAnimate:NO];
+ [self _updatePredicate];

if([newRows count] != [oldRows count])
[self
_postRowCountChangedNotificationOfType:NSRuleEditorRowsDidChangeNotification
indexes:[change objectForKey:NSKeyValueChangeIndexesKey]];
@@ -822,7 +900,7 @@
[self _changedRowArray:newRows withOldRowArray:oldRows
forParent:object];

[self _reconfigureSubviewsAnimate:YES];
- [self reloadPredicate];
+ [self _updatePredicate];

if([newRows count] != [oldRows count])
[self
_postRowCountChangedNotificationOfType:NSRuleEditorRowsDidChangeNotification
indexes:[change objectForKey:NSKeyValueChangeIndexesKey]];
@@ -887,24 +965,27 @@
NSLog(@"\nOldArray:%d\nNewArray:%d",oldRowCount,newRowCount);

int parentCacheindentation;
- if(parentCacheIndex == -1) parentCacheindentation = -1;
+ if(parentCacheIndex == -1)
+ parentCacheindentation = -1;
else
parentCacheindentation = [[self _rowCacheForIndex:parentCacheIndex]
indentation];

- [_rowCache removeObjectsInRange:NSMakeRange(parentCacheIndex+1,
oldRowCount)];
+
int newRowCacheindex;
+ NSMutableIndexSet *insertCacheIndexes = [NSMutableIndexSet indexSet];
+ NSMutableArray *newCaches = [NSMutableArray array];
for(newRowCacheindex = 0; newRowCacheindex < newRowCount;
newRowCacheindex++){
- int newCacheIndex = parentCacheIndex+newRowCacheindex+1;
+ int newCacheIndex = parentCacheIndex + newRowCacheindex + 1;
id obj = [newRows objectAtIndex:newRowCacheindex];
- int newRowType = [[obj valueForKey:_typeKeyPath] intValue];
-
- RuleEditorCache *cache = [RuleEditorCache new];
+ int newRowType = [[obj valueForKey:_typeKeyPath] intValue];
+
+ RuleEditorCache *cache = [[RuleEditorCache new] autorelease];
[cache setRowObject:obj];
[cache setRowIndex:newCacheIndex];
- [cache setIndentation:parentCacheindentation + 1];
- [_rowCache insertObject:cache atIndex:newCacheIndex];
- [cache release];
-
+ [cache setIndentation:parentCacheindentation + 1];
+ //[_rowCache insertObject:cache atIndex:newCacheIndex];
+ [insertCacheIndexes addIndex:newCacheIndex];
+ [newCaches addObject:cache];
if ([[obj valueForKey:_itemsKeyPath] count] == 0)
{
NSMutableArray *itemsandvalues = [self
_getItemsAndValuesToAddForRow:newRowCacheindex ofType:newRowType];
@@ -916,6 +997,8 @@
}
}

+ [_rowCache removeObjectsInRange:NSMakeRange(parentCacheIndex+1,
oldRowCount)];
+ [_rowCache insertObjects:newCaches atIndexes:insertCacheIndexes];
int deltaCount = newRowCount - oldRowCount;
int minusCount = MIN(newRowCount,oldRowCount);

@@ -957,6 +1040,7 @@
[_slices removeObjectsAtIndexes:removeIndexes];
}

+ [self _updateSliceRows];
[_slices makeObjectsPerformSelector:@selector(_updateButtonVisibilities)];
}

@@ -984,14 +1068,9 @@
NSMutableArray *viewAnimations = [NSMutableArray array];
NSMutableArray *added_slices = [NSMutableArray array];

-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
NSEnumerator *collection = [_slices objectEnumerator];
RuleEditorViewSliceRow *slice;
while (slice = [collection nextObject])
-#else
- for(RuleEditorViewSliceRow *slice in _slices)
-#endif
-
{
NSRect targetRect = [slice _animationTargetRect];
if(! NSEqualRects([slice frame], targetRect))
@@ -1007,19 +1086,15 @@

NSMutableDictionary *animation = [NSMutableDictionary dictionary];
[animation setObject:slice forKey:NSViewAnimationTargetKey];
- //[animation setObject:[NSValue valueWithRect:[slice frame]]
forKey:NSViewAnimationStartFrameKey];
- [animation setObject:[NSValue valueWithRect: (NSRect)targetRect]
forKey:NSViewAnimationEndFrameKey];
+ [animation setObject:[NSValue valueWithRect:targetRect]
forKey:NSViewAnimationEndFrameKey];

[viewAnimations insertObject:animation atIndex:0];
}
}
-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
+
NSEnumerator *collection2 = [added_slices objectEnumerator];
RuleEditorViewSliceRow *added_slice;
while (added_slice = [collection2 nextObject])
-#else
- for(RuleEditorViewSliceRow * added_slice in added_slices)
-#endif
[_slicesHolder addSubview:added_slice positioned:NSWindowBelow
relativeTo:nil];

if(animate)
@@ -1027,10 +1102,11 @@
[_currentAnimation setViewAnimations:viewAnimations];
[_currentAnimation startAnimation];
}
- /*
- [[_slices objectAtIndex:_lastRow] setNeedsDisplay:YES];
+
+ if (_lastRow < [_slices count])
+ [[_slices objectAtIndex:_lastRow] setNeedsDisplay:YES];
_lastRow = [self numberOfRows] -1;
- */
+
}

- (void)_updateSliceRows
@@ -1057,10 +1133,7 @@
{
id rowcache = [self _rowCacheForIndex:index];
if (rowcache)
- {
- NSMutableArray *values = [[rowcache rowObject]
mutableArrayValueForKey:_itemsKeyPath];
- return values;
- }
+ return [[rowcache rowObject] valueForKey:_itemsKeyPath];

return nil;
}
@@ -1070,10 +1143,7 @@
id rowcache = [self _rowCacheForIndex:index];

if (rowcache)
- {
- NSMutableArray *values = [[rowcache rowObject]
mutableArrayValueForKey:_valuesKeyPath];
- return values;
- }
+ return [[rowcache rowObject] valueForKey:_valuesKeyPath];

return nil;
}
@@ -1104,7 +1174,7 @@
}
}

-- (void)reloadPredicate
+- (void)_updatePredicate
{
NSMutableArray *subpredicates = [NSMutableArray array];
NSIndexSet*subindexes = [self subrowIndexesForRow:-1];
@@ -1125,10 +1195,9 @@
NSLog(@"new Predicate:%@",new_predicate);
}

-- (void)_updatePredicate
-{
- [self willChangeValueForKey:@"predicate"];
- [self didChangeValueForKey:@"predicate"];
+- (void)reloadPredicate
+{
+ [self _updatePredicate];
}

- (NSPredicate*)predicateForRow:(int)row
@@ -1160,9 +1229,10 @@

for (i = 0; i < [items count]; i++){
id item = [items objectAtIndex:i];
- id displayValue = [self _queryValueForItem:item inRow:row]; // A voir.
On peut aussi prendre la valeur affichée dans le row cache.
-
- NSDictionary *predpart = [_ruleDelegate ruleEditor:(id)self
predicatePartsForCriterion:(id)item withDisplayValue:displayValue
inRow:(int)row];
+ // id displayValue = [self _queryValueForItem:item inRow:row]; // A
voir. On peut aussi prendre la valeur affichée dans le row cache.
+ id cached_displayvalue = [[self displayValuesForRow:row]
objectAtIndex:i];
+
+ NSDictionary *predpart = [_ruleDelegate ruleEditor:self
predicatePartsForCriterion:item withDisplayValue:cached_displayvalue
inRow:row];
if(predpart)[predicateParts setValuesForKeysWithDictionary:predpart];
}

@@ -1292,7 +1362,7 @@

- (NSColor*)_selectedActiveRowColor
{
- return [NSColor controlColor];
+ return [NSColor selectedControlColor];
}

- (NSColor*)_selectedInactiveRowColor
@@ -1367,13 +1437,9 @@
- (NSIndexSet*)selectedRowIndexes
{
NSMutableIndexSet *selectedRowIndexes = [NSMutableIndexSet indexSet];
-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
NSEnumerator *collection = [_slices objectEnumerator];
RuleEditorViewSliceRow *slice;
while (slice = [collection nextObject])
-#else
- for(RuleEditorViewSliceRow *slice in _slices)
-#endif
if([slice _isSelected])[selectedRowIndexes addIndex:[slice rowIndex]];

return selectedRowIndexes;
@@ -1421,20 +1487,28 @@
_alignmentGridWidth = width;
}

-- (void)_postRowCountChangedNotificationOfType:(NSString*)notificationName
indexes:indexes
+- (void)_postRowCountChangedNotificationOfType:(NSString*)notificationName
indexes:(NSIndexSet*)indexes
{
[[NSNotificationCenter defaultCenter]
postNotificationName:notificationName object:indexes];
}

- (void)bind:(NSString *)binding toObject:(id)observableController
withKeyPath:(NSString *)keyPath options:(NSDictionary *)options
{
+ // _boundArrayOwner should be nil before _setBoundDataSource:
withKeyPath: options: is called
+
if([binding isEqualToString:@"rows"])
- [self _setBoundDataSource:observableController withKeyPath:keyPath
options:options];
+ {
+ if([observableController respondsToSelector:@selector(objectClass)])
+ _rowClass = [observableController objectClass];
+
+ [self _setBoundDataSource:observableController withKeyPath:keyPath
options:options];
+ }
}

- (void)unbind:(id)object
{
NSLog(@"%s",SELNAME(_cmd));
+ _rowClass = [NSMutableDictionary class];
[super unbind:object];
}

@@ -1479,14 +1553,14 @@

- (NSString *)formattingStringsFilename
{
- return _stringsFilename;
+ return _stringsFileName;
}

- (void)setFormattingStringsFilename:(NSString *)value
{
- if (_stringsFilename != value) {
- [_stringsFilename release];
- _stringsFilename = [value retain];
+ if (_stringsFileName != value) {
+ [_stringsFileName release];
+ _stringsFileName = [value retain];
}
}

@@ -1494,15 +1568,16 @@
{
NSPoint point = [self convertPoint:[event locationInWindow]
fromView:nil];
NSView *view = [self hitTest:point];
- NSLog(@"Drag from %@",NSStringFromPoint(point));
+ NSLog(@"%s %@",_cmd,NSStringFromPoint(point));
if([self _dragShouldBeginFromMouseDown:view])
[self _performDragForSlice:view withEvent:event];
}

- (BOOL)_dragShouldBeginFromMouseDown:(NSView*)view
{
- return (_ruleEditorFlags.editable
- && [view isKindOfClass:[RuleEditorViewSliceRow class]]);
+ return (_ruleEditorFlags.editable &&
+ _draggingRows == nil &&
+ [view isKindOfClass:[RuleEditorViewSliceRow class]]);
}

- (BOOL)_performDragForSlice:(id)slice withEvent:(NSEvent*)event
@@ -1518,8 +1593,7 @@
_draggingRows = [self _includeSubslicesForSlicesAtIndexes:draggingRows];

NSPasteboard *pasteboard = [NSPasteboard pasteboardWithName:
NSDragPboard];
- [pasteboard declareTypes: [NSArray arrayWithObjects:
NSRuleEditorItemPBoardType, nil] owner: self];
-
+ [pasteboard declareTypes: [NSArray arrayWithObjects:
NSRuleEditorItemPBoardType, nil] owner: self];

NSImage *dragImage = [self _dragImageForIndices:_draggingRows];

@@ -1568,10 +1642,12 @@

- (NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
+ NSLog(@"%s",_cmd);
+
if ([sender draggingSource] == self)
{
[self _clearDropLine];
- return NSDragOperationGeneric;
+ return NSDragOperationMove;
}

return NSDragOperationNone;
@@ -1579,33 +1655,58 @@

- (void)_clearDropLine
{
- NSRect dropLineRect = [_dropLineView frame];
- dropLineRect.origin.y = -5;
- [_dropLineView setFrame:dropLineRect];
+ _subviewIndexOfDropLine = NSNotFound;
+ [_dropLineView setHidden:YES];
}

- (void)draggingExited:(id)sender
{
+ NSLog(@"%s",_cmd);
[self _clearDropLine];
[self setNeedsDisplay:YES];
+ _draggingRows = nil;
}

- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender
{
- NSLog(@"ROW CACHE BEFORE %@", [_rowCache description]);
-
- NSLog(@"ROW CACHE AFTER%@", [_rowCache description]);
+ NSLog(@"%s",_cmd);
+
+ int aboveInsertIndexCount = 0;
+ id object;
+ int removeIndex;
+
+ NSMutableArray *rowObjects = [_rowCache valueForKey:@"rowObject"];
+ int index = [_draggingRows lastIndex];
+
+ int parentRowIndex = [self parentRowForRow:index]; // first index of
draggingrows
+ id parentRowObject = (parentRowIndex == -1) ? _boundArrayOwner : [[self
_rowCacheForIndex:parentRowIndex] rowObject];
+ int insertIndex = _subviewIndexOfDropLine;
+
+ while (NSNotFound != index) {
+ if (index >= insertIndex) {
+ removeIndex = index + aboveInsertIndexCount;
+ aboveInsertIndexCount += 1;
+ }
+ else {
+ removeIndex = index;
+ insertIndex -= 1;
+ }
+ object = [rowObjects objectAtIndex:removeIndex];
+ [self removeRowAtIndex:removeIndex];
+ [[self _subrowObjectsOfObject:parentRowObject] insertObject:object
atIndex:insertIndex - parentRowIndex - 1];
+
+ index = [_draggingRows indexLessThanIndex:index];
+ }
+
[self _clearDropLine];
+ _draggingRows = nil;
+ return YES;
}

- (NSIndexSet*)_draggingTypes
{
return [NSIndexSet indexSetWithIndex:NSDragOperationMove];
}
-
-- (int)_dragOperationFromInfo:(id)info
-{
-}

- (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal
{
@@ -1613,9 +1714,15 @@

return NSDragOperationNone;
}
+
+- (BOOL)wantsPeriodicDraggingUpdates
+{
+ return NO;
+}

- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender
{
+ NSLog(@"%s",_cmd);
NSPoint point = [self convertPoint:[sender draggingLocation]
fromView:nil];
float y = point.y + _sliceHeight /2;
int indexOfDropLine = floor(y / _sliceHeight);
@@ -1633,43 +1740,40 @@
current_index = [_draggingRows indexGreaterThanIndex:current_index];
}

- NSRect dropLineRect = [_dropLineView frame];
- dropLineRect.origin.y = indexOfDropLine * _sliceHeight;
- [_dropLineView setFrame:dropLineRect];
+ if(_subviewIndexOfDropLine != indexOfDropLine)
+ {
+ [_dropLineView setHidden:NO];
+ [_dropLineView setFrameOrigin:NSMakePoint(0,indexOfDropLine *
_sliceHeight)];
+ _subviewIndexOfDropLine = indexOfDropLine;
+ }

return NSDragOperationMove;
}

-- (int)_updateDragging:(id)fp8
-{
- return (NO) ? NSDragOperationMove : NSDragOperationGeneric;
+- (unsigned int)_updateDragging:(id)fp8
+{
+
}

- (void)draggedImage:(NSImage *)dragImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation
{
+ _draggingRows = nil;
}

-- (BOOL)wantsPeriodicDraggingUpdates
-{
+- (void)_postRuleOptionChangedNotification
+{
+ [[NSNotificationCenter defaultCenter]
postNotificationName:@"NSRuleEditorRulesDidChangeNotification" object:self];
}

-- (id)_dragHandleColors
-{
-}
-
-- (void)_setWindow:(id)window
-{
+- (void)_setWindow:(NSWindow*)window
+{
+ [window setInitialFirstResponder:self];
[super _setWindow:window];
}
- (void)_windowUpdate:(id)sender
{
[super _windowUpdate:(id)sender];
-}
-
-- (void)_postRuleOptionChangedNotification
-{
- [[NSNotificationCenter defaultCenter]
postNotificationName:@"NSRuleEditorRulesDidChangeNotification" object:self];
-}
+}

/* DRAGGING PROTOCOL
-namesOfPromisedFilesDroppedAtDestination:
@@ -1688,6 +1792,17 @@
/* UNIMPLEMENTED */

/*==========================================================================================================*/
/*
+
+ - (int)_dragOperationFromInfo:(id)info
+ {
+ }
+
+ - (BOOL)wantsPeriodicDraggingUpdates
+ {
+ }
+ - (NSArray*)_dragHandleColors
+ {
+ }
- (void)_removeSubrowsForRow:(int)rowIndex fromSet:(NSIndexSet*)set
{
}
@@ -1717,9 +1832,7 @@
- (BOOL)_findRowObject:(id)object startingAtObject:(id)startObject
withIndex:(int)index
{
}
- - (BOOL)_nextUnusedItems:(id *)items andValues:(id *)fp12
forRow:(int)fp16 forRowType:(unsigned int)fp20
- {
- }
+
- (id)_globalIndexesForSubrowIndexes:(id)indexes ofParentObject:(id)fp12
{
}
@@ -1770,9 +1883,6 @@
- (void)_loadInitialRows
{
}
- - (void)_postRuleOptionChangedNotification
- {
- }
- (void)_sendRuleAction
{
}
@@ -1783,13 +1893,3 @@
*/

@end
-
-
-
-
-
-
-
-
-
-
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorPopupButton.h Fri Oct 3 05:56:51 2008
+++ /trunk/NSRuleEditor/NSRuleEditorPopupButton.h Tue Jul 21 02:15:15 2009
@@ -4,10 +4,9 @@
* class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
*/

-#import <AppKit/NSPopUpButton.h>
-#import "NSRuleEditorPopupButtonCell.h"
-
-@interface RuleEditorPopupButton : NSPopUpButton
+#import "NSRuleEditorPopUpButtonCell.h"
+
+@interface NSRuleEditorPopUpButton : NSPopUpButton
{
}
/*
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorPopupButton.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditorPopupButton.m Tue Jul 21 02:15:15 2009
@@ -4,24 +4,34 @@
* class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
*/

-#import "NSRuleEditorPopupButton.h"
-
-@implementation RuleEditorPopupButton
-/*
+#import "NSRuleEditorPopUpButton.h"
+
+@implementation NSRuleEditorPopUpButton
+
+ (void)initialize
-{
-}
-*/
+{
+ [self setCellClass:[NSRuleEditorPopUpButtonCell class]];
+}
+

+ (Class)cellClass
{
- return [RuleEditorPopupButtonCell class];
+ return [NSRuleEditorPopUpButtonCell class];
}

-/*
-
+- (id) init
+{
+ self = [super init];
+ if (self != nil) {
+
+ }
+ return self;
+}
+
+/*
- (void)sizeToFit
{
+ }
*/

@end
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.h Fri Oct 3 05:56:51
2008
+++ /trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.h Tue Jul 21 02:15:15
2009
@@ -6,13 +6,13 @@

#import <AppKit/NSPopUpButtonCell.h>

-@interface RuleEditorPopupButtonCell : NSPopUpButtonCell
-{
-}
-/*
+@interface NSRuleEditorPopUpButtonCell : NSPopUpButtonCell
+{
+
+}
- (BOOL)sliceIsEditable;
- (BOOL)trackMouse:(id)fp8 inRect:(struct _NSRect)fp12 ofView:(id)fp28
untilMouseUp:(BOOL)fp32;
- (unsigned int)arrowPosition;
-*/
+
@end

=======================================
--- /trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.m Sat Oct 4 03:59:17
2008
+++ /trunk/NSRuleEditor/NSRuleEditorPopupButtonCell.m Tue Jul 21 02:15:15
2009
@@ -4,9 +4,10 @@
* class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
*/

-#import "NSRuleEditorPopupButtonCell.h"
-
-@implementation RuleEditorPopupButtonCell
+#import "NSRuleEditorPopUpButtonCell.h"
+#import "NSRuleEditorViewSliceRow.h"
+
+@implementation NSRuleEditorPopUpButtonCell

- (id)init
{
@@ -23,24 +24,17 @@
- (BOOL)sliceIsEditable
{
NSView *slice = [[self controlView] superview];
- return [slice isEditable];
+ return [(RuleEditorViewSliceRow *)slice isEditable];
}


- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame
ofView:(NSView *)controlView untilMouseUp:(BOOL)untilMouseUp
{
- BOOL editable = [self sliceIsEditable];
- if(!editable)
+ if(![self sliceIsEditable])
return NO;

return [super trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame
ofView:(NSView *)controlView untilMouseUp:(BOOL)untilMouseUp];
}
-
-- (NSRect)drawingRectForBounds:(NSRect)theRect
-{
- theRect.size.height -=5;
- return theRect;
-}

- (unsigned int)arrowPosition
{
@@ -49,7 +43,6 @@

return NSPopUpNoArrow;
}
-

@end

=======================================
--- /trunk/NSRuleEditor/NSRuleEditorTextField.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditorTextField.m Tue Jul 21 02:15:15 2009
@@ -8,17 +8,20 @@

#import "NSRuleEditorTextField.h"

+@class RuleEditorTextFieldCell;
+
@implementation RuleEditorTextField
+
++(Class)cellClass
+{
+ return [RuleEditorTextFieldCell class];
+}

- (id) initWithFrame:(NSRect)frame
{
self = [super initWithFrame:(NSRect)frame];
if (self != nil) {
- [[self cell] setControlSize:NSMiniControlSize];
- [[self cell] setBordered:NO];
- [[self cell] setEditable:NO];
- [[self cell] setDrawsBackground:NO];
- [[self cell] setFont:[NSFont fontWithName:@"LuciaGrande" size:11.]];
+ [self setBordered:NO];
}
return self;
}
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorTextFieldCell.h Fri Oct 3 05:56:51 2008
+++ /trunk/NSRuleEditor/NSRuleEditorTextFieldCell.h Tue Jul 21 02:15:15 2009
@@ -1,11 +1,6 @@
-/*
- * Generated by class-dump 3.1.2.
- *
- * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by
Steve Nygard.
- */


-@interface NSRuleEditorTextFieldCell : NSTextFieldCell
+@interface RuleEditorTextFieldCell : NSTextFieldCell
{
}

=======================================
--- /trunk/NSRuleEditor/NSRuleEditorTextFieldCell.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditorTextFieldCell.m Tue Jul 21 02:15:15 2009
@@ -1,26 +1,17 @@
-//
-// NSRuleEditorTextFieldCell.m
-// NSRuleEditor
-//
-// Created by x on 03/10/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-

#import "NSRuleEditorTextFieldCell.h"

-@implementation NSRuleEditorTextFieldCell
-
-- (id) initWithFrame:(NSRect)frame
-{
- self = [super initWithFrame:(NSRect)frame];
+@implementation RuleEditorTextFieldCell
+
+- (id) init
+{
+ self = [super init];
if (self != nil) {
[self setControlSize:NSMiniControlSize];
- [self setBordered:NO];
[self setEditable:NO];
- [self setDrawsBackground:NO];
- [self setFont:[NSFont fontWithName:@"LuciaGrande" size:11.]];
-
+ [self setSelectable:NO];
+ [self setBackgroundColor:[NSColor controlColor]];
+ [self setFont:[NSFont fontWithName:@"LuciaGrande" size:11.]];
}
return self;
}
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorViewSliceRow.h Sat May 24 09:45:25 2008
+++ /trunk/NSRuleEditor/NSRuleEditorViewSliceRow.h Tue Jul 21 02:15:15 2009
@@ -33,8 +33,6 @@
- (float)_rowButtonsLeftHorizontalPadding;
- (float)_rowButtonsRightHorizontalPadding;

-- (unsigned int)_rowType;
-
- (NSButton*)_createAddRowButton;
- (NSButton*)_createDeleteRowButton;
- (NSMenuItem*)_createMenuItemWithTitle:(NSString*)title;
@@ -51,14 +49,14 @@
- (void)_reconfigureSubviews;
- (void)_relayoutSubviewsWidthChanged:(BOOL)flag;
- (void)_ruleOptionPopupChangedAction:(NSMenuItem*)sender;
-
-- (void)_setRowType:(unsigned int)type;
- (void)_setRowTypeToAddFromPlusButton:(int)type;
-
- (void)_updateButtonVisibilities;

-- (void)dealloc;
+- (void)_setRowType:(unsigned int)type;
+- (unsigned int)_rowType;
+
- (void)setEditable:(BOOL)flag;
+- (BOOL)isEditable;


/*==========================================================================================================*/
/* UNIMPLEMENTED */
@@ -71,7 +69,7 @@
- (BOOL)_nestingModeShouldHideAddButton;
- (BOOL)_nestingModeShouldHideSubtractButton;
- (BOOL)containsDisplayValue:(id)value;
- - (BOOL)isEditable;
+
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem;
- (void)setFrameSize:(NSSize)size;
- (void)viewDidMoveToWindow;
=======================================
--- /trunk/NSRuleEditor/NSRuleEditorViewSliceRow.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor/NSRuleEditorViewSliceRow.m Tue Jul 21 02:15:15 2009
@@ -13,8 +13,8 @@
#import "NSRuleEditorViewSliceRow.h"
#import "NSRuleEditorViewSlice.h"
#import "NSRuleEditorButtonCell.h"
-#import "NSRuleEditorPopupButton.h"
-#import "NSRuleEditorPopupButtonCell.h"
+#import "NSRuleEditorPopUpButton.h"
+#import "NSRuleEditorPopUpButtonCell.h"
#import "NSRuleEditorTextField.h"

@implementation RuleEditorViewSliceRow
@@ -108,14 +108,14 @@
- (NSMenuItem*)_createMenuItemWithTitle:(NSString*)title
{
NSString *loc_title = NSLocalizedStringFromTable(title,[_ruleEditor
formattingStringsFilename],nil);
- return [[[NSMenuItem alloc] initWithTitle:loc_title action:0
keyEquivalent:@""] autorelease];
+ return [[[NSMenuItem alloc] initWithTitle:loc_title action:NULL
keyEquivalent:@""] autorelease];
}

- (NSPopUpButton*)_createPopUpButtonWithItems:(NSArray*)itemsArray
selectedItemIndex:(int)index
{
// [RuleEditorViewSliceRow _minimumVerticalPopupPadding]

- RuleEditorPopupButton *popup = [[[RuleEditorPopupButton alloc] init]
autorelease];
+ NSRuleEditorPopUpButton *popup = [[[NSRuleEditorPopUpButton alloc] init]
autorelease];

[popup setFrame:NSMakeRect(0, ([_ruleEditor rowHeight] - [popup
frame].size.height)/2, CONTROL_HEIGHT, 40)];
NSMenu *menu = [[NSMenu alloc] init];
@@ -182,13 +182,9 @@

- (void)_emptyRulePartSubviews
{
-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
NSEnumerator *collection = [_ruleOptionViews objectEnumerator];
id view;
while (view = [collection nextObject])
-#else
- for(id view in _ruleOptionViews)
-#endif
[view removeFromSuperview];

[_ruleOptionViews removeAllObjects];
@@ -247,7 +243,7 @@

if((childIndex == numItems - 1 && selectedItem == nil)
|| ([current_display_value isEqual:display_value_cached])
- || ([current_display_value isKindOfClass:[NSView class]]
+ || ([current_display_value isKindOfClass:[NSControl class]]
&& [[current_display_value objectValue]
isEqualTo:[display_value_cached objectValue]]))
{
selectedItem = childItem; selectedMenuItemIndex = childIndex;
@@ -278,7 +274,7 @@
}
else if(isCustomRightControl)
{
- optionView = display_value_cached;
+ optionView = display_value_cached;
[optionView setFrame:NSMakeRect(0, 0, 150, CONTROL_HEIGHT)];
if([optionView respondsToSelector:@selector(cell)])
[[(NSControl*)optionView cell] setEditable:_sliceRowFlags.editable];
}
@@ -309,13 +305,9 @@

float optionViewOriginX = [self _leftmostViewFixedHorizontalPadding] +
[self _indentationHorizontalPadding]*[self indentation];

-#if (MAC_OS_X_VERSION_MAX_ALLOWED != MAC_OS_X_VERSION_10_5)
NSEnumerator *collection = [_ruleOptionViews objectEnumerator];
NSView * _ruleOptionView;
while (_ruleOptionView = [collection nextObject])
-#else
- for(NSView * _ruleOptionView in _ruleOptionViews)
-#endif
{
BOOL shouldAddView = ([_ruleOptionView superview] == nil);
if(changedWidth || shouldAddView)
@@ -453,20 +445,26 @@
return [[_ruleEditor displayValuesForRow:[self rowIndex]]
containsObject:value];
// Ou alors avec _correspondingRuleItems
}
-/*
-- (BOOL)_dropsIndentWhenImmediatelyBelow
-{
+- (BOOL)_isRulePopup:(NSView*)view
+{
+ if([view isKindOfClass:[NSRuleEditorPopUpButton class]])
+ return YES;
+ return NO;
}

-- (double)_minWidthForPass:(int)pass forView:(id)view
withProposedMinWidth:(double)minWidth
-{
+- (BOOL)_isRuleStaticTextField:(NSView*)view
+{
+ if([view isKindOfClass:[RuleEditorTextField class]])
+ return YES;
+ return NO;
}

-- (BOOL)_isRulePopup:(id)fp8
+/*
+- (BOOL)_dropsIndentWhenImmediatelyBelow
{
}

-- (BOOL)_isRuleStaticTextField:(id)fp8
+- (double)_minWidthForPass:(int)pass forView:(id)view
withProposedMinWidth:(double)minWidth
{
}

=======================================
--- /trunk/NSRuleEditor.xcodeproj/project.pbxproj Fri Oct 3 05:56:51 2008
+++ /trunk/NSRuleEditor.xcodeproj/project.pbxproj Tue Jul 21 02:15:15 2009
@@ -7,7 +7,6 @@
objects = {

/* Begin PBXBuildFile section */
- 170865150DE828D400741410 /* criteria.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 17D427370DB00113000A1E9D /* criteria.plist */; };
170865160DE828D400741410 /* NSRuleEditor.xib in Resources */ = {isa =
PBXBuildFile; fileRef = 17D4273F0DB00113000A1E9D /* NSRuleEditor.xib */; };
170865170DE828D400741410 /* tableArray.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 17D427410DB00113000A1E9D /* tableArray.plist */; };
170865190DE828D400741410 /* NSRuleEditorController.m in Sources */ =
{isa = PBXBuildFile; fileRef = 1735CC9E0D96CF4300B60772 /*
NSRuleEditorController.m */; };
@@ -42,7 +41,6 @@
170C2DBD0DF5BC3900F9929B /* RuleEditor_Prefix.pch in Headers */ = {isa =
PBXBuildFile; fileRef = 1775B4AB0D99140C00CE71B7 /* RuleEditor_Prefix.pch
*/; settings = {ATTRIBUTES = (Public, ); }; };
170C2DBE0DF5BC4000F9929B /* NSImageNameRemoveTemplate.tiff in Resources
*/ = {isa = PBXBuildFile; fileRef = 1708656E0DE82E0100741410 /*
NSImageNameRemoveTemplate.tiff */; };
170C2DBF0DF5BC4000F9929B /* NSImageNameAddTemplate.tiff in Resources */
= {isa = PBXBuildFile; fileRef = 170865610DE82D4A00741410 /*
NSImageNameAddTemplate.tiff */; };
- 171ACEC70E956A7000ADD3DF /* NSRuleEditorTextField.m in Sources */ = {isa
= PBXBuildFile; fileRef = 17FB1EF20E9428100020148A /*
NSRuleEditorTextField.m */; };
171ACF640E96457500ADD3DF /* EditableTextField.m in Sources */ = {isa =
PBXBuildFile; fileRef = 171ACF630E96457500ADD3DF /* EditableTextField.m */;
};
171ACF650E96457500ADD3DF /* EditableTextField.m in Sources */ = {isa =
PBXBuildFile; fileRef = 171ACF630E96457500ADD3DF /* EditableTextField.m */;
};
171ACF660E96457500ADD3DF /* EditableTextField.m in Sources */ = {isa =
PBXBuildFile; fileRef = 171ACF630E96457500ADD3DF /* EditableTextField.m */;
};
@@ -61,9 +59,7 @@
174C46380E8ECD1300D59BBA /* NSRuleEditorButtonCell.h in Headers */ =
{isa = PBXBuildFile; fileRef = 1735CC7A0D96C9B900B60772 /*
NSRuleEditorButtonCell.h */; };
174C46670E8EE13900D59BBA /* NSRuleEditorPopupButtonCell.m in Sources */
= {isa = PBXBuildFile; fileRef = 1735CC7F0D96C9B900B60772 /*
NSRuleEditorPopupButtonCell.m */; };
174C46850E8EE35C00D59BBA /* NSRuleEditorPopupButton.m in Sources */ =
{isa = PBXBuildFile; fileRef = 1735CC7D0D96C9B900B60772 /*
NSRuleEditorPopupButton.m */; };
- 174C46EC0E8F05C600D59BBA /* NSRuleEditorViewSliceDropSeparator.m in
Sources */ = {isa = PBXBuildFile; fileRef = 174C46EB0E8F05C600D59BBA /*
NSRuleEditorViewSliceDropSeparator.m */; };
177767DD0DBFEA9700669D6A /* NSRuleEditorButtonCell.m in Sources */ =
{isa = PBXBuildFile; fileRef = 177767DC0DBFEA9700669D6A /*
NSRuleEditorButtonCell.m */; };
- 177EBBDE0DCB7EBA0038B059 /* NSRuleEditorViewSliceRow.m in Sources */ =
{isa = PBXBuildFile; fileRef = 177EBBDD0DCB7EBA0038B059 /*
NSRuleEditorViewSliceRow.m */; };
17A1A6530E90FC52001705E5 /* NSRuleEditorViewSliceDropSeparator.m in
Sources */ = {isa = PBXBuildFile; fileRef = 1735CC850D96C9B900B60772 /*
NSRuleEditorViewSliceDropSeparator.m */; };
17A1A77F0E918891001705E5 /* format.strings in Resources */ = {isa =
PBXBuildFile; fileRef = 17D4273B0DB00113000A1E9D /* format.strings */; };
17A1A7FA0E924186001705E5 /* format.strings in Resources */ = {isa =
PBXBuildFile; fileRef = 17D4273B0DB00113000A1E9D /* format.strings */; };
@@ -73,7 +69,6 @@
17A1A8970E929453001705E5 /* NSRuleEditorPopupButton.h in Headers */ =
{isa = PBXBuildFile; fileRef = 1735CC7C0D96C9B900B60772 /*
NSRuleEditorPopupButton.h */; };
17A1A8980E929454001705E5 /* NSRuleEditorPopupButtonCell.h in Headers */
= {isa = PBXBuildFile; fileRef = 1735CC7E0D96C9B900B60772 /*
NSRuleEditorPopupButtonCell.h */; };
17A1A8990E929454001705E5 /* NSRuleEditorPopupButtonCell.m in Sources */
= {isa = PBXBuildFile; fileRef = 1735CC7F0D96C9B900B60772 /*
NSRuleEditorPopupButtonCell.m */; };
- 17AD13750DB91805002F3ED0 /* RuleEditor.m in Sources */ = {isa =
PBXBuildFile; fileRef = 17AD13730DB91805002F3ED0 /* RuleEditor.m */; };
17D427430DB00113000A1E9D /* criteria.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 17D427370DB00113000A1E9D /* criteria.plist */; };
17D427470DB00113000A1E9D /* NSRuleEditor.xib in Resources */ = {isa =
PBXBuildFile; fileRef = 17D4273F0DB00113000A1E9D /* NSRuleEditor.xib */; };
17D427480DB00113000A1E9D /* tableArray.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 17D427410DB00113000A1E9D /* tableArray.plist */; };
@@ -89,6 +84,36 @@
17FB1EF30E9428100020148A /* NSRuleEditorTextField.m in Sources */ = {isa
= PBXBuildFile; fileRef = 17FB1EF20E9428100020148A /*
NSRuleEditorTextField.m */; };
17FB1EF40E9428100020148A /* NSRuleEditorTextField.m in Sources */ = {isa
= PBXBuildFile; fileRef = 17FB1EF20E9428100020148A /*
NSRuleEditorTextField.m */; };
17FB1EF50E9428100020148A /* NSRuleEditorTextField.m in Sources */ = {isa
= PBXBuildFile; fileRef = 17FB1EF20E9428100020148A /*
NSRuleEditorTextField.m */; };
+ 5B17E6150F38B7890007372F /* criteria_test.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 5B17E6140F38B7890007372F /* criteria_test.plist */;
};
+ 5BD163750F59DED800AEB1EE /* Cocoa.framework in Frameworks */ = {isa =
PBXBuildFile; fileRef = 5BD1636A0F59DDF700AEB1EE /* Cocoa.framework */; };
+ 5BD163970F5B0C0D00AEB1EE /* RuleEditor.m in Sources */ = {isa =
PBXBuildFile; fileRef = 17AD13730DB91805002F3ED0 /* RuleEditor.m */; };
+ 5BE5997B0F5712F40057A9F6 /* NSPredicateEditor.h in Headers */ = {isa =
PBXBuildFile; fileRef = 5BE599750F5712F40057A9F6 /* NSPredicateEditor.h */;
};
+ 5BE5997C0F5712F40057A9F6 /* NSPredicateEditor.m in Sources */ = {isa =
PBXBuildFile; fileRef = 5BE599760F5712F40057A9F6 /* NSPredicateEditor.m */;
};
+ 5BE5997D0F5712F40057A9F6 /* NSPredicateEditorItem.h in Headers */ = {isa
= PBXBuildFile; fileRef = 5BE599770F5712F40057A9F6 /*
NSPredicateEditorItem.h */; };
+ 5BE5997E0F5712F40057A9F6 /* NSPredicateEditorItem.m in Sources */ = {isa
= PBXBuildFile; fileRef = 5BE599780F5712F40057A9F6 /*
NSPredicateEditorItem.m */; };
+ 5BE5997F0F5712F40057A9F6 /* NSPredicateEditorRowTemplate.h in Headers */
= {isa = PBXBuildFile; fileRef = 5BE599790F5712F40057A9F6 /*
NSPredicateEditorRowTemplate.h */; };
+ 5BE599800F5712F40057A9F6 /* NSPredicateEditorRowTemplate.m in Sources */
= {isa = PBXBuildFile; fileRef = 5BE5997A0F5712F40057A9F6 /*
NSPredicateEditorRowTemplate.m */; };
+ 5BE599840F57130C0057A9F6 /* NSRuleEditorTextFieldCell.h in Headers */ =
{isa = PBXBuildFile; fileRef = 1735CC810D96C9B900B60772 /*
NSRuleEditorTextFieldCell.h */; };
+ 5BE599850F57130D0057A9F6 /* NSRuleEditorTextField.h in Headers */ = {isa
= PBXBuildFile; fileRef = 1735CC800D96C9B900B60772 /*
NSRuleEditorTextField.h */; };
+ 5BE59D180F58A9E00057A9F6 /* NSPredicateEditor.xib in Resources */ = {isa
= PBXBuildFile; fileRef = 5BE59D160F58A9E00057A9F6 /* NSPredicateEditor.xib
*/; };
+ 5BE59D1D0F58AAA60057A9F6 /* main.m in Sources */ = {isa = PBXBuildFile;
fileRef = 1737DEB30B496EF10043C8CA /* main.m */; };
+ 5BE59D2E0F58AAFF0057A9F6 /* NSPredicateEditor.m in Sources */ = {isa =
PBXBuildFile; fileRef = 5BE599760F5712F40057A9F6 /* NSPredicateEditor.m */;
};
+ 5BE59D2F0F58AB000057A9F6 /* NSPredicateEditorItem.m in Sources */ = {isa
= PBXBuildFile; fileRef = 5BE599780F5712F40057A9F6 /*
NSPredicateEditorItem.m */; };
+ 5BE59D300F58AB020057A9F6 /* NSPredicateEditorRowTemplate.m in Sources */
= {isa = PBXBuildFile; fileRef = 5BE5997A0F5712F40057A9F6 /*
NSPredicateEditorRowTemplate.m */; };
+ 5BE59D310F58AB060057A9F6 /* NSRuleEditor.m in Sources */ = {isa =
PBXBuildFile; fileRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */; };
+ 5BE59D320F58AB070057A9F6 /* NSRuleEditorViewSlice.m in Sources */ = {isa
= PBXBuildFile; fileRef = 1735CC830D96C9B900B60772 /*
NSRuleEditorViewSlice.m */; };
+ 5BE59D330F58AB070057A9F6 /* NSRuleEditorViewSliceRow.m in Sources */ =
{isa = PBXBuildFile; fileRef = 1735CC870D96C9B900B60772 /*
NSRuleEditorViewSliceRow.m */; };
+ 5BE59D340F58AB080057A9F6 /* _NSRuleEditorViewSliceHolder.m in Sources */
= {isa = PBXBuildFile; fileRef = 1735CC740D96C9B900B60772 /*
_NSRuleEditorViewSliceHolder.m */; };
+ 5BE59D350F58AB090057A9F6 /* _NSRuleEditorCache.m in Sources */ = {isa =
PBXBuildFile; fileRef = 171A9FA40D9BC48700EB53FA /* _NSRuleEditorCache.m
*/; };
+ 5BE59D360F58AB0A0057A9F6 /* _NSRuleEditorViewUnboundRowHolder.m in
Sources */ = {isa = PBXBuildFile; fileRef = 1775B0FA0D981CA500CE71B7 /*
_NSRuleEditorViewUnboundRowHolder.m */; };
+ 5BE59D370F58AB0A0057A9F6 /* NSRuleEditorViewSliceDropSeparator.m in
Sources */ = {isa = PBXBuildFile; fileRef = 1735CC850D96C9B900B60772 /*
NSRuleEditorViewSliceDropSeparator.m */; };
+ 5BE59D380F58AB0C0057A9F6 /* NSRuleEditorButtonCell.m in Sources */ =
{isa = PBXBuildFile; fileRef = 177767DC0DBFEA9700669D6A /*
NSRuleEditorButtonCell.m */; };
+ 5BE59D390F58AB0C0057A9F6 /* NSRuleEditorPopupButton.m in Sources */ =
{isa = PBXBuildFile; fileRef = 1735CC7D0D96C9B900B60772 /*
NSRuleEditorPopupButton.m */; };
+ 5BE59D3A0F58AB0D0057A9F6 /* NSRuleEditorPopupButtonCell.m in Sources */
= {isa = PBXBuildFile; fileRef = 1735CC7F0D96C9B900B60772 /*
NSRuleEditorPopupButtonCell.m */; };
+ 5BE59D3B0F58AB0E0057A9F6 /* NSRuleEditorTextField.m in Sources */ = {isa
= PBXBuildFile; fileRef = 17FB1EF20E9428100020148A /*
NSRuleEditorTextField.m */; };
+ 5BE59D3C0F58AB100057A9F6 /* NSRuleEditorTextFieldCell.m in Sources */ =
{isa = PBXBuildFile; fileRef = 171ACF810E96477F00ADD3DF /*
NSRuleEditorTextFieldCell.m */; };
+ 5BE59D680F58AFB40057A9F6 /* criteria.plist in Resources */ = {isa =
PBXBuildFile; fileRef = 17D427370DB00113000A1E9D /* criteria.plist */; };
+ 5BE59D7F0F58B4EC0057A9F6 /* NSPredicateEditorController.m in Sources */
= {isa = PBXBuildFile; fileRef = 5BE59D7E0F58B4EC0057A9F6 /*
NSPredicateEditorController.m */; };
/* End PBXBuildFile section */

/* Begin PBXBuildRule section */
@@ -152,7 +177,6 @@
177767DC0DBFEA9700669D6A /* NSRuleEditorButtonCell.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSRuleEditorButtonCell.m; sourceTree = "<group>"; };
177EBBDD0DCB7EBA0038B059 /* NSRuleEditorViewSliceRow.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSRuleEditorViewSliceRow.m; sourceTree = "<group>"; };
17AD13730DB91805002F3ED0 /* RuleEditor.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path =
RuleEditor.m; sourceTree = "<group>"; };
- 17AD13740DB91805002F3ED0 /* RuleEditor.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuleEditor.h;
sourceTree = "<group>"; };
17D427380DB00113000A1E9D /* English */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.xml; name = English; path
= criteria.plist; sourceTree = "<group>"; };
17D4273C0DB00113000A1E9D /* English */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English;
path = format.strings; sourceTree = "<group>"; };
17D4273E0DB00113000A1E9D /* English */ = {isa = PBXFileReference;
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English;
path = InfoPlist.strings; sourceTree = "<group>"; };
@@ -163,6 +187,20 @@
17FA60060DB385A500FF0C45 /* NSRuleEditor Vanilla.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex =
0; path = "NSRuleEditor Vanilla.app"; sourceTree = BUILT_PRODUCTS_DIR; };
17FA60080DB385A500FF0C45 /* NSRuleEditorVanilla-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; path
= "NSRuleEditorVanilla-Info.plist"; sourceTree = "<group>"; };
17FB1EF20E9428100020148A /* NSRuleEditorTextField.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSRuleEditorTextField.m; sourceTree = "<group>"; };
+ 5B17E6140F38B7890007372F /* criteria_test.plist */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml;
path = criteria_test.plist; sourceTree = "<group>"; };
+ 5BD1636A0F59DDF700AEB1EE /* Cocoa.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework;
sourceTree = SDKROOT; };
+ 5BE599750F5712F40057A9F6 /* NSPredicateEditor.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = NSPredicateEditor.h; sourceTree = "<group>"; };
+ 5BE599760F5712F40057A9F6 /* NSPredicateEditor.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSPredicateEditor.m; sourceTree = "<group>"; };
+ 5BE599770F5712F40057A9F6 /* NSPredicateEditorItem.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = NSPredicateEditorItem.h; sourceTree = "<group>"; };
+ 5BE599780F5712F40057A9F6 /* NSPredicateEditorItem.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSPredicateEditorItem.m; sourceTree = "<group>"; };
+ 5BE599790F5712F40057A9F6 /* NSPredicateEditorRowTemplate.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = NSPredicateEditorRowTemplate.h; sourceTree = "<group>"; };
+ 5BE5997A0F5712F40057A9F6 /* NSPredicateEditorRowTemplate.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSPredicateEditorRowTemplate.m; sourceTree = "<group>"; };
+ 5BE59D090F58A8C70057A9F6 /* NSPredicateEditor Tiger.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex =
0; path = "NSPredicateEditor Tiger.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5BE59D0B0F58A8C70057A9F6 /* NSPredicateEditor Tiger-Info.plist */ = {isa
= PBXFileReference; lastKnownFileType = text.plist.xml; path
= "NSPredicateEditor Tiger-Info.plist"; sourceTree = "<group>"; };
+ 5BE59D170F58A9E00057A9F6 /* English */ = {isa = PBXFileReference;
lastKnownFileType = file.xib; name = English; path = NSPredicateEditor.xib;
sourceTree = "<group>"; };
+ 5BE59D5F0F58AF160057A9F6 /* com.cacaodev.NSRuleEditor_Tiger.plist */ =
{isa = PBXFileReference; lastKnownFileType = file.bplist; name =
com.cacaodev.NSRuleEditor_Tiger.plist; path =
/Users/martin/Library/Preferences/com.cacaodev.NSRuleEditor_Tiger.plist;
sourceTree = "<absolute>"; };
+ 5BE59D7D0F58B4EC0057A9F6 /* NSPredicateEditorController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = NSPredicateEditorController.h; sourceTree = "<group>"; };
+ 5BE59D7E0F58B4EC0057A9F6 /* NSPredicateEditorController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSPredicateEditorController.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
@@ -197,6 +235,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 5BE59D070F58A8C70057A9F6 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 5BD163750F59DED800AEB1EE /* Cocoa.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
@@ -205,10 +251,13 @@
children = (
1735CC9D0D96CF4300B60772 /* NSRuleEditorController.h */,
1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */,
+ 5BE59D7D0F58B4EC0057A9F6 /* NSPredicateEditorController.h */,
+ 5BE59D7E0F58B4EC0057A9F6 /* NSPredicateEditorController.m */,
1735CCA50D96D18D00B60772 /* RuleDelegate.h */,
1735CCA60D96D18D00B60772 /* RuleDelegate.m */,
171ACF620E96457500ADD3DF /* EditableTextField.h */,
171ACF630E96457500ADD3DF /* EditableTextField.m */,
+ 5B17E6140F38B7890007372F /* criteria_test.plist */,
17D427370DB00113000A1E9D /* criteria.plist */,
17D427410DB00113000A1E9D /* tableArray.plist */,
17D4273B0DB00113000A1E9D /* format.strings */,
@@ -216,7 +265,7 @@
name = Controllers;
sourceTree = SOURCE_ROOT;
};
- 1735CCA40D96D0D500B60772 /* RuleEditor classes */ = {
+ 1735CCA40D96D0D500B60772 /* NSRuleEditor */ = {
isa = PBXGroup;
children = (
1735CC780D96C9B900B60772 /* NSRuleEditor.h */,
@@ -236,15 +285,6 @@
1735CC760D96C9B900B60772 /* NSNavRuleEditor.h */,
1735CC770D96C9B900B60772 /* NSObject-NSNavRuleEditorChildItems.h */,
1735CC7B0D96C9B900B60772 /* NSRuleEditorLocalizer.h */,
- 1775B3750D9869BE00CE71B7 /* Controls */,
- );
- name = "RuleEditor classes";
- path = NSRuleEditor;
- sourceTree = "<group>";
- };
- 1775B3750D9869BE00CE71B7 /* Controls */ = {
- isa = PBXGroup;
- children = (
1735CC7A0D96C9B900B60772 /* NSRuleEditorButtonCell.h */,
177767DC0DBFEA9700669D6A /* NSRuleEditorButtonCell.m */,
1735CC7C0D96C9B900B60772 /* NSRuleEditorPopupButton.h */,
@@ -256,13 +296,12 @@
1735CC810D96C9B900B60772 /* NSRuleEditorTextFieldCell.h */,
171ACF810E96477F00ADD3DF /* NSRuleEditorTextFieldCell.m */,
);
- name = Controls;
+ path = NSRuleEditor;
sourceTree = "<group>";
};
17AD13FF0DB933C9002F3ED0 /* Vanilla */ = {
isa = PBXGroup;
children = (
- 17AD13740DB91805002F3ED0 /* RuleEditor.h */,
17AD13730DB91805002F3ED0 /* RuleEditor.m */,
170868330DE8686100741410 /* NSRuleEditorViewSlice.h */,
1708682D0DE867B900741410 /* NSRuleEditorViewSliceRow.h */,
@@ -279,9 +318,11 @@
173FEA6E0DB3E1A3002B4FB4 /* NSRuleEditorLeopard-Info.plist */,
17FA60080DB385A500FF0C45 /* NSRuleEditorVanilla-Info.plist */,
170865DD0DE8381F00741410 /* NSRuleEditorTiger-Info.plist */,
+ 5BE59D0B0F58A8C70057A9F6 /* NSPredicateEditor Tiger-Info.plist */,
17ECCF6F0DB7D50D0057EC3F /* NSRuleEditor.xcconfig */,
1775B4AB0D99140C00CE71B7 /* RuleEditor_Prefix.pch */,
170B0AB00BB3FCEF00DA79A5 /* Macros.h */,
+ 5BE59D5F0F58AF160057A9F6 /* com.cacaodev.NSRuleEditor_Tiger.plist */,
);
name = "Other files";
sourceTree = "<group>";
@@ -293,6 +334,7 @@
17FA60060DB385A500FF0C45 /* NSRuleEditor Vanilla.app */,
1735CC910D96CE6700B60772 /* NSRuleEditor.app */,
170C2D950DF5BB2000F9929B /* NSRuleEditor.framework */,
+ 5BE59D090F58A8C70057A9F6 /* NSPredicateEditor Tiger.app */,
);
name = Products;
sourceTree = "<group>";
@@ -302,7 +344,8 @@
children = (
1737DEB30B496EF10043C8CA /* main.m */,
1735CC710D96C9B900B60772 /* Controllers */,
- 1735CCA40D96D0D500B60772 /* RuleEditor classes */,
+ 5BE599740F5712D80057A9F6 /* NSPredicateEditor */,
+ 1735CCA40D96D0D500B60772 /* NSRuleEditor */,
17AD13FF0DB933C9002F3ED0 /* Vanilla */,
17B233750B84D80300291DFD /* Other files */,
29B97317FDCFA39411CA2CEA /* Resources */,
@@ -320,6 +363,7 @@
17D4273F0DB00113000A1E9D /* NSRuleEditor.xib */,
17ECCD140DB69CC80057EC3F /* NSRuleEditorVanilla.xib */,
17D4273D0DB00113000A1E9D /* InfoPlist.strings */,
+ 5BE59D160F58A9E00057A9F6 /* NSPredicateEditor.xib */,
);
name = Resources;
path = English.lproj;
@@ -329,10 +373,25 @@
isa = PBXGroup;
children = (
172DEF880D9D6E60004465EC /* Cocoa.framework */,
+ 5BD1636A0F59DDF700AEB1EE /* Cocoa.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
+ 5BE599740F5712D80057A9F6 /* NSPredicateEditor */ = {
+ isa = PBXGroup;
+ children = (
+ 5BE599750F5712F40057A9F6 /* NSPredicateEditor.h */,
+ 5BE599760F5712F40057A9F6 /* NSPredicateEditor.m */,
+ 5BE599770F5712F40057A9F6 /* NSPredicateEditorItem.h */,
+ 5BE599780F5712F40057A9F6 /* NSPredicateEditorItem.m */,
+ 5BE599790F5712F40057A9F6 /* NSPredicateEditorRowTemplate.h */,
+ 5BE5997A0F5712F40057A9F6 /* NSPredicateEditorRowTemplate.m */,
+ );
+ name = NSPredicateEditor;
+ path = NSRuleEditor;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
@@ -355,6 +414,11 @@
17A1A88D0E9292F4001705E5 /* NSRuleEditorViewSliceDropSeparator.h in
Headers */,
17A1A8970E929453001705E5 /* NSRuleEditorPopupButton.h in Headers */,
17A1A8980E929454001705E5 /* NSRuleEditorPopupButtonCell.h in Headers
*/,
+ 5BE5997B0F5712F40057A9F6 /* NSPredicateEditor.h in Headers */,
+ 5BE5997D0F5712F40057A9F6 /* NSPredicateEditorItem.h in Headers */,
+ 5BE5997F0F5712F40057A9F6 /* NSPredicateEditorRowTemplate.h in Headers
*/,
+ 5BE599840F57130C0057A9F6 /* NSRuleEditorTextFieldCell.h in Headers */,
+ 5BE599850F57130D0057A9F6 /* NSRuleEditorTextField.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -431,6 +495,23 @@
productReference = 17FA60060DB385A500FF0C45 /* NSRuleEditor Vanilla.app
*/;
productType = "com.apple.product-type.application";
};
+ 5BE59D080F58A8C70057A9F6 /* NSPredicateEditor Tiger */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 5BE59D0E0F58A8CA0057A9F6 /* Build
configuration list for PBXNativeTarget "NSPredicateEditor Tiger" */;
+ buildPhases = (
+ 5BE59D050F58A8C70057A9F6 /* Resources */,
+ 5BE59D060F58A8C70057A9F6 /* Sources */,
+ 5BE59D070F58A8C70057A9F6 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "NSPredicateEditor Tiger";
+ productName = "NSPredicateEditor Tiger";
+ productReference = 5BE59D090F58A8C70057A9F6 /* NSPredicateEditor
Tiger.app */;
+ productType = "com.apple.product-type.application";
+ };
/* End PBXNativeTarget section */

/* Begin PBXProject section */
@@ -444,6 +525,7 @@
projectRoot = "";
targets = (
170865130DE828D400741410 /* RuleEditor Tiger */,
+ 5BE59D080F58A8C70057A9F6 /* NSPredicateEditor Tiger */,
1735CC900D96CE6700B60772 /* RuleEditor Leopard */,
17FA5FF20DB385A500FF0C45 /* NSRuleEditor Vanilla */,
170C2D940DF5BB2000F9929B /* NSRuleEditor */,
@@ -456,12 +538,12 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 170865150DE828D400741410 /* criteria.plist in Resources */,
170865160DE828D400741410 /* NSRuleEditor.xib in Resources */,
170865170DE828D400741410 /* tableArray.plist in Resources */,
170865620DE82D4A00741410 /* NSImageNameAddTemplate.tiff in Resources
*/,
1708656F0DE82E0100741410 /* NSImageNameRemoveTemplate.tiff in
Resources */,
17A1A7FA0E924186001705E5 /* format.strings in Resources */,
+ 5BE59D680F58AFB40057A9F6 /* criteria.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -492,6 +574,15 @@
17FA5FF60DB385A500FF0C45 /* tableArray.plist in Resources */,
17ECCD160DB69CC80057EC3F /* NSRuleEditorVanilla.xib in Resources */,
17A1A77F0E918891001705E5 /* format.strings in Resources */,
+ 5B17E6150F38B7890007372F /* criteria_test.plist in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 5BE59D050F58A8C70057A9F6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 5BE59D180F58A9E00057A9F6 /* NSPredicateEditor.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -537,6 +628,9 @@
17A1A8990E929454001705E5 /* NSRuleEditorPopupButtonCell.m in Sources
*/,
17FB1EF40E9428100020148A /* NSRuleEditorTextField.m in Sources */,
171ACF840E96477F00ADD3DF /* NSRuleEditorTextFieldCell.m in Sources */,
+ 5BE5997C0F5712F40057A9F6 /* NSPredicateEditor.m in Sources */,
+ 5BE5997E0F5712F40057A9F6 /* NSPredicateEditorItem.m in Sources */,
+ 5BE599800F5712F40057A9F6 /* NSPredicateEditorRowTemplate.m in Sources
*/,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -567,11 +661,32 @@
17FA5FF80DB385A500FF0C45 /* NSRuleEditorController.m in Sources */,
17FA5FF90DB385A500FF0C45 /* RuleDelegate.m in Sources */,
17FA5FFA0DB385A500FF0C45 /* main.m in Sources */,
- 17AD13750DB91805002F3ED0 /* RuleEditor.m in Sources */,
- 177EBBDE0DCB7EBA0038B059 /* NSRuleEditorViewSliceRow.m in Sources */,
- 174C46EC0E8F05C600D59BBA /* NSRuleEditorViewSliceDropSeparator.m in
Sources */,
- 171ACEC70E956A7000ADD3DF /* NSRuleEditorTextField.m in Sources */,
171ACF660E96457500ADD3DF /* EditableTextField.m in Sources */,
+ 5BD163970F5B0C0D00AEB1EE /* RuleEditor.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 5BE59D060F58A8C70057A9F6 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 5BE59D1D0F58AAA60057A9F6 /* main.m in Sources */,
+ 5BE59D2E0F58AAFF0057A9F6 /* NSPredicateEditor.m in Sources */,
+ 5BE59D2F0F58AB000057A9F6 /* NSPredicateEditorItem.m in Sources */,
+ 5BE59D300F58AB020057A9F6 /* NSPredicateEditorRowTemplate.m in Sources
*/,
+ 5BE59D310F58AB060057A9F6 /* NSRuleEditor.m in Sources */,
+ 5BE59D320F58AB070057A9F6 /* NSRuleEditorViewSlice.m in Sources */,
+ 5BE59D330F58AB070057A9F6 /* NSRuleEditorViewSliceRow.m in Sources */,
+ 5BE59D340F58AB080057A9F6 /* _NSRuleEditorViewSliceHolder.m in Sources
*/,
+ 5BE59D350F58AB090057A9F6 /* _NSRuleEditorCache.m in Sources */,
+ 5BE59D360F58AB0A0057A9F6 /* _NSRuleEditorViewUnboundRowHolder.m in
Sources */,
+ 5BE59D370F58AB0A0057A9F6 /* NSRuleEditorViewSliceDropSeparator.m in
Sources */,
+ 5BE59D380F58AB0C0057A9F6 /* NSRuleEditorButtonCell.m in Sources */,
+ 5BE59D390F58AB0C0057A9F6 /* NSRuleEditorPopupButton.m in Sources */,
+ 5BE59D3A0F58AB0D0057A9F6 /* NSRuleEditorPopupButtonCell.m in Sources
*/,
+ 5BE59D3B0F58AB0E0057A9F6 /* NSRuleEditorTextField.m in Sources */,
+ 5BE59D3C0F58AB100057A9F6 /* NSRuleEditorTextFieldCell.m in Sources */,
+ 5BE59D7F0F58B4EC0057A9F6 /* NSPredicateEditorController.m in Sources
*/,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -629,6 +744,14 @@
name = NSRuleEditorVanilla.xib;
sourceTree = "<group>";
};
+ 5BE59D160F58A9E00057A9F6 /* NSPredicateEditor.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 5BE59D170F58A9E00057A9F6 /* English */,
+ );
+ name = NSPredicateEditor.xib;
+ sourceTree = "<group>";
+ };
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
@@ -636,6 +759,10 @@
isa = XCBuildConfiguration;
buildSettings = {
GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+ GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
INFOPLIST_FILE = "NSRuleEditorTiger-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.4;
PRODUCT_NAME = "NSRuleEditor Tiger";
@@ -646,6 +773,10 @@
170865270DE828D400741410 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+ GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
INFOPLIST_FILE = "NSRuleEditorTiger-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.4;
PRODUCT_NAME = "NSRuleEditor Tiger";
@@ -811,6 +942,54 @@
};
name = Release;
};
+ 5BE59D0C0F58A8CA0057A9F6 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(DEVELOPER_DIR)/SDKs/MacOSX10.5.sdk/System/Library/Frameworks\"",
+ );
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER
= "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INFOPLIST_FILE = "NSPredicateEditor Tiger-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
+ PREBINDING = NO;
+ PRODUCT_NAME = "NSPredicateEditor Tiger";
+ SDKROOT = macosx10.4;
+ };
+ name = Debug;
+ };
+ 5BE59D0D0F58A8CA0057A9F6 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(DEVELOPER_DIR)/SDKs/MacOSX10.5.sdk/System/Library/Frameworks\"",
+ );
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER
= "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INFOPLIST_FILE = "NSPredicateEditor Tiger-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
+ PREBINDING = NO;
+ PRODUCT_NAME = "NSPredicateEditor Tiger";
+ SDKROOT = macosx10.4;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -826,7 +1005,7 @@
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
MACOSX_DEPLOYMENT_TARGET = 10.5;
PREBINDING = NO;
- SDKROOT = macosx10.5;
+ SDKROOT = macosx10.4;
};
name = Debug;
};
@@ -841,7 +1020,7 @@
GCC_PREFIX_HEADER = RuleEditor_Prefix.pch;
MACOSX_DEPLOYMENT_TARGET = 10.4;
PREBINDING = NO;
- SDKROOT = macosx10.5;
+ SDKROOT = macosx10.4;
};
name = Release;
};
@@ -884,6 +1063,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 5BE59D0E0F58A8CA0057A9F6 /* Build configuration list for
PBXNativeTarget "NSPredicateEditor Tiger" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 5BE59D0C0F58A8CA0057A9F6 /* Debug */,
+ 5BE59D0D0F58A8CA0057A9F6 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
C01FCF4E08A954540054247B /* Build configuration list for
PBXProject "NSRuleEditor" */ = {
isa = XCConfigurationList;
buildConfigurations = (
=======================================
--- /trunk/NSRuleEditor.xcodeproj/x.mode2v3 Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor.xcodeproj/x.mode2v3 Tue Jul 21 02:15:15 2009
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>171AD13A0E977E8A00ADD3DF</string>
- <key>PBXProjectModuleLabel</key>
- <string>_NSRuleEditorCache.m</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>171AD13B0E977E8A00ADD3DF</string>
- <key>PBXProjectModuleLabel</key>
- <string>_NSRuleEditorCache.m</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>171AD1410E9781AD00ADD3DF</string>
- <key>history</key>
- <array>
- <string>171AD1370E977E6100ADD3DF</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {1156, 840}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>266 147 1156 881 0 0 1680 1028 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>-1</integer>
@@ -273,13 +232,10 @@
<dict>
<key>ChosenToolbarItems</key>
<array>
- <string>buildOrClean</string>
- <string>build-and-goOrGo</string>
- <string>com.apple.ide.PBXToolbarStopButton</string>
<string>active-combo-popup</string>
- <string>active-target-popup</string>
- <string>active-buildstyle-popup</string>
- <string>active-executable-popup</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>get-info</string>
</array>
@@ -339,22 +295,15 @@
<string>29B97314FDCFA39411CA2CEA</string>
<string>1735CC710D96C9B900B60772</string>
<string>1735CCA40D96D0D500B60772</string>
- <string>1775B3750D9869BE00CE71B7</string>
- <string>17AD13FF0DB933C9002F3ED0</string>
- <string>17B233750B84D80300291DFD</string>
- <string>29B97317FDCFA39411CA2CEA</string>
- <string>19C28FACFE9D520D11CA2CBB</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>14</integer>
- <integer>12</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 0}, {400, 838}}</string>
+ <string>{{0, 0}, {400, 808}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -364,7 +313,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {417, 856}}</string>
+ <string>{{10, 27}, {417, 826}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>TargetStatusColumn</string>
@@ -381,7 +330,7 @@
<real>43</real>
</array>
<key>RubberWindowFrame</key>
- <string>1261 104 417 924 0 0 1680 1028 </string>
+ <string>1245 134 417 894 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -460,7 +409,6 @@
<dict>
<key>PBXBottomSmartGroupGIDs</key>
<array>
- <string>1C08E77C0454961000C914BD</string>
<string>1C37FABC05509CD000000102</string>
<string>1C37FABC05539CD112110102</string>
<string>E2644B35053B69B200211256</string>
@@ -537,12 +485,14 @@
</array>
<key>TableOfContents</key>
<array>
- <string>171ACB050E94DBC600ADD3DF</string>
- <string>171ACB060E94DBC600ADD3DF</string>
+ <string>17FBF82A1015BD57001668C1</string>
+ <string>17FBF82B1015BD57001668C1</string>
<string>1C9437FD063B20B00039CFAC</string>
<string>1C9437FE063B20B00039CFAC</string>
<string>1C9437FF063B20B00039CFAC</string>
</array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.default.shortV3</string>
</dict>
@@ -556,7 +506,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>244810157.99329299</real>
+ <real>269860183.68985403</real>
<key>ToolbarDisplayMode</key>
<integer>2</integer>
<key>ToolbarIsVisible</key>
@@ -571,17 +521,11 @@
<integer>0</integer>
<key>WindowOrderList</key>
<array>
- <string>1C530D57069F1CE1000CFCEE</string>
- <string>171ACB1A0E94DC3800ADD3DF</string>
- <string>171ACB1B0E94DC3800ADD3DF</string>
- <string>1C530D5B069F1CE1000CFCEE</string>
- <string>1C530D54069F1CE1000CFCEE</string>
<string>1C530D52069F1CE1000CFCEE</string>
- <string>171AD13A0E977E8A00ADD3DF</string>
-
<string>/Volumes/Alpha/DEVELOPPEMENT/Projets_Perso/googlecode/ruleeditor/trunk/NSRuleEditor.xcodeproj</string>
+
<string>/Volumes/GAMMA/DEVELOPPEMENT/Projets_Perso/googlecode/ruleeditor/trunk/NSRuleEditor.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>1261 104 417 924 0 0 1680 1028 </string>
+ <string>1245 134 417 894 0 0 1680 1028 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -739,7 +683,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>NSRuleEditor.m</string>
+ <string></string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -748,7 +692,7 @@
<key>Frame</key>
<string>{{0, 0}, {1535, 525}}</string>
<key>RubberWindowFrame</key>
- <string>466 -22 1535 851 0 0 1680 1028 </string>
+ <string>145 145 1535 851 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -756,16 +700,12 @@
<string>525pt</string>
</dict>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
- <key>PBXBuildLogShowsTranscriptDefaultKey</key>
- <string>{{0, 5}, {1535, 275}}</string>
<key>PBXProjectModuleGUID</key>
<string>XCMainBuildResultsModuleGUID</string>
<key>PBXProjectModuleLabel</key>
- <string>Build</string>
+ <string>Build Results</string>
<key>XCBuildResultsTrigger_Collapse</key>
<integer>1021</integer>
<key>XCBuildResultsTrigger_Open</key>
@@ -776,7 +716,7 @@
<key>Frame</key>
<string>{{0, 530}, {1535, 280}}</string>
<key>RubberWindowFrame</key>
- <string>466 -22 1535 851 0 0 1680 1028 </string>
+ <string>145 145 1535 851 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -799,14 +739,14 @@
<key>TableOfContents</key>
<array>
<string>1C530D52069F1CE1000CFCEE</string>
- <string>171ACB0D0E94DBC600ADD3DF</string>
+ <string>17FBF82C1015BD57001668C1</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.buildV3</string>
<key>WindowString</key>
- <string>466 -22 1535 851 0 0 1680 1028 </string>
+ <string>145 145 1535 851 0 0 1680 1028 </string>
<key>WindowToolGUID</key>
<string>1C530D52069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key>
@@ -919,13 +859,13 @@
<key>TableOfContents</key>
<array>
<string>1C530D54069F1CE1000CFCEE</string>
- <string>171ACB0E0E94DBC600ADD3DF</string>
+ <string>176A57AC0E99210600D96E43</string>
<string>1C162984064C10D400B95A72</string>
- <string>171ACB0F0E94DBC600ADD3DF</string>
- <string>171ACB100E94DBC600ADD3DF</string>
- <string>171ACB110E94DBC600ADD3DF</string>
- <string>171ACB120E94DBC600ADD3DF</string>
- <string>171ACB130E94DBC600ADD3DF</string>
+ <string>176A57AD0E99210600D96E43</string>
+ <string>176A57AE0E99210600D96E43</string>
+ <string>176A57AF0E99210600D96E43</string>
+ <string>176A57B00E99210600D96E43</string>
+ <string>176A57B10E99210600D96E43</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -957,7 +897,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
- <string>NSRuleEditor.m</string>
+ <string>&lt;No Editor&gt;</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -978,8 +918,6 @@
<string>371pt</string>
</dict>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -1015,8 +953,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
- <string>171ACB330E94E48200ADD3DF</string>
- <string>171ACB340E94E48200ADD3DF</string>
+ <string>1760CCD30E9808A2009426B0</string>
+ <string>1760CCD40E9808A2009426B0</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
@@ -1081,7 +1019,7 @@
<key>TableOfContents</key>
<array>
<string>1C530D5B069F1CE1000CFCEE</string>
- <string>171ACB140E94DBC600ADD3DF</string>
+ <string>1760CCCD0E9806DF009426B0</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
=======================================
--- /trunk/NSRuleEditor.xcodeproj/x.pbxuser Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditor.xcodeproj/x.pbxuser Tue Jul 21 02:15:15 2009
@@ -17,6 +17,9 @@
configStateDict = {
};
customDataFormattersEnabled = 1;
+ dataTipCustomDataFormattersEnabled = 1;
+ dataTipShowTypeColumn = 1;
+ dataTipSortType = 0;
debuggerPlugin = GDBDebugging;
disassemblyDisplayState = 0;
dylibVariantSuffix = "";
@@ -29,6 +32,7 @@
name = "RuleEditor Tiger";
savedGlobals = {
};
+ showTypeColumn = 0;
sourceDirectories = (
);
variableFormatDictionary = {
@@ -69,4789 +73,28 @@
};
171A9FA40D9BC48700EB53FA /* _NSRuleEditorCache.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1097, 992}}";
- sepNavSelRange = "{102, 0}";
- sepNavVisRange = "{0, 853}";
+ sepNavIntBoundsRect = "{{0, 0}, {1097, 1072}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{340, 660}";
sepNavWindowFrame = "{{266, 91}, {1156, 937}}";
};
};
- 171ACB010E94DAED00ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- };
- 171ACB020E94DB6500ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- };
- 171ACB090E94DBC600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 35";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2336;
- vrLoc = 104;
- };
- 171ACB0C0E94DBC600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 112";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 448;
- vrLoc = 1837;
- };
- 171ACB180E94DC3800ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 35";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2336;
- vrLoc = 104;
- };
- 171ACB190E94DC3800ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 112";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 448;
- vrLoc = 1837;
- };
- 171ACB1D0E94DCB300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 112";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 446;
- vrLoc = 1839;
- };
- 171ACB200E94DD0D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 113";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 446;
- vrLoc = 1839;
- };
- 171ACB230E94E1A600ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- };
- 171ACB270E94E1F900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2305;
- vrLoc = 129;
- };
- 171ACB280E94E1F900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 113";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 446;
- vrLoc = 1839;
- };
- 171ACB2B0E94E22F00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 36";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2330;
- vrLoc = 129;
- };
- 171ACB2C0E94E22F00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 113";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 446;
- vrLoc = 1839;
- };
- 171ACB2E0E94E43400ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- };
- 171ACB310E94E48200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- rLen = 0;
- rLoc = 2215;
- rType = 0;
- };
- 171ACB320E94E48200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 108";
- rLen = 0;
- rLoc = 2215;
- rType = 0;
- vrLen = 0;
- vrLoc = 2285;
- };
- 171ACB380E94E48900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2302;
- vrLoc = 163;
- };
- 171ACB390E94E49600ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- };
- 171ACB3D0E94E4B100ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 111";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 448;
- vrLoc = 1837;
- };
- 171ACB3E0E94E4B100ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2302;
- vrLoc = 163;
- };
- 171ACB420E94E51300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2374;
- vrLoc = 163;
- };
- 171ACB430E94E51300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 36";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2320;
- vrLoc = 163;
- };
- 171ACB440E94E51300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC9E0D96CF4300B60772 /* NSRuleEditorController.m */;
- name = "NSRuleEditorController.m: 111";
- rLen = 0;
- rLoc = 2321;
- rType = 0;
- vrLen = 448;
- vrLoc = 1837;
- };
- 171ACB450E94EBF500ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- };
- 171ACB460E94EBF500ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 806";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 782;
- vrLoc = 27411;
- };
- 171ACB470E94EC1C00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 806";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 782;
- vrLoc = 27411;
- };
- 171ACB4A0E94EE1D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 806";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 778;
- vrLoc = 27407;
- };
- 171ACB4B0E94EE2000ADD3DF /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- };
- 171ACB4F0E94EE4600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 1315";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1476;
- vrLoc = 44214;
- };
- 171ACB510E94EE6A00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 806";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 778;
- vrLoc = 27407;
- };
- 171ACB550E94EE7C00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 1315";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1476;
- vrLoc = 44214;
- };
- 171ACB580E94EECF00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 142";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1542;
- vrLoc = 5204;
- };
- 171ACB5B0E94F01D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC780D96C9B900B60772 /* NSRuleEditor.h */;
- name = "NSRuleEditor.h: 82";
- rLen = 0;
- rLoc = 2228;
- rType = 0;
- vrLen = 1292;
- vrLoc = 1351;
- };
- 171ACB5C0E94F01D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 137";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2239;
- vrLoc = 3793;
- };
- 171ACB5D0E94F01D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 137";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2239;
- vrLoc = 3793;
- };
- 171ACB5E0E94F01D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC780D96C9B900B60772 /* NSRuleEditor.h */;
- name = "NSRuleEditor.h: 82";
- rLen = 0;
- rLoc = 2228;
- rType = 0;
- vrLen = 1292;
- vrLoc = 1351;
- };
- 171ACB5F0E94F01D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2099;
- vrLoc = 104;
- };
- 171ACB610E94F03000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 811";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 778;
- vrLoc = 27630;
- };
- 171ACB630E94F06400ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2295;
- vrLoc = 367;
- };
- 171ACB650E94F07900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 812";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 778;
- vrLoc = 27659;
- };
- 171ACB690E94F12200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2326;
- vrLoc = 232;
- };
- 171ACB6C0E94F15500ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2342;
- vrLoc = 232;
- };
- 171ACB6F0E94F17600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2316;
- vrLoc = 232;
- };
- 171ACB720E94F1F600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 43";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2262;
- vrLoc = 232;
- };
- 171ACB740E94F20C00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2275;
- vrLoc = 232;
- };
- 171ACB760E94F22900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 815";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 717;
- vrLoc = 27732;
- };
- 171ACB770E94F23B00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2278;
- vrLoc = 232;
- };
- 171ACB790E94F36E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 38";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2169;
- vrLoc = 232;
- };
- 171ACB7C0E94F3A300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 46";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2145;
- vrLoc = 232;
- };
- 171ACB7E0E94F3BA00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 44";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2144;
- vrLoc = 232;
- };
- 171ACB810E94F50000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 36";
- rLen = 0;
- rLoc = 1582;
- rType = 0;
- vrLen = 2029;
- vrLoc = 0;
- };
- 171ACB840E94F55600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 51";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2114;
- vrLoc = 462;
- };
- 171ACB870E94F5F700ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2098;
- vrLoc = 462;
- };
- 171ACB8C0E94F62400ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 49";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2099;
- vrLoc = 462;
- };
- 171ACB8E0E94F6A400ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 820";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 818;
- vrLoc = 28151;
- };
- 171ACB900E94F6CB00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 43";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2079;
- vrLoc = 462;
- };
- 171ACB930E94F6E300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 40";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2080;
- vrLoc = 462;
- };
- 171ACB950E94F70800ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 821";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 798;
- vrLoc = 28144;
- };
- 171ACB960E94F70900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 821";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 798;
- vrLoc = 28144;
- };
- 171ACB970E94F72000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 821";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 798;
- vrLoc = 28144;
- };
- 171ACB980E94F72100ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 40";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2155;
- vrLoc = 462;
- };
- 171ACB9A0E94FA2600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 44";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2014;
- vrLoc = 462;
- };
- 171ACB9D0E94FA6400ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 47";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2021;
- vrLoc = 462;
- };
- 171ACBA00E94FA7A00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 44";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2023;
- vrLoc = 462;
- };
- 171ACBA30E94FAC800ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 43";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2039;
- vrLoc = 462;
- };
- 171ACBA60E94FADD00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 43";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2044;
- vrLoc = 462;
- };
- 171ACBAC0E94FB4A00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 52";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1972;
- vrLoc = 462;
- };
- 171ACBAF0E94FB7000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 54";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1973;
- vrLoc = 462;
- };
- 171ACBB30E94FCC000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 35";
- rLen = 0;
- rLoc = 1536;
- rType = 0;
- vrLen = 1961;
- vrLoc = 129;
- };
- 171ACBB50E94FCDC00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- comments = "error: 'observer' undeclared (first use in this function)";
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- rLen = 0;
- rLoc = 38;
- rType = 1;
- };
- 171ACBB60E94FCDC00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 520";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1160;
- vrLoc = 16411;
- };
- 171ACBB70E94FCDC00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 826";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 912;
- vrLoc = 28623;
- };
- 171ACBB80E94FCDD00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 520";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1160;
- vrLoc = 16411;
- };
- 171ACBB90E94FCDD00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 826";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 912;
- vrLoc = 28623;
- };
- 171ACBBC0E94FD0700ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 40";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2029;
- vrLoc = 129;
- };
- 171ACBBE0E94FD4700ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 516";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1356;
- vrLoc = 16427;
- };
- 171ACBBF0E94FD4700ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 822";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1110;
- vrLoc = 28593;
- };
- 171ACBC10E94FD5700ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 40";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2045;
- vrLoc = 129;
- };
- 171ACBC30E94FD7E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 516";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1200;
- vrLoc = 16440;
- };
- 171ACBC40E94FD7E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 822";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1040;
- vrLoc = 28608;
- };
- 171ACBC50E94FD8000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 516";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1200;
- vrLoc = 16440;
- };
- 171ACBC60E94FD8000ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 822";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1040;
- vrLoc = 28608;
- };
- 171ACBC70E94FD8200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 516";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1200;
- vrLoc = 16440;
- };
- 171ACBC80E94FD8200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 822";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1040;
- vrLoc = 28608;
- };
- 171ACBCA0E94FDAC00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 48";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2025;
- vrLoc = 129;
- };
- 171ACBCD0E94FDEA00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2055;
- vrLoc = 129;
- };
- 171ACBD00E94FE1C00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2051;
- vrLoc = 129;
- };
- 171ACBD20E94FE3E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 517";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1291;
- vrLoc = 16555;
- };
- 171ACBD30E94FE3E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 823";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1085;
- vrLoc = 28681;
- };
- 171ACBD50E94FE5600ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2078;
- vrLoc = 129;
- };
- 171ACBD80E94FEC200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2122;
- vrLoc = 129;
- };
- 171ACBDA0E94FEED00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 517";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1397;
- vrLoc = 16679;
- };
- 171ACBDB0E94FEED00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 823";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 1113;
- vrLoc = 28899;
- };
- 171ACBDC0E94FEEF00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2174;
- vrLoc = 129;
- };
- 171ACBDE0E95007900ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 50";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2217;
- vrLoc = 129;
- };
- 171ACBE10E95010300ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2245;
- vrLoc = 129;
- };
- 171ACBE40E95021C00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 35";
- rLen = 0;
- rLoc = 1540;
- rType = 0;
- vrLen = 2246;
- vrLoc = 129;
- };
- 171ACBE70E95026500ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 41";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2260;
- vrLoc = 129;
- };
- 171ACBEA0E9502A200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 42";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2203;
- vrLoc = 129;
- };
- 171ACBEC0E95032D00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 38";
- rLen = 0;
- rLoc = 1782;
- rType = 0;
- vrLen = 2196;
- vrLoc = 129;
- };
- 171ACBEF0E95034E00ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1735CC790D96C9B900B60772 /* NSRuleEditor.m */;
- name = "NSRuleEditor.m: 37";
- rLen = 0;
- rLoc = 1764;
- rType = 0;
- vrLen = 2197;
- vrLoc = 129;
- };
- 171ACBF00E95037200ADD3DF /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/NSRuleEditorController.m Sat Oct 4 03:59:17 2008
+++ /trunk/NSRuleEditorController.m Tue Jul 21 02:15:15 2009
@@ -8,17 +8,18 @@
#import "NSRuleEditorController.h"


-@class RuleEditor,RuleDelegate;
+@class RuleEditor, RuleDelegate;

@implementation NSDate (Description)

--(NSString*)descriptionWithLocale:(id)locale
+- (NSString*)descriptionWithLocale:(NSDictionary*)locale
{
return [self descriptionWithCalendarFormat:@"%d %m" timeZone:[NSTimeZone
localTimeZone] locale:nil];
}

@end

+
@implementation NSRuleEditorController

- (id) init
@@ -33,6 +34,7 @@
if(rows_data){
NSArray *rows_array = [NSKeyedUnarchiver
unarchiveObjectWithData:rows_data];
[rows addObjectsFromArray:rows_array];
+ NSLog(@"ROWS: %@",rows);
}
}
return self;
@@ -54,12 +56,10 @@
[super dealloc];
}

-- (void)awakeFromNib
-{
-
- /* CONFIGURE RULE EDITOR*/
-
- [ruleEditor setNestingMode:NSRuleEditorNestingModeSimple];
+- (void)applicationDidFinishLaunching:(NSNotification*)notification
+{
+ /* CONFIGURE RULE EDITOR*/
+ [ruleEditor setNestingMode:NSRuleEditorNestingModeCompound];
[ruleEditor setRowHeight:25];
[ruleEditor setFormattingStringsFilename:@"format"];
[ruleEditor setCanRemoveAllRows:YES];
@@ -67,9 +67,9 @@
RuleDelegate *delegate = [[RuleDelegate alloc] init];
[ruleEditor setDelegate:delegate];

- NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber
numberWithInt:1] forKey:NSValidatesImmediatelyBindingOption];
+ NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber
numberWithBool:YES] forKey:NSValidatesImmediatelyBindingOption];
[ruleEditor bind:@"rows" toObject:self withKeyPath:@"rows"
options:options];
-
+
}

- (IBAction)reloadPredicate:(id)sender
@@ -84,7 +84,9 @@

- (IBAction)logCache:(id)sender
{
-
+ NSLog(@"_rootRowsArray %@",[ruleEditor _rootRowsArray]);
+ NSLog(@"_rootRowsArray %@",[ruleEditor
valueForKeyPath:@"_boundArrayOwner.rows"]);
+
NSArray *slices = [ruleEditor valueForKey:@"_slices"];
NSArray *caches = [ruleEditor valueForKey:@"_rowCache"];

=======================================
--- /trunk/RuleDelegate.m Sat Oct 4 03:59:17 2008
+++ /trunk/RuleDelegate.m Tue Jul 21 02:15:15 2009
@@ -5,8 +5,6 @@
#import "RuleDelegate.h"


-@class RuleEditorTextField, NSRuleEditorTextField;
-
static NSString *NSRuleEditorPredicateKeys[7] = {
@"NSRuleEditorPredicateLeftExpression",
@"NSRuleEditorPredicateRightExpression",
@@ -54,7 +52,7 @@
{
NSLog(@"%s",SELNAME(_cmd));
NSArray *childs;
-
+
if(criterion)
childs = [criterion objectForKey:@"criteria"];
else
@@ -75,21 +73,11 @@

if(custom_control_class != nil)
{
- NSString *viewkey = [NSString stringWithFormat:@"view_%d", row];
-
- NSView *view = [criterion objectForKey:viewkey];
- if(view == nil)
- {
Class custom_class = NSClassFromString(custom_control_class);
- view = [[[custom_class alloc] initWithFrame:NSZeroRect] autorelease];
- NSLog(@"%s %@",SELNAME(_cmd),NSStringFromRect([view frame]));
- [criterion setObject:view forKey:viewkey];
- }
- return view;
+ return [[[custom_class alloc] initWithFrame:NSZeroRect] autorelease];
}

- return [criterion objectForKey:@"valeur"];
-
+ return [criterion objectForKey:@"valeur"];
}

- (NSDictionary*)ruleEditor:(RuleEditor *)editor
predicatePartsForCriterion:(id)criterion withDisplayValue:(id)value
inRow:(int)row
=======================================
--- /trunk/Vanilla/NSRuleEditorViewSliceRow.m Sat Oct 4 03:59:17 2008
+++ /trunk/Vanilla/NSRuleEditorViewSliceRow.m Tue Jul 21 02:15:15 2009
@@ -6,9 +6,10 @@

#import "NSRuleEditorViewSliceRow.h"
#import "NSRuleEditorViewSlice.h"
+#import "NSRuleEditorPopUpButton.h"

#define CONTROL_HEIGHT 18.
-@class NSRuleEditorPopupButton;
+
@interface RuleEditorViewSliceRow : NSRuleEditorViewSliceRow
{

@@ -34,14 +35,12 @@
- (BOOL)_isRulePopup:(id)view
{
NSLog(@"%s%@\n",SELNAME(_cmd),view);
- return NO;
- return [view isKindOfClass:[NSRuleEditorPopupButton class]];
+ return [view isKindOfClass:[NSRuleEditorPopUpButton class]];
}

- (BOOL)_isRuleStaticTextField:(id)view
{
NSLog(@"%s%@\n",SELNAME(_cmd),view);
- return NO;
[super _isRuleStaticTextField:(id)view];
}

=======================================
--- /trunk/Vanilla/RuleEditor.m Sat Oct 4 03:59:17 2008
+++ /trunk/Vanilla/RuleEditor.m Tue Jul 21 02:15:15 2009
@@ -1,147 +1,786 @@
-/*
- * Created by caca...@gmail.com.
- * Copyright (c) 2008 Pear, Inc. All rights reserved.
- */
-
-#import "RuleEditor.h"
-
-@class RuleEditorViewSlice;
+@class NSRuleEditorViewSliceRow;
+
+@interface RuleEditor : NSRuleEditor
+{
+
+}
+@end
+
@implementation RuleEditor
-
--(void)_sendRuleAction
-{
- NSLog(@"%s",SELNAME(_cmd));
-}
-
-- (id) initWithFrame:(NSRect)frame
-{
- self = [super initWithFrame:(NSRect)frame];
- if (self != nil) {
- NSLog(@"%s",SELNAME(_cmd));
- }
- return self;
-}
-
-- (void)_mouseDownOnSlice:(id)slice withEvent:(NSEvent*)event
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _mouseDownOnSlice:(id)slice withEvent:(NSEvent*)event];
-}
-
-- (BOOL)_performDragForSlice:(id)slice withEvent:(id)event
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _performDragForSlice:(id)slice withEvent:(id)event];
-}
-
-- (BOOL)_dragShouldBeginFromMouseDown:(NSView*)view
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _dragShouldBeginFromMouseDown:(NSView*)view];
-}
-
-- (id)_dragImageForIndices:(id)indices
-{
- id image = [super _dragImageForIndices:(id)indices];
- NSLog(@"%s %@",SELNAME(_cmd),image);
- return image;
-}
-
-- (int)draggingSourceOperationMaskForLocal:(BOOL)fp8
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super draggingSourceOperationMaskForLocal:(BOOL)fp8];
-}
-
-
-- (NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super draggingEntered:(id < NSDraggingInfo >)sender];
+/*
++ (void)initialize
+{
+
+}
+- (BOOL)_allowsEmptyCompoundRows
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _allowsEmptyCompoundRows];
+}
+- (BOOL)_queryCanSelectItem:(id)item displayValue:(id)value
inRow:(int)rowIndex
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _queryCanSelectItem:(id)item displayValue:(id)value
inRow:(int)rowIndex];
+}
+- (BOOL)_shouldHideAddButtonForSlice:(id)slice
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _shouldHideAddButtonForSlice:(id)slice];
+}
+- (BOOL)_shouldHideSubtractButtonForSlice:(id)slice
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _shouldHideSubtractButtonForSlice:(id)slice];
+}
+- (BOOL)_validateItem:(id)item value:(id)displayValue inRow:(int)rowIndex
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _validateItem:(id)item value:(id)displayValue
inRow:(int)rowIndex];
+}
+- (BOOL)_wantsRowAnimations
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _wantsRowAnimations];
+}
+- (BOOL)canRemoveAllRows
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super canRemoveAllRows];
+}
+- (BOOL)isEditable
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super isEditable];
}

-- (int)_updateDragging:(id)fp
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _updateDragging:(id)fp];
+- (Class)rowClass
+{
+ NSLog(@"%@ : (Class)%s",[self className],_cmd);
+ return [super rowClass];
+}
+- (NSArray*)_selectedSlices
+{
+ NSLog(@"%@ : (NSArray*)%s",[self className],_cmd);
+ return [super _selectedSlices];
+}
+- (NSColor*)_selectedActiveRowColor
+{
+ NSLog(@"%@ : (NSColor*)%s",[self className],_cmd);
+ return [super _selectedActiveRowColor];
+}
+- (NSColor*)_selectedInactiveRowColor
+{
+ NSLog(@"%@ : (NSColor*)%s",[self className],_cmd);
+ return [super _selectedInactiveRowColor];
+}
+- (NSColor*)_sliceBottomBorderColor
+{
+ NSLog(@"%@ : (NSColor*)%s",[self className],_cmd);
+ return [super _sliceBottomBorderColor];
+}
+- (NSColor*)_sliceLastBottomBorderColor
+{
+ NSLog(@"%@ : (NSColor*)%s",[self className],_cmd);
+ return [super _sliceLastBottomBorderColor];
+}
+- (NSIndexSet*)_childlessParentsIfSlicesWereDeletedAtIndexes:(id)indexes
+{
+ NSLog(@"%@ : (NSIndexSet*)%s",[self className],_cmd);
+ return [super _childlessParentsIfSlicesWereDeletedAtIndexes:(id)indexes];
+}
+- (NSIndexSet*)selectedRowIndexes
+{
+ NSLog(@"%@ : (NSIndexSet*)%s",[self className],_cmd);
+ return [super selectedRowIndexes];
+}
+- (NSIndexSet*)subrowIndexesForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (NSIndexSet*)%s",[self className],_cmd);
+ return [super subrowIndexesForRow:(int)rowIndex];
+}
+ */
+- (NSMutableArray*)_getItemsAndValuesToAddForRow:(int)rowIndex
ofType:(NSRuleEditorRowType)type
+{
+ NSLog(@"%@ : (NSMutableArray*)%s",[self className],_cmd);
+ return [super _getItemsAndValuesToAddForRow:(int)rowIndex
ofType:(NSRuleEditorRowType)type];
+}
+ /*
+- (NSMutableArray*)_subrowObjectsOfObject:(id)rowObject
+{
+ NSLog(@"%@ : (NSMutableArray*)%s",[self className],_cmd);
+ return [super _subrowObjectsOfObject:(id)rowObject];
+}
+- (NSMutableArray*)displayValuesForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (NSMutableArray*)%s",[self className],_cmd);
+ return [super displayValuesForRow:(int)rowIndex];
+}
+- (NSIndexSet*)_includeSubslicesForSlicesAtIndexes:(NSIndexSet*)indexes
+{
+ NSLog(@"%@ : (NSIndexSet*)%s",[self className],_cmd);
+ return [super _includeSubslicesForSlicesAtIndexes:(NSIndexSet*)indexes];
+}
+- (NSPredicate *)predicate
+{
+ NSLog(@"%@ : (NSPredicate *)%s",[self className],_cmd);
+ return [super predicate];
+}
+- (NSPredicate*)predicateForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (NSPredicate*)%s",[self className],_cmd);
+ return [super predicateForRow:(int)rowIndex];
+}
+- (NSRuleEditorNestingMode)nestingMode
+{
+ NSLog(@"%@ : (NSRuleEditorNestingMode)%s",[self className],_cmd);
+ return [super nestingMode];
+}
+- (NSRuleEditorRowType)_applicableNestingMode
+{
+ NSLog(@"%@ : (NSRuleEditorRowType)%s",[self className],_cmd);
+ return [super _applicableNestingMode];
+}
+- (NSRuleEditorRowType)rowTypeForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (NSRuleEditorRowType)%s",[self className],_cmd);
+ return [super rowTypeForRow:(int)rowIndex];
+}
+- (NSString *)criteriaKeyPath
+{
+ NSLog(@"%@ : (NSString *)%s",[self className],_cmd);
+ return [super criteriaKeyPath];
+}
+- (NSString *)rowTypeKeyPath
+{
+ NSLog(@"%@ : (NSString *)%s",[self className],_cmd);
+ return [super rowTypeKeyPath];
+}
+- (NSString *)subrowsKeyPath
+{
+ NSLog(@"%@ : (NSString *)%s",[self className],_cmd);
+ return [super subrowsKeyPath];
+}
+- (NSString*)_toolTipForAddCompoundRowButton
+{
+ NSLog(@"%@ : (NSString*)%s",[self className],_cmd);
+ return [super _toolTipForAddCompoundRowButton];
+}
+- (NSString*)_toolTipForAddSimpleRowButton
+{
+ NSLog(@"%@ : (NSString*)%s",[self className],_cmd);
+ return [super _toolTipForAddSimpleRowButton];
+}
+- (NSString*)_toolTipForDeleteRowButton
+{
+ NSLog(@"%@ : (NSString*)%s",[self className],_cmd);
+ return [super _toolTipForDeleteRowButton];
+}
+- (NSRuleEditorViewSliceRow*)_createNewSliceWithFrame:(NSRect)frame
ruleEditorView:(RuleEditor*)editor
+{
+ NSLog(@"%@ : (RuleEditorViewSliceRow*)%s",[self className],_cmd);
+ return [super _createNewSliceWithFrame:(NSRect)frame
ruleEditorView:(RuleEditor*)editor];
+}
+- (NSRuleEditorViewSliceRow*)_newSlice
+{
+ NSLog(@"%@ : (RuleEditorViewSliceRow*)%s",[self className],_cmd);
+ return [super _newSlice];
+}
+*/
+- (id)_insertNewRowAtIndex:(int)rowIndex
ofType:(NSRuleEditorRowType)rowType withParentRow:(int)parentRow
+{
+ id return_value = [super _insertNewRowAtIndex:(int)rowIndex
ofType:(NSRuleEditorRowType)rowType withParentRow:(int)parentRow];
+ NSLog(@"%@ : (id)%s =\n%@",[self className],_cmd,[return_value
description]);
+ return return_value;
+}
+/*
+- (id)_queryChild:(int)child ofItem:(id)item
withRowType:(NSRuleEditorRowType)rowType
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _queryChild:(int)child ofItem:(id)item
withRowType:(NSRuleEditorRowType)rowType];
+}
+- (id)_queryValueForItem:(id)item inRow:(int)rowIndex
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _queryValueForItem:(id)item inRow:(int)rowIndex];
+}
+- (id)_rowCacheForIndex:(int)index
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _rowCacheForIndex:(int)index];
+}
+- (id)_searchCacheForRowObject:(id)rowObject
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _searchCacheForRowObject:(id)rowObject];
+}
+- (id)criteriaForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super criteriaForRow:(int)rowIndex];
+}
+- (id)delegate
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super delegate];
+}
+- (id)initWithCoder:(NSCoder*)coder
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super initWithCoder:(NSCoder*)coder];
+}
+- (id)initWithFrame:(NSRect)frame
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super initWithFrame:(NSRect)frame];
}

-- (int)_dragOperationFromInfo:(id)fp8
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _dragOperationFromInfo:(id)fp8];
+- (int)_countOfRowsStartingAtObject:(id)rowObject
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _countOfRowsStartingAtObject:(id)rowObject];
+}
+- (int)_lastRow
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _lastRow];
+}
+- (int)_lastSelectedSliceIndex
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _lastSelectedSliceIndex];
+}
+- (int)_queryNumberOfChildrenOfItem:(id)item
withRowType:(NSRuleEditorRowType)rowType
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _queryNumberOfChildrenOfItem:(id)item
withRowType:(NSRuleEditorRowType)rowType];
+}
+- (int)_rowIndexForRowObject:(id)rowObject
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _rowIndexForRowObject:(id)rowObject];
+}
+- (int)numberOfRows
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super numberOfRows];
+}
+- (int)parentRowForRow:(int)rowIndex
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super parentRowForRow:(int)rowIndex];
}

-- (BOOL)wantsPeriodicDraggingUpdates
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super wantsPeriodicDraggingUpdates];
+- (float)rowHeight
+{
+ NSLog(@"%@ : (float)%s",[self className],_cmd);
+ return [super rowHeight];
}

-- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super draggingUpdated:(id <NSDraggingInfo>)sender];
+- (void)_addOptionFromSlice:(id)slice ofRowType:(unsigned int)rowType
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _addOptionFromSlice:(id)slice ofRowType:(unsigned int)rowType];
+}
+- (void)_changedItem:(id)oldItem toItem:(id)newItem inRow:(int)rowIndex
atCriteriaIndex:(int)indexInCriteria
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _changedItem:(id)oldItem toItem:(id)newItem inRow:(int)rowIndex
atCriteriaIndex:(int)indexInCriteria];
+}
+ */
+- (void)_changedRowArray:(NSArray*)newRows
withOldRowArray:(NSArray*)oldRows forParent:(id)parentRowObject
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _changedRowArray:(NSArray*)newRows
withOldRowArray:(NSArray*)oldRows forParent:(id)parentRowObject];
+}
+/*
+- (void)_deleteSlice:(id)slice
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _deleteSlice:(id)slice];
+}
+- (void)_deselectAll
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _deselectAll];
+}
+- (void)_drawSliceBackgroundsWithClipRect:(NSRect)clipRect
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _drawSliceBackgroundsWithClipRect:(NSRect)clipRect];
+}
+- (void)_initRuleEditorShared
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _initRuleEditorShared];
+}
+- (void)_mouseDownOnSlice:(id)slice withEvent:(NSEvent*)event
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _mouseDownOnSlice:(id)slice withEvent:(NSEvent*)event];
+}
+- (void)_postRowCountChangedNotificationOfType:(NSString*)notificationName
indexes:(NSIndexSet*)indexes
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _postRowCountChangedNotificationOfType:(NSString*)notificationName
indexes:(NSIndexSet*)indexes];
+}
+- (void)_reconfigureSubviewsAnimate:(BOOL)animate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _reconfigureSubviewsAnimate:(BOOL)animate];
+}
+- (void)_setAllowsEmptyCompoundRows:(BOOL)allow
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setAllowsEmptyCompoundRows:(BOOL)allow];
+}
+- (void)_setBoundDataSource:(id)datasource withKeyPath:(NSString *)keyPath
options:(NSDictionary*)options
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setBoundDataSource:(id)datasource withKeyPath:(NSString *)keyPath
options:(NSDictionary*)options];
+}
+- (void)_startObservingRowObjectsRecursively:(id)rowObjects
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _startObservingRowObjectsRecursively:(id)rowObjects];
+}
+- (void)_stopObservingRowObjectsRecursively:(id)rowObjects
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _stopObservingRowObjectsRecursively:(id)rowObjects];
+}
+- (void)_updatePredicate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _updatePredicate];
+}
+- (void)_updateSliceIndentationAtIndex:(int)index
toIndentation:(int)indentation withIndexSet:(id)indexSet
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _updateSliceIndentationAtIndex:(int)index
toIndentation:(int)indentation withIndexSet:(id)indexSet];
+}
+- (void)_updateSliceIndentations
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _updateSliceIndentations];
+}
+- (void)_updateSliceRows
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _updateSliceRows];
+}
+- (void)addRow:(id)sender
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super addRow:(id)sender];
+}
+- (void)bind:(NSString *)binding toObject:(id)observableController
withKeyPath:(NSString *)keyPath options:(NSDictionary *)options
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super bind:(NSString *)binding toObject:(id)observableController
withKeyPath:(NSString *)keyPath options:(NSDictionary *)options];
+}
+- (void)dealloc
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super dealloc];
+}
+- (void)drawRect:(NSRect)rect
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super drawRect:(NSRect)rect];
+}
+- (void)encodeWithCoder:(id)coder
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super encodeWithCoder:(id)coder];
+}
+ */
+- (void)insertRowAtIndex:(int)index withType:(NSRuleEditorRowType)type
asSubrowOfRow:(int)parentRow animate:(BOOL)animate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super insertRowAtIndex:(int)index withType:(NSRuleEditorRowType)type
asSubrowOfRow:(int)parentRow animate:(BOOL)animate];
+}
+/*
+- (void)reloadPredicate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super reloadPredicate];
+}
+- (void)removeRowAtIndex:(int)rowIndex
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super removeRowAtIndex:(int)rowIndex];
+}
+- (void)removeRowsAtIndexes:(NSIndexSet*)indexes
includeSubrows:(BOOL)include
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super removeRowsAtIndexes:(NSIndexSet*)indexes
includeSubrows:(BOOL)include];
+}
+- (void)selectAll:(id)sender
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super selectAll:(id)sender];
+}
+- (void)setBoundArrayKeyPath:(NSString *)value
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setBoundArrayKeyPath:(NSString *)value];
+}
+- (void)setCanRemoveAllRows:(BOOL)flag
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setCanRemoveAllRows:(BOOL)flag];
+}
+- (void)setCriteria:(NSArray*)criteria andDisplayValues:(NSArray*)values
forRowAtIndex:(int)index
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setCriteria:(NSArray*)criteria andDisplayValues:(NSArray*)values
forRowAtIndex:(int)index];
+}
+- (void)setCriteriaKeyPath:(NSString*)value
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setCriteriaKeyPath:(NSString*)value];
+}
+- (void)setDelegate:(id)delegate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setDelegate:(id)delegate];
+}
+- (void)setDisplayValuesKeyPath:(NSString*)valuesKeyPath
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setDisplayValuesKeyPath:(NSString*)valuesKeyPath];
+}
+- (void)setEditable:(BOOL)editable
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setEditable:(BOOL)editable];
+}
+- (void)setFrameSize:(NSSize)size
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setFrameSize:(NSSize)size];
+}
+- (void)setNestingMode:(NSRuleEditorNestingMode)mode
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setNestingMode:(NSRuleEditorNestingMode)mode];
+}
+- (void)setRowClass:(Class)aClass
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setRowClass:(Class)aClass];
+}
+- (void)setRowHeight:(float)height
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setRowHeight:(float)height];
+}
+- (void)setRowTypeKeyPath:(NSString *)value
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setRowTypeKeyPath:(NSString *)value];
+}
+- (void)setSubrowsKeyPath:(NSString *)value
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setSubrowsKeyPath:(NSString *)value];
+}
+- (void)sizeToFit
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super sizeToFit];
+}
+- (void)unbind:(id)object
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super unbind:(id)object];
+}
+- (NSString*)formattingStringsFilename
+{
+ NSLog(@"%@ : (NSString*)%s",[self className],_cmd);
+ return [super formattingStringsFilename];
+}
+- (void)setFormattingStringsFilename:(NSString*)filename
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setFormattingStringsFilename:(NSString*)filename];
}

+- (void)_clearDropLine
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _clearDropLine];
+}
- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender
{
- NSLog(@"%s",SELNAME(_cmd));
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
return [super performDragOperation:(id < NSDraggingInfo >)sender];
}
-
-- (void)draggedImage:(NSImage *)anImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super draggedImage:(NSImage *)anImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation];
-}
-
-
-- (void)mouseDragged:(NSEvent *)event
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super mouseDragged:(NSEvent *)event];
-}
-
-- (void)draggingExited:(id < NSDraggingInfo >)sender
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super draggingExited:(id < NSDraggingInfo >)sender];
+- (NSIndexSet*)_draggingTypes
+{
+ NSLog(@"%@ : (NSIndexSet*)%s",[self className],_cmd);
+ return [super _draggingTypes];
+}
+- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender
+{
+ NSLog(@"%@ : (NSDragOperation)%s",[self className],_cmd);
+ return [super draggingUpdated:(id <NSDraggingInfo>)sender];
+}
+- (void)draggedImage:(NSImage *)dragImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super draggedImage:(NSImage *)dragImage endedAt:(NSPoint)aPoint
operation:(NSDragOperation)operation];
}

-- (id)_dragHandleColors
-{
- NSArray *colors = [super _dragHandleColors];
- NSLog(@"%s %@",SELNAME(_cmd),[colors description]);
- return colors;
+- (NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
+{
+ NSLog(@"%@ : (NSDragOperation)%s",[self className],_cmd);
+ return [super draggingEntered:(id < NSDraggingInfo >)sender];
}

-
-- (void)_rightMouseDownOnSlice:(id)slice withEvent:(NSEvent*)event
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super _rightMouseDownOnSlice:(id)slice withEvent:(NSEvent*)event];
+- (BOOL)_dragShouldBeginFromMouseDown:(NSView*)view
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _dragShouldBeginFromMouseDown:(NSView*)view];
+}
+- (BOOL)_performDragForSlice:(id)slice withEvent:(NSEvent*)event
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _performDragForSlice:(id)slice withEvent:(NSEvent*)event];
+}
+- (NSImage*)_dragImageForIndices:(NSIndexSet*)indices
+{
+ NSLog(@"%@ : (NSImage*)%s",[self className],_cmd);
+ return [super _dragImageForIndices:(NSIndexSet*)indices];
+}
+- (unsigned int)_updateDragging:(id)fp8
+{
+ NSLog(@"%@ : (unsigned int)%s",[self className],_cmd);
+ return [super _updateDragging:(id)fp8];
+}
+- (unsigned int)draggingSourceOperationMaskForLocal:(BOOL)fp8
+{
+ NSLog(@"%@ : (unsigned int)%s",[self className],_cmd);
+ return [super draggingSourceOperationMaskForLocal:(BOOL)fp8];
+}
+- (void)draggingExited:(id)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super draggingExited:(id)fp8];
}

-- (void)_performClickOnSlice:(id)slice withEvent:(id)fp12
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super _performClickOnSlice:(id)slice withEvent:(id)fp12];
+- (void)_postRuleOptionChangedNotification
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _postRuleOptionChangedNotification];
}

-- (void)selectRowIndexes:(id)indexes byExtendingSelection:(BOOL)fp12
-{
- NSLog(@"%s",SELNAME(_cmd));
- [super selectRowIndexes:(id)indexes byExtendingSelection:(BOOL)fp12];
+- (NSView*)_createSliceDropSeparator
+{
+ NSLog(@"%@ : (NSView*)%s",[self className],_cmd);
+ return [super _createSliceDropSeparator];
}

-
-- (NSIndexSet*)_selectedSliceIndices
-{
- NSLog(@"%s",SELNAME(_cmd));
- return [super _selectedSliceIndices];
+- (void)_setWindow:(NSWindow*)window
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setWindow:(NSWindow*)window];
+}
+- (void)_windowUpdate:(id)sender
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _windowUpdate:(id)sender];
}

-
-
+- (void)_removeSubrowsForRow:(int)rowIndex fromSet:(NSIndexSet*)set
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _removeSubrowsForRow:(int)rowIndex fromSet:(NSIndexSet*)set];
+}
+- (BOOL)_isInDesignMode
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _isInDesignMode];
+}
+- (BOOL)_privateDelegateMethodsEnabled
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _privateDelegateMethodsEnabled];
+}
+- (BOOL)_suppressKeyDownHandling
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _suppressKeyDownHandling];
+}
+- (BOOL)_wantsMinimalArchival
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _wantsMinimalArchival];
+}
+- (id)_extendItem:(id)fp8 withRow:(int)fp12
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _extendItem:(id)fp8 withRow:(int)fp12];
+}
+- (id)_generateFormattingDictionaryStringsFile
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _generateFormattingDictionaryStringsFile];
+}
+- (id)_layoutOrdersForChoiceRootedAtItem:(id)fp8 inRow:(int)fp12
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _layoutOrdersForChoiceRootedAtItem:(id)fp8 inRow:(int)fp12];
+}
+- (id)_localizerForSlice:(id)fp8
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _localizerForSlice:(id)fp8];
+}
+- (id)_queryOrderLocalizedDictionaries:(id)fp8 withParent:(id)fp12
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _queryOrderLocalizedDictionaries:(id)fp8
withParent:(id)fp12];
+}
+- (id)formattingDictionary
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super formattingDictionary];
+}
+- (int)_layoutOrderForItem:(id)fp8 inRow:(int)fp12
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super _layoutOrderForItem:(id)fp8 inRow:(int)fp12];
+}
+- (void)_fullCacheUpdate
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _fullCacheUpdate];
+} // créé de nouveaux caches avec les contenus des vieux caches
(rowObject, rowIndex, indentation).
+- (void)_fullCacheUpdateRecursive:(id)fp8 intoRow:(int *)fp12
withIndentation:(int)fp16
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _fullCacheUpdateRecursive:(id)fp8 intoRow:(int *)fp12
withIndentation:(int)fp16];
+}
+- (void)_rightMouseDownOnSlice:(id)fp8 withEvent:(id)fp12
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _rightMouseDownOnSlice:(id)fp8 withEvent:(id)fp12];
+}
+- (void)_sendRuleAction
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _sendRuleAction];
+}
+- (void)_setAlignmentGridWidth:(float)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setAlignmentGridWidth:(float)fp8];
+}
+- (void)_setHeaderLocalizer:(id)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setHeaderLocalizer:(id)fp8];
+}
+- (void)_setPrivateDelegateMethodsEnabled:(BOOL)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setPrivateDelegateMethodsEnabled:(BOOL)fp8];
+}
+- (void)_setStandardLocalizer:(id)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setStandardLocalizer:(id)fp8];
+}
+- (void)_setSuppressKeyDownHandling:(BOOL)flag
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setSuppressKeyDownHandling:(BOOL)flag];
+}
+- (void)_stopAnimationWithoutChangingFrames
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _stopAnimationWithoutChangingFrames];
+}
+- (void)_windowChangedKeyState
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _windowChangedKeyState];
+}
+- (void)setFormattingDictionary:(id)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super setFormattingDictionary:(id)fp8];
+}
+- (BOOL)_findRowObject:(id)fp8 startingAtObject:(id)fp12 withIndex:(int
*)fp16
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _findRowObject:(id)fp8 startingAtObject:(id)fp12
withIndex:(int *)fp16];
+}
+- (BOOL)_nextUnusedItems:(id *)fp8 andValues:(id *)fp12 forRow:(int)fp16
forRowType:(unsigned int)fp20
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _nextUnusedItems:(id *)fp8 andValues:(id *)fp12
forRow:(int)fp16 forRowType:(unsigned int)fp20];
+}
+- (BOOL)_ruleViewHasFirstResponder
+{
+ NSLog(@"%@ : (BOOL)%s",[self className],_cmd);
+ return [super _ruleViewHasFirstResponder];
+}
+- (id)_globalIndexesForSubrowIndexes:(id)fp8 ofParentObject:(id)fp12
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _globalIndexesForSubrowIndexes:(id)fp8
ofParentObject:(id)fp12];
+}
+- (id)_rootRowsArray
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _rootRowsArray];
+}
+- (id)_uniqueizeIndexSet:(id)fp8
+{
+ NSLog(@"%@ : (id)%s",[self className],_cmd);
+ return [super _uniqueizeIndexSet:(id)fp8];
+}
+- (int)rowForDisplayValue:(id)fp8
+{
+ NSLog(@"%@ : (int)%s",[self className],_cmd);
+ return [super rowForDisplayValue:(id)fp8];
+}
+- (void)_getAllAvailableItems:(id *)fp8 values:(id *)fp12
asChildrenOfItem:(id)fp16 inRow:(int)fp20
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _getAllAvailableItems:(id *)fp8 values:(id *)fp12
asChildrenOfItem:(id)fp16 inRow:(int)fp20];
+}
+- (void)_loadInitialRows
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _loadInitialRows];
+}
+- (void)_performClickOnSlice:(id)fp8 withEvent:(id)fp12
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _performClickOnSlice:(id)fp8 withEvent:(id)fp12];
+}
+- (void)_recursiveGenerateFormattingDictionaryPlistForItem:(id)fp8
rowType:(unsigned int)fp12 intoArray:(id)fp16 withPriorValues:(id)fp20
hasSiblings:(BOOL)fp24
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _recursiveGenerateFormattingDictionaryPlistForItem:(id)fp8
rowType:(unsigned int)fp12 intoArray:(id)fp16 withPriorValues:(id)fp20
hasSiblings:(BOOL)fp24];
+}
+- (void)_setPredicate:(id)fp8
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super _setPredicate:(id)fp8];
+}
+- (void)reloadCriteria
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super reloadCriteria];
+}
+- (void)selectRowIndexes:(id)fp8 byExtendingSelection:(BOOL)fp12
+{
+ NSLog(@"%@ : (void)%s",[self className],_cmd);
+ [super selectRowIndexes:(id)fp8 byExtendingSelection:(BOOL)fp12];
+}
+ */
@end
Reply all
Reply to author
Forward
0 new messages