diff options
-rw-r--r-- | Interfaces/English.lproj/Navigator.xib | 1171 | ||||
-rw-r--r-- | Source/SPNavigatorController.h | 47 | ||||
-rw-r--r-- | Source/SPNavigatorController.m | 273 | ||||
-rw-r--r-- | Source/TableDocument.h | 1 | ||||
-rw-r--r-- | Source/TableDocument.m | 34 | ||||
-rw-r--r-- | sequel-pro.xcodeproj/project.pbxproj | 18 |
6 files changed, 1544 insertions, 0 deletions
diff --git a/Interfaces/English.lproj/Navigator.xib b/Interfaces/English.lproj/Navigator.xib new file mode 100644 index 00000000..74a90bc7 --- /dev/null +++ b/Interfaces/English.lproj/Navigator.xib @@ -0,0 +1,1171 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1060</int> + <string key="IBDocument.SystemVersion">10C540</string> + <string key="IBDocument.InterfaceBuilderVersion">740</string> + <string key="IBDocument.AppKitVersion">1038.25</string> + <string key="IBDocument.HIToolboxVersion">458.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>740</string> + <string>1.2.5</string> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="3"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.brandonwalkin.BWToolkit</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" id="0"> + <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="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="1001"> + <string key="NSClassName">SPNavigatorController</string> + </object> + <object class="NSCustomObject" id="1003"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1004"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="856804369"> + <int key="NSWindowStyleMask">15</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{131, 70}, {395, 359}}</string> + <int key="NSWTFlags">-1535638528</int> + <string key="NSWindowTitle">Navigator</string> + <string key="NSWindowClass">NSPanel</string> + <nil key="NSViewClass"/> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMinSize">{150, 200}</string> + <object class="NSView" key="NSWindowView" id="881437593"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSSearchField" id="701533802"> + <reference key="NSNextResponder" ref="881437593"/> + <int key="NSvFlags">270</int> + <string key="NSFrame">{{20, 334}, {165, 19}}</string> + <reference key="NSSuperview" ref="881437593"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSSearchFieldCell" key="NSCell" id="753691092"> + <int key="NSCellFlags">343014976</int> + <int key="NSCellFlags2">268600384</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSControlView" ref="701533802"/> + <bool key="NSDrawsBackground">YES</bool> + <int key="NSTextBezelStyle">1</int> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="37796111"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <object class="NSColor" key="NSColor" id="118334389"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + <object class="NSButtonCell" key="NSSearchButtonCell"> + <int key="NSCellFlags">130560</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">search</string> + <reference key="NSControlView" ref="701533802"/> + <string key="NSAction">_searchFieldSearch:</string> + <reference key="NSTarget" ref="753691092"/> + <int key="NSButtonFlags">138690815</int> + <int key="NSButtonFlags2">0</int> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + </object> + <object class="NSButtonCell" key="NSCancelButtonCell"> + <int key="NSCellFlags">130560</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">clear</string> + <object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableDictionary"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>AXDescription</string> + <string>NSAccessibilityEncodedAttributesValueType</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>cancel</string> + <integer value="1"/> + </object> + </object> + </object> + <reference key="NSControlView" ref="701533802"/> + <string key="NSAction">_searchFieldCancel:</string> + <reference key="NSTarget" ref="753691092"/> + <int key="NSButtonFlags">138690815</int> + <int key="NSButtonFlags2">0</int> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + </object> + <int key="NSMaximumRecents">255</int> + </object> + </object> + <object class="BWSplitView" id="112878735"> + <reference key="NSNextResponder" ref="881437593"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="BWCustomView" id="464250149"> + <reference key="NSNextResponder" ref="112878735"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="BWSplitView" id="800413276"> + <reference key="NSNextResponder" ref="464250149"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="BWCustomView" id="978368259"> + <reference key="NSNextResponder" ref="800413276"/> + <int key="NSvFlags">272</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSScrollView" id="667909124"> + <reference key="NSNextResponder" ref="978368259"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="415327048"> + <reference key="NSNextResponder" ref="667909124"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSOutlineView" id="390132860"> + <reference key="NSNextResponder" ref="415327048"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{382, 14}</string> + <reference key="NSSuperview" ref="415327048"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTableHeaderView" key="NSHeaderView" id="945013976"> + <reference key="NSNextResponder" ref="752652559"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{382, 17}</string> + <reference key="NSSuperview" ref="752652559"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSTableView" ref="390132860"/> + </object> + <object class="_NSCornerView" key="NSCornerView" id="621555274"> + <reference key="NSNextResponder" ref="667909124"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{383, 0}, {12, 0}}</string> + <reference key="NSSuperview" ref="667909124"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + </object> + <object class="NSMutableArray" key="NSTableColumns"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableColumn" id="729371637"> + <string key="NSIdentifier">field</string> + <double key="NSWidth">178</double> + <double key="NSMinWidth">16</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <object class="NSColor" key="NSBackgroundColor" id="292774336"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="430530214"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerTextColor</string> + <reference key="NSColor" ref="118334389"/> + </object> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="1043839008"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">133120</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="390132860"/> + <object class="NSColor" key="NSBackgroundColor" id="119013737"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + </object> + </object> + <reference key="NSTextColor" ref="37796111"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="390132860"/> + </object> + <object class="NSTableColumn" id="583473822"> + <string key="NSIdentifier">type</string> + <double key="NSWidth">198</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="292774336"/> + <reference key="NSTextColor" ref="430530214"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="323538937"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">133120</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="390132860"/> + <reference key="NSBackgroundColor" ref="119013737"/> + <reference key="NSTextColor" ref="37796111"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="390132860"/> + </object> + </object> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeight">0.0</double> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">_sourceListBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MzkyMTU2OTU5IDAuODY2NjY2Njc0NiAwLjg5ODAzOTIyMTgAA</bytes> + </object> + </object> + <object class="NSColor" key="NSGridColor" id="1022465183"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">gridColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC41AA</bytes> + </object> + </object> + <double key="NSRowHeight">14</double> + <int key="NSTvFlags">1379958784</int> + <reference key="NSDelegate"/> + <reference key="NSDataSource"/> + <string key="NSAutosaveName">SPNavigatorSchema1</string> + <int key="NSColumnAutoresizingStyle">1</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + <int key="NSTableViewSelectionHighlightStyle">1</int> + <int key="NSTableViewDraggingDestinationStyle">1</int> + <float key="NSOutlineViewIndentationPerLevelKey">12</float> + </object> + </object> + <string key="NSFrame">{{1, 0}, {382, 0}}</string> + <reference key="NSSuperview" ref="667909124"/> + <reference key="NSNextKeyView" ref="390132860"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSDocView" ref="390132860"/> + <reference key="NSBGColor" ref="119013737"/> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="619640533"> + <reference key="NSNextResponder" ref="667909124"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{383, 0}, {11, 0}}</string> + <reference key="NSSuperview" ref="667909124"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <int key="NSsFlags">256</int> + <reference key="NSTarget" ref="667909124"/> + <string key="NSAction">_doScroller:</string> + </object> + <object class="NSScroller" id="239465385"> + <reference key="NSNextResponder" ref="667909124"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{1, 119}, {223, 11}}</string> + <reference key="NSSuperview" ref="667909124"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">257</int> + <reference key="NSTarget" ref="667909124"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.97201019525527954</double> + </object> + <object class="NSClipView" id="752652559"> + <reference key="NSNextResponder" ref="667909124"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="945013976"/> + </object> + <string key="NSFrame">{{1, 0}, {382, 0}}</string> + <reference key="NSSuperview" ref="667909124"/> + <reference key="NSNextKeyView" ref="945013976"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSDocView" ref="945013976"/> + <reference key="NSBGColor" ref="119013737"/> + <int key="NScvFlags">4</int> + </object> + <reference ref="621555274"/> + </object> + <string key="NSFrameSize">{395, 0}</string> + <reference key="NSSuperview" ref="978368259"/> + <reference key="NSNextKeyView" ref="415327048"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">626</int> + <reference key="NSVScroller" ref="619640533"/> + <reference key="NSHScroller" ref="239465385"/> + <reference key="NSContentView" ref="415327048"/> + <reference key="NSHeaderClipView" ref="752652559"/> + <reference key="NSCornerView" ref="621555274"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBYAAAQWAAAA</bytes> + </object> + </object> + <string key="NSFrameSize">{395, 0}</string> + <reference key="NSSuperview" ref="800413276"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <string key="NSClassName">NSView</string> + </object> + <object class="BWCustomView" id="556163261"> + <reference key="NSNextResponder" ref="800413276"/> + <int key="NSvFlags">272</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSScrollView" id="1023753551"> + <reference key="NSNextResponder" ref="556163261"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="817352949"> + <reference key="NSNextResponder" ref="1023753551"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSOutlineView" id="771350217"> + <reference key="NSNextResponder" ref="817352949"/> + <int key="NSvFlags">4352</int> + <string key="NSFrameSize">{393, 255}</string> + <reference key="NSSuperview" ref="817352949"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTableHeaderView" key="NSHeaderView" id="144900244"> + <reference key="NSNextResponder" ref="584171442"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{393, 17}</string> + <reference key="NSSuperview" ref="584171442"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSTableView" ref="771350217"/> + </object> + <object class="_NSCornerView" key="NSCornerView" id="637334507"> + <reference key="NSNextResponder" ref="1023753551"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{224, 0}, {16, 17}}</string> + <reference key="NSSuperview" ref="1023753551"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + </object> + <object class="NSMutableArray" key="NSTableColumns"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableColumn" id="722747744"> + <string key="NSIdentifier">field</string> + <double key="NSWidth">188</double> + <double key="NSMinWidth">16</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <object class="NSColor" key="NSBackgroundColor" id="141164966"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> + </object> + <reference key="NSTextColor" ref="430530214"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="43392434"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">133120</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="771350217"/> + <reference key="NSBackgroundColor" ref="119013737"/> + <reference key="NSTextColor" ref="37796111"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="771350217"/> + </object> + <object class="NSTableColumn" id="998799870"> + <string key="NSIdentifier">type</string> + <double key="NSWidth">199</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="141164966"/> + <reference key="NSTextColor" ref="430530214"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="713670797"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">133120</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="771350217"/> + <reference key="NSBackgroundColor" ref="119013737"/> + <reference key="NSTextColor" ref="37796111"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="771350217"/> + </object> + </object> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeight">0.0</double> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">_sourceListBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MzkyMTU2OTU5IDAuODY2NjY2Njc0NiAwLjg5ODAzOTIyMTgAA</bytes> + </object> + </object> + <reference key="NSGridColor" ref="1022465183"/> + <double key="NSRowHeight">14</double> + <int key="NSTvFlags">1379958784</int> + <reference key="NSDelegate"/> + <reference key="NSDataSource"/> + <string key="NSAutosaveName">SPNavigatorSchema2</string> + <int key="NSColumnAutoresizingStyle">1</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + <int key="NSTableViewSelectionHighlightStyle">1</int> + <int key="NSTableViewDraggingDestinationStyle">1</int> + <float key="NSOutlineViewIndentationPerLevelKey">12</float> + </object> + </object> + <string key="NSFrame">{{1, 17}, {393, 255}}</string> + <reference key="NSSuperview" ref="1023753551"/> + <reference key="NSNextKeyView" ref="771350217"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSDocView" ref="771350217"/> + <reference key="NSBGColor" ref="119013737"/> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="103116274"> + <reference key="NSNextResponder" ref="1023753551"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{224, 17}, {11, 102}}</string> + <reference key="NSSuperview" ref="1023753551"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">256</int> + <reference key="NSTarget" ref="1023753551"/> + <string key="NSAction">_doScroller:</string> + <double key="NSCurValue">37</double> + <double key="NSPercent">0.13909779489040375</double> + </object> + <object class="NSScroller" id="1026336837"> + <reference key="NSNextResponder" ref="1023753551"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{1, 65}, {120, 11}}</string> + <reference key="NSSuperview" ref="1023753551"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">257</int> + <reference key="NSTarget" ref="1023753551"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.8163265585899353</double> + </object> + <object class="NSClipView" id="584171442"> + <reference key="NSNextResponder" ref="1023753551"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="144900244"/> + </object> + <string key="NSFrame">{{1, 0}, {393, 17}}</string> + <reference key="NSSuperview" ref="1023753551"/> + <reference key="NSNextKeyView" ref="144900244"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSDocView" ref="144900244"/> + <reference key="NSBGColor" ref="119013737"/> + <int key="NScvFlags">4</int> + </object> + <reference ref="637334507"/> + </object> + <string key="NSFrameSize">{395, 273}</string> + <reference key="NSSuperview" ref="556163261"/> + <reference key="NSNextKeyView" ref="817352949"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">562</int> + <reference key="NSVScroller" ref="103116274"/> + <reference key="NSHScroller" ref="1026336837"/> + <reference key="NSContentView" ref="817352949"/> + <reference key="NSHeaderClipView" ref="584171442"/> + <reference key="NSCornerView" ref="637334507"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBYAAAQWAAAA</bytes> + </object> + </object> + <string key="NSFrame">{{0, 1}, {395, 273}}</string> + <reference key="NSSuperview" ref="800413276"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <string key="NSClassName">NSView</string> + </object> + </object> + <string key="NSFrameSize">{395, 274}</string> + <reference key="NSSuperview" ref="464250149"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSDividerStyle">2</int> + <reference key="BWSVColor" ref="118334389"/> + <bool key="BWSVColorIsEnabled">NO</bool> + <object class="NSMutableDictionary" key="BWSVMinValues"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableDictionary" key="BWSVMaxValues"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableDictionary" key="BWSVMinUnits"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="1"/> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="0"/> + </object> + </object> + <object class="NSMutableDictionary" key="BWSVMaxUnits"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="1"/> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="0"/> + </object> + </object> + <int key="BWSVCollapsiblePopupSelection">0</int> + <bool key="BWSVDividerCanCollapse">NO</bool> + </object> + </object> + <string key="NSFrameSize">{395, 274}</string> + <reference key="NSSuperview" ref="112878735"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <string key="NSClassName">NSView</string> + </object> + <object class="BWCustomView" id="65471749"> + <reference key="NSNextResponder" ref="112878735"/> + <int key="NSvFlags">274</int> + <string key="NSFrame">{{0, 275}, {395, 54}}</string> + <reference key="NSSuperview" ref="112878735"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <string key="NSClassName">NSView</string> + </object> + </object> + <string key="NSFrameSize">{395, 329}</string> + <reference key="NSSuperview" ref="881437593"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSDividerStyle">2</int> + <reference key="BWSVColor" ref="118334389"/> + <bool key="BWSVColorIsEnabled">NO</bool> + <object class="NSMutableDictionary" key="BWSVMinValues"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableDictionary" key="BWSVMaxValues"> + <integer value="1" key="NS.key.0"/> + <integer value="100" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="BWSVMinUnits"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="1"/> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="0"/> + </object> + </object> + <object class="NSMutableDictionary" key="BWSVMaxUnits"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="1"/> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="0"/> + <integer value="0"/> + </object> + </object> + <int key="BWSVCollapsiblePopupSelection">0</int> + <bool key="BWSVDividerCanCollapse">NO</bool> + </object> + </object> + <string key="NSFrameSize">{395, 359}</string> + <reference key="NSSuperview"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + </object> + <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> + <string key="NSMinSize">{150, 222}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSFrameAutosaveName"/> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">window</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="856804369"/> + </object> + <int key="connectionID">53</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">outlineSchema1</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="390132860"/> + </object> + <int key="connectionID">54</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">outlineSchema2</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="771350217"/> + </object> + <int key="connectionID">55</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">dataSource</string> + <reference key="source" ref="390132860"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">58</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="390132860"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">59</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">outlineViewAction:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="771350217"/> + </object> + <int key="connectionID">60</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">outlineViewAction:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="390132860"/> + </object> + <int key="connectionID">61</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">dataSource</string> + <reference key="source" ref="771350217"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">62</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="771350217"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">63</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <reference key="object" ref="0"/> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="1001"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="1003"/> + <reference key="parent" ref="0"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="1004"/> + <reference key="parent" ref="0"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="856804369"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="881437593"/> + </object> + <reference key="parent" ref="0"/> + <string key="objectName">Navigator Window</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="881437593"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="701533802"/> + <reference ref="112878735"/> + </object> + <reference key="parent" ref="856804369"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">8</int> + <reference key="object" ref="701533802"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="753691092"/> + </object> + <reference key="parent" ref="881437593"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">9</int> + <reference key="object" ref="753691092"/> + <reference key="parent" ref="701533802"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">13</int> + <reference key="object" ref="112878735"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="464250149"/> + <reference ref="65471749"/> + </object> + <reference key="parent" ref="881437593"/> + <string key="objectName">Split View (Schema / Status)</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">14</int> + <reference key="object" ref="464250149"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="800413276"/> + </object> + <reference key="parent" ref="112878735"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">19</int> + <reference key="object" ref="800413276"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="978368259"/> + <reference ref="556163261"/> + </object> + <reference key="parent" ref="464250149"/> + <string key="objectName">Split View (Schema 1 / 2)</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">20</int> + <reference key="object" ref="978368259"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="667909124"/> + </object> + <reference key="parent" ref="800413276"/> + <string key="objectName">Schema 1</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">21</int> + <reference key="object" ref="556163261"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1023753551"/> + </object> + <reference key="parent" ref="800413276"/> + <string key="objectName">Schema 2</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">15</int> + <reference key="object" ref="65471749"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="parent" ref="112878735"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">22</int> + <reference key="object" ref="667909124"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="619640533"/> + <reference ref="239465385"/> + <reference ref="390132860"/> + <reference ref="945013976"/> + </object> + <reference key="parent" ref="978368259"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">23</int> + <reference key="object" ref="619640533"/> + <reference key="parent" ref="667909124"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">24</int> + <reference key="object" ref="239465385"/> + <reference key="parent" ref="667909124"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">25</int> + <reference key="object" ref="390132860"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="729371637"/> + <reference ref="583473822"/> + </object> + <reference key="parent" ref="667909124"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">26</int> + <reference key="object" ref="945013976"/> + <reference key="parent" ref="667909124"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">27</int> + <reference key="object" ref="729371637"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1043839008"/> + </object> + <reference key="parent" ref="390132860"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">28</int> + <reference key="object" ref="583473822"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="323538937"/> + </object> + <reference key="parent" ref="390132860"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">29</int> + <reference key="object" ref="323538937"/> + <reference key="parent" ref="583473822"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">30</int> + <reference key="object" ref="1043839008"/> + <reference key="parent" ref="729371637"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">40</int> + <reference key="object" ref="1023753551"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="144900244"/> + <reference ref="771350217"/> + <reference ref="1026336837"/> + <reference ref="103116274"/> + </object> + <reference key="parent" ref="556163261"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">44</int> + <reference key="object" ref="144900244"/> + <reference key="parent" ref="1023753551"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">43</int> + <reference key="object" ref="771350217"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="998799870"/> + <reference ref="722747744"/> + </object> + <reference key="parent" ref="1023753551"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">42</int> + <reference key="object" ref="1026336837"/> + <reference key="parent" ref="1023753551"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">41</int> + <reference key="object" ref="103116274"/> + <reference key="parent" ref="1023753551"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">46</int> + <reference key="object" ref="998799870"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="713670797"/> + </object> + <reference key="parent" ref="771350217"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">45</int> + <reference key="object" ref="722747744"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="43392434"/> + </object> + <reference key="parent" ref="771350217"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">48</int> + <reference key="object" ref="43392434"/> + <reference key="parent" ref="722747744"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">47</int> + <reference key="object" ref="713670797"/> + <reference key="parent" ref="998799870"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>13.IBPluginDependency</string> + <string>14.IBPluginDependency</string> + <string>15.IBPluginDependency</string> + <string>19.IBPluginDependency</string> + <string>20.IBPluginDependency</string> + <string>21.IBPluginDependency</string> + <string>22.IBPluginDependency</string> + <string>23.IBPluginDependency</string> + <string>24.IBPluginDependency</string> + <string>25.CustomClassName</string> + <string>25.IBPluginDependency</string> + <string>26.IBPluginDependency</string> + <string>27.IBPluginDependency</string> + <string>28.IBPluginDependency</string> + <string>29.IBPluginDependency</string> + <string>3.IBEditorWindowLastContentRect</string> + <string>3.IBPluginDependency</string> + <string>3.IBWindowTemplateEditedContentRect</string> + <string>3.NSWindowTemplate.visibleAtLaunch</string> + <string>3.windowTemplate.hasMinSize</string> + <string>3.windowTemplate.minSize</string> + <string>30.CustomClassName</string> + <string>30.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + <string>40.IBPluginDependency</string> + <string>41.IBPluginDependency</string> + <string>42.IBPluginDependency</string> + <string>43.CustomClassName</string> + <string>43.IBPluginDependency</string> + <string>44.IBPluginDependency</string> + <string>45.IBPluginDependency</string> + <string>46.IBPluginDependency</string> + <string>47.IBPluginDependency</string> + <string>48.CustomClassName</string> + <string>48.IBPluginDependency</string> + <string>8.IBPluginDependency</string> + <string>9.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.brandonwalkin.BWToolkit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>SPOutlineView</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>{{66, 295}, {395, 359}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{66, 295}, {395, 359}}</string> + <boolean value="NO"/> + <boolean value="YES"/> + <string>{150, 200}</string> + <string>ImageAndTextCell</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>SPOutlineView</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>ImageAndTextCell</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">63</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">ImageAndTextCell</string> + <string key="superclassName">NSTextFieldCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBDocumentRelativeSource</string> + <string key="minorKey">../../Source/ImageAndTextCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPNavigatorController</string> + <string key="superclassName">NSWindowController</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">outlineViewAction:</string> + <string key="NS.object.0">id</string> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>navigatorWindow</string> + <string>outlineSchema1</string> + <string>outlineSchema2</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBDocumentRelativeSource</string> + <string key="minorKey">../../Source/SPNavigatorController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPOutlineView</string> + <string key="superclassName">NSOutlineView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBDocumentRelativeSource</string> + <string key="minorKey">../../Source/SPOutlineView.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> + <integer value="3000" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <nil key="IBDocument.LastKnownRelativeProjectPath"/> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/Source/SPNavigatorController.h b/Source/SPNavigatorController.h new file mode 100644 index 00000000..4687f404 --- /dev/null +++ b/Source/SPNavigatorController.h @@ -0,0 +1,47 @@ +// +// $Id$ +// +// SPNavigatorController.h +// sequel-pro +// +// Created by Hans-J. Bibiko on March 17, 2010. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import <Cocoa/Cocoa.h> +#import <MCPKit/MCPKit.h> + + +@interface SPNavigatorController : NSWindowController { + + IBOutlet id outlineSchema1; + IBOutlet id outlineSchema2; + IBOutlet id navigatorWindow; + + NSUserDefaults *prefs; + + NSMutableDictionary *schemaData; + +} + ++ (SPNavigatorController *)sharedNavigatorController; + +- (IBAction)outlineViewAction:(id)sender; + +- (void)updateEntries; + +@end diff --git a/Source/SPNavigatorController.m b/Source/SPNavigatorController.m new file mode 100644 index 00000000..ec3458ad --- /dev/null +++ b/Source/SPNavigatorController.m @@ -0,0 +1,273 @@ +// +// $Id$ +// +// SPNavigatorController.m +// sequel-pro +// +// Created by Hans-J. Bibiko on March 17, 2010. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import "SPNavigatorController.h" + +static SPNavigatorController *sharedNavigatorController = nil; + +@implementation SPNavigatorController + + +/* + * Returns the shared query console. + */ ++ (SPNavigatorController *)sharedNavigatorController +{ + @synchronized(self) { + if (sharedNavigatorController == nil) { + sharedNavigatorController = [[super allocWithZone:NULL] init]; + } + } + + return sharedNavigatorController; +} + ++ (id)allocWithZone:(NSZone *)zone +{ + @synchronized(self) { + return [[self sharedNavigatorController] retain]; + } +} + +- (id)init +{ + if((self = [super initWithWindowNibName:@"Navigator"])) { + + schemaData = [[NSMutableDictionary alloc] init]; + + } + + return self; + +} + +- (void)dealloc +{ + if(schemaData) [schemaData release]; +} +/* + * The following base protocol methods are implemented to ensure the singleton status of this class. + */ + +- (id)copyWithZone:(NSZone *)zone { return self; } + +- (id)retain { return self; } + +- (NSUInteger)retainCount { return NSUIntegerMax; } + +- (id)autorelease { return self; } + +- (void)release { } + +/** + * Set the window's auto save name and initialise display + */ +- (void)awakeFromNib +{ + prefs = [NSUserDefaults standardUserDefaults]; + + if ([[[NSDocumentController sharedDocumentController] documents] count]) { + for(id doc in [[NSDocumentController sharedDocumentController] documents]) { + NSString *connectionName = [NSString stringWithFormat:@"%@@%@", [doc user], [doc host]]; + if(![schemaData objectForKey:connectionName]) + [schemaData setObject:[[doc valueForKeyPath:@"mySQLConnection"] getDbStructure] forKey:connectionName]; + } + } + + [self setWindowFrameAutosaveName:@"SPNavigator"]; + +} + +- (NSString *)windowFrameAutosaveName +{ + return @"SPNavigator"; +} + + +- (void)updateEntries +{ + + [schemaData removeAllObjects]; + if ([[[NSDocumentController sharedDocumentController] documents] count]) { + for(id doc in [[NSDocumentController sharedDocumentController] documents]) { + NSString *connectionName = [NSString stringWithFormat:@"%@@%@", [doc user], [doc host]]; + if(![schemaData objectForKey:connectionName]) + [schemaData setObject:[[doc valueForKeyPath:@"mySQLConnection"] getDbStructure] forKey:connectionName]; + } + } + // [outlineSchema1 reloadItem:nil reloadChildren:YES]; + // [outlineSchema2 reloadItem:nil reloadChildren:YES]; +} + +- (IBAction)outlineViewAction:(id)sender +{ + +} + +// ================================================================ +// NSOutlineView data source methods +// ================================================================ + +- (id)outlineView:(id)outlineView child:(NSInteger)index ofItem:(id)item +{ + if (item == nil) + item = schemaData; + + if ([item isKindOfClass:[NSArray class]]) + return [item objectAtIndex:index]; + + else if ([item isKindOfClass:[NSDictionary class]]) + return [item objectForKey:[[item allKeys] objectAtIndex:index]]; + + return nil; +} + +- (BOOL)outlineView:(id)outlineView isItemExpandable:(id)item +{ + if([item isKindOfClass:[NSDictionary class]] && [item count] && [[item objectForKey:@" struct_type "] intValue] < 2) + return YES; + + return NO; +} + +- (NSInteger)outlineView:(id)outlineView numberOfChildrenOfItem:(id)item +{ + + if(item == nil) + return [schemaData count]; + + if([item isKindOfClass:[NSDictionary class]]) + return [item count]; + else if([item isKindOfClass:[NSArray class]]) + return 0; + + return 0; +} + +- (id)outlineView:(id)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item +{ + if ([[tableColumn identifier] isEqualToString:@"field"]) { + id parentObject = [outlineView parentForItem:item] ? [outlineView parentForItem:item] : schemaData; + if ([parentObject isKindOfClass:[NSDictionary class]]) { + if([outlineView parentForItem:item]) { + if([item isKindOfClass:[NSDictionary class]]) { + if([item objectForKey:@" struct_type "]) { + NSInteger type = [[item objectForKey:@" struct_type "] intValue]; + switch(type) { + case 0: + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"table-small-square"]]; + break; + case 1: + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"table-view-small-square"]]; + break; + case 2: + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"proc-small"]]; + break; + case 3: + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"func-small"]]; + break; + } + } else { + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"database-small"]]; + } + } else { + // [[tableColumn dataCell] setImage:[NSImage imageNamed:@"field-small-square"]]; + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"dummy-small"]]; + } + } else { + [[tableColumn dataCell] setImage:[NSImage imageNamed:@"dummy-small"]]; + } + // if(![[[parentObject allKeysForObject:item] objectAtIndex:0] hasPrefix:@" "]) + return [[parentObject allKeysForObject:item] objectAtIndex:0]; + + return nil; + } + return nil; + } + else if ([[tableColumn identifier] isEqualToString:@"type"]) { + if ([item isKindOfClass:[NSString class]]) + { + return nil; + } + else if ([item isKindOfClass:[NSDictionary class]]) + { + return nil; + } + else if ([item isKindOfClass:[NSArray class]]) + { + NSTokenFieldCell *b = [[[NSTokenFieldCell alloc] initTextCell:[item componentsJoinedByString:@", "]] autorelease]; + [b setEditable:NO]; + [b setAlignment:NSRightTextAlignment]; + [b setFont:[NSFont systemFontOfSize:11]]; + [b setDelegate:self]; + [b setWraps:NO]; + return b; + } + } + + return nil; +} + +- (BOOL)outlineView:outlineView isGroupItem:(id)item +{ + if([item isKindOfClass:[NSDictionary class]]) + return YES; + + return NO; +} + +- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item +{ + if([item isKindOfClass:[NSDictionary class]]) + return 18.0; + return 20.0; +} + +- (BOOL)outlineView:(NSOutlineView *)outlineView shouldExpandItem:(id)item +{ + return YES; +} + +- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(NSCell *)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item +{ + +} +// - (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item +// { +// return [tableColumn dataCell]; +// +// // If we return a cell for the 'nil' tableColumn, it will be used as a "full width" cell and span all the columns +// if ([item isKindOfClass:[NSDictionary class]] && (tableColumn == nil)) { +// // We want to use the cell for the name column, but we could construct a new cell if we wanted to, or return a different cell for each row. +// return [[outlineView tableColumnWithIdentifier:@"field"] dataCell]; +// } +// return [tableColumn dataCell]; +// } + +- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item +{ + return YES; +} + +@end diff --git a/Source/TableDocument.h b/Source/TableDocument.h index 15477f25..c671d308 100644 --- a/Source/TableDocument.h +++ b/Source/TableDocument.h @@ -249,6 +249,7 @@ - (IBAction)copyChecksumFromSheet:(id)sender; - (void)showConsole:(id)sender; +- (void)showNavigator:(id)sender; // Accessor methods - (NSString *)host; diff --git a/Source/TableDocument.m b/Source/TableDocument.m index 2337961f..a262f09d 100644 --- a/Source/TableDocument.m +++ b/Source/TableDocument.m @@ -35,6 +35,7 @@ #import "SPGrowlController.h" #import "SPExportController.h" #import "SPQueryController.h" +#import "SPNavigatorController.h" #import "SPSQLParser.h" #import "SPTableData.h" #import "SPDatabaseData.h" @@ -1130,6 +1131,7 @@ } else { [[[SPQueryController sharedQueryController] window] makeKeyAndOrderFront:self]; } + // [self showNavigator:self]; } /** @@ -1149,6 +1151,37 @@ } #pragma mark - +#pragma mark Navigator methods + +/** + * Shows or hides the navigator + */ +- (void)toggleNavigator:(id)sender +{ + BOOL isNavigatorVisible = [[[SPNavigatorController sharedNavigatorController] window] isVisible]; + + // If the Console window is not visible data are not reloaded (for speed). + // Due to that update list if user opens the Console window. + if(!isNavigatorVisible) { + [[SPNavigatorController sharedNavigatorController] updateEntries]; + } + + // Show or hide the navigator + [[[SPNavigatorController sharedNavigatorController] window] setIsVisible:(!isNavigatorVisible)]; +} + +- (void)showNavigator:(id)sender +{ + BOOL isNavigatorVisible = [[[SPNavigatorController sharedNavigatorController] window] isVisible]; + + if (!isNavigatorVisible) { + [self toggleNavigator:sender]; + } else { + [[[SPNavigatorController sharedNavigatorController] window] makeKeyAndOrderFront:self]; + } +} + +#pragma mark - #pragma mark Task progress and notification methods /** @@ -3559,6 +3592,7 @@ [mySQLConnection setDelegate:nil]; if (_isConnected) [self closeConnection]; if ([[[SPQueryController sharedQueryController] window] isVisible]) [self toggleConsole:self]; + if ([[[SPNavigatorController sharedNavigatorController] window] isVisible]) [self toggleNavigator:self]; [createTableSyntaxWindow orderOut:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } diff --git a/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj index 30b48dcd..f4a171fa 100644 --- a/sequel-pro.xcodeproj/project.pbxproj +++ b/sequel-pro.xcodeproj/project.pbxproj @@ -231,6 +231,7 @@ BC05F1C5101241DF008A97F8 /* YRKSpinningProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC05F1C4101241DF008A97F8 /* YRKSpinningProgressIndicator.m */; }; BC1847EA0FE6EC8400094BFB /* SPEditSheetTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1847E90FE6EC8400094BFB /* SPEditSheetTextView.m */; }; BC1E55C4100DC92200AAE9F0 /* table-view-small-square.tiff in Resources */ = {isa = PBXBuildFile; fileRef = BC1E55C3100DC92200AAE9F0 /* table-view-small-square.tiff */; }; + BC2777A011514B940034DF6A /* SPNavigatorController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC27779F11514B940034DF6A /* SPNavigatorController.m */; }; BC29C37F10501EFD00DD6C6E /* SPQueryController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC29C37E10501EFD00DD6C6E /* SPQueryController.m */; }; BC2C16D40FEBEDF10003993B /* SPDataAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2C16D30FEBEDF10003993B /* SPDataAdditions.m */; }; BC2C8E220FA8C2DB008468C7 /* sequel-pro-mysql-help-template.html in Resources */ = {isa = PBXBuildFile; fileRef = BC2C8E210FA8C2DB008468C7 /* sequel-pro-mysql-help-template.html */; }; @@ -241,6 +242,7 @@ BC675A17107203BA00C5ACD4 /* ContentFilterManager.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC675A15107203BA00C5ACD4 /* ContentFilterManager.xib */; }; BC8B0DAF104004F900FC02EC /* EncodingPopupView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC8B0DAD104004F900FC02EC /* EncodingPopupView.xib */; }; BC8C8532100E0A8000D7A129 /* SPTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8C8531100E0A8000D7A129 /* SPTableView.m */; }; + BC93FBBD11514ADE005F1D9F /* Navigator.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC93FBBB11514ADE005F1D9F /* Navigator.xib */; }; BC962D661144EACA006170BD /* CompletionTokens.plist in Resources */ = {isa = PBXBuildFile; fileRef = BC962D651144EACA006170BD /* CompletionTokens.plist */; }; BC9F0881100FCF2C00A80D32 /* SPFieldEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9F0880100FCF2C00A80D32 /* SPFieldEditorController.m */; }; BCA6271C1031B9D40047E5D5 /* SPTooltip.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA6271B1031B9D40047E5D5 /* SPTooltip.m */; }; @@ -639,6 +641,8 @@ BC1847E80FE6EC8400094BFB /* SPEditSheetTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEditSheetTextView.h; sourceTree = "<group>"; }; BC1847E90FE6EC8400094BFB /* SPEditSheetTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPEditSheetTextView.m; sourceTree = "<group>"; }; BC1E55C3100DC92200AAE9F0 /* table-view-small-square.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "table-view-small-square.tiff"; sourceTree = "<group>"; }; + BC27779E11514B940034DF6A /* SPNavigatorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPNavigatorController.h; sourceTree = "<group>"; }; + BC27779F11514B940034DF6A /* SPNavigatorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPNavigatorController.m; sourceTree = "<group>"; }; BC29C37D10501EFD00DD6C6E /* SPQueryController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPQueryController.h; sourceTree = "<group>"; }; BC29C37E10501EFD00DD6C6E /* SPQueryController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPQueryController.m; sourceTree = "<group>"; }; BC2C16D20FEBEDF10003993B /* SPDataAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDataAdditions.h; sourceTree = "<group>"; }; @@ -653,6 +657,7 @@ BC8B0DAE104004F900FC02EC /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/EncodingPopupView.xib; sourceTree = "<group>"; }; BC8C8530100E0A8000D7A129 /* SPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTableView.h; sourceTree = "<group>"; }; BC8C8531100E0A8000D7A129 /* SPTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTableView.m; sourceTree = "<group>"; }; + BC93FBBC11514ADE005F1D9F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/Navigator.xib; sourceTree = "<group>"; }; BC962D651144EACA006170BD /* CompletionTokens.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = CompletionTokens.plist; sourceTree = "<group>"; }; BC9F087F100FCF2C00A80D32 /* SPFieldEditorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPFieldEditorController.h; sourceTree = "<group>"; }; BC9F0880100FCF2C00A80D32 /* SPFieldEditorController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPFieldEditorController.m; sourceTree = "<group>"; }; @@ -838,6 +843,8 @@ 17E641610EF01F15001BC333 /* TablesList.m */, BCE0025B11173D2A009DA533 /* SPFieldMapperController.h */, BCE0025C11173D2A009DA533 /* SPFieldMapperController.m */, + BC27779E11514B940034DF6A /* SPNavigatorController.h */, + BC27779F11514B940034DF6A /* SPNavigatorController.m */, ); name = "Subview Controllers"; sourceTree = "<group>"; @@ -1280,6 +1287,7 @@ 17E642050EF020A3001BC333 /* Interfaces */ = { isa = PBXGroup; children = ( + BC93FBBB11514ADE005F1D9F /* Navigator.xib */, BC30C00F111C98BD002701C9 /* DataMigrationDialog.xib */, 17CC97F510B4AC6C0034CD7A /* AboutPanel.xib */, BC65C3B0107CE3EE003F7B02 /* ImportAccessory.xib */, @@ -1683,6 +1691,7 @@ 17DD52B911507217007D8950 /* Credits.rtf in Resources */, 17DD52C3115074B3007D8950 /* InfoPlist.strings in Resources */, 17DD52C6115074CB007D8950 /* Localizable.strings in Resources */, + BC93FBBD11514ADE005F1D9F /* Navigator.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1835,6 +1844,7 @@ 29FA88231114619E00D1AF3D /* SPTableTriggers.m in Sources */, BCE0025D11173D2A009DA533 /* SPFieldMapperController.m in Sources */, 17E090E811498FC9007FC1B4 /* SPPrintController.m in Sources */, + BC2777A011514B940034DF6A /* SPNavigatorController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2040,6 +2050,14 @@ name = EncodingPopupView.xib; sourceTree = "<group>"; }; + BC93FBBB11514ADE005F1D9F /* Navigator.xib */ = { + isa = PBXVariantGroup; + children = ( + BC93FBBC11514ADE005F1D9F /* English */, + ); + name = Navigator.xib; + sourceTree = "<group>"; + }; BCA6F62F100FA7D700E80253 /* FieldEditorSheet.xib */ = { isa = PBXVariantGroup; children = ( |