Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Header checkbox reimplementation finished. Rearranging rows works aga…

…in. Lots of beautifulazations. Next: Export.
  • Loading branch information...
commit f813a9e33a18e9fecba352a058c99fa9e40321e9 1 parent 78bef07
svnuser authored
View
2  CSVDocument/CSVDocument.h
@@ -72,7 +72,7 @@
- (BOOL) parseCSVString:(NSString *)string error:(NSError **)error;
- (BOOL) parseCSVString:(NSString *)string maxRows:(NSUInteger)maxRows error:(NSError **)error;
#ifdef CSV_STRING_EXPORTING
-- (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)columnArray forRowIndexes:(NSIndexSet *)rowIndexes writeHeader:(BOOL)headerFlag;
+- (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)columnArray forRowIndexes:(NSIndexSet *)rowIndexes includeHeaders:(BOOL)headerFlag;
#endif
// column handling
View
7 CSVDocument/CSVDocument.m
@@ -344,7 +344,7 @@ - (BOOL) parseCSVString:(NSString *)string maxRows:(NSUInteger)maxRows error:(NS
#pragma mark Returning as String
#ifdef CSV_STRING_EXPORTING
-- (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)columnArray forRowIndexes:(NSIndexSet *)rowIndexes writeHeader:(BOOL)headerFlag
+- (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)columnArray forRowIndexes:(NSIndexSet *)rowIndexes includeHeaders:(BOOL)headerFlag
{
if ([columnArray count] < 1) {
return @"";
@@ -361,6 +361,7 @@ - (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)co
}
// get desired row indexes if not given
+ // TODO: Also return header rows if we want the headers!
if (nil == rowIndexes) {
if (NSNotFound == [rowController selectionIndex]) {
NSRange fullRange = NSMakeRange(0, [rows count]);
@@ -373,7 +374,9 @@ - (NSString *) stringInFormat:(PPStringFormat *)format withColumns:(NSArray *)co
NSArray *exportRows = [[rowController arrangedObjects] objectsAtIndexes:rowIndexes];
// get the string from the formatter
- return [format stringForRows:exportRows includeHeaderRows:headerFlag withColumnKeys:columnKeys];
+ NSString *string = [format stringForRows:exportRows includeHeaderRows:headerFlag withColumnKeys:columnKeys];
+ NSLog(@"--> %@ returning formatted string:\n%@", self, string);
+ return string;
}
#endif
#pragma mark -
View
5,689 CSVManipulator.xcodeproj/pp.pbxuser
4,202 additions, 1,487 deletions not shown
View
93 CSVManipulator.xcodeproj/pp.perspectivev3
@@ -234,8 +234,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -277,12 +275,15 @@
<string>2A37F4B8FDCFA73011CA2CEA</string>
<string>2A37F4C3FDCFA73011CA2CEA</string>
<string>1C37FBAC04509CD000000102</string>
+ <string>EE13770A108876B900D31816</string>
+ <string>EE13770B108876B900D31816</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>48</integer>
- <integer>42</integer>
+ <integer>15</integer>
+ <integer>12</integer>
+ <integer>1</integer>
<integer>0</integer>
</array>
</array>
@@ -306,7 +307,7 @@
<real>235</real>
</array>
<key>RubberWindowFrame</key>
- <string>118 102 1430 926 0 0 1680 1028 </string>
+ <string>121 102 1430 926 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -317,12 +318,14 @@
<key>Dock</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>EEF027910D6D8015000532A4</string>
<key>PBXProjectModuleLabel</key>
- <string>Info.plist</string>
+ <string>CSVDocument.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -330,11 +333,11 @@
<key>PBXProjectModuleGUID</key>
<string>EEF027920D6D8015000532A4</string>
<key>PBXProjectModuleLabel</key>
- <string>Info.plist</string>
+ <string>CSVDocument.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>EEF074AF1087880600C05DE9</string>
+ <string>EE1379881088C5EB00D31816</string>
<key>history</key>
<array>
<string>EECAA3C10D803E5200AE2D4A</string>
@@ -346,7 +349,6 @@
<string>EE9E11301042D26300554687</string>
<string>EE9E24081048283F00554687</string>
<string>EE9E241410482B3300554687</string>
- <string>EE64B60C1049E8A1000DF5D2</string>
<string>EE64B6D8104A8803000DF5D2</string>
<string>EE64B712104AADA2000DF5D2</string>
<string>EE64B713104AADA2000DF5D2</string>
@@ -356,38 +358,40 @@
<string>EE64B8F1104AC0BF000DF5D2</string>
<string>EECDB98B104AC66700260BC7</string>
<string>EECDB98C104AC66700260BC7</string>
- <string>EECDBB8D104DA80900260BC7</string>
<string>EE219E59107F71C000E28D4D</string>
<string>EEF0713F108608EF00C05DE9</string>
<string>EEF0715410860BCE00C05DE9</string>
- <string>EEF0715510860BCE00C05DE9</string>
- <string>EEF071691086102700C05DE9</string>
- <string>EEF0716A1086102700C05DE9</string>
<string>EEF071D51086164200C05DE9</string>
<string>EEF071F5108618B000C05DE9</string>
<string>EEF071F6108618B000C05DE9</string>
- <string>EEF0720B10861CB100C05DE9</string>
- <string>EEF0720D10861CB100C05DE9</string>
<string>EEF0720E10861CB100C05DE9</string>
- <string>EEF0720F10861CB100C05DE9</string>
<string>EEF0724B1086225A00C05DE9</string>
<string>EEF0724C1086225A00C05DE9</string>
- <string>EEF0724D1086225A00C05DE9</string>
<string>EEF072851086275100C05DE9</string>
- <string>EEF072A010862AAB00C05DE9</string>
<string>EEF072A110862AAB00C05DE9</string>
- <string>EEF072AD10862B2900C05DE9</string>
<string>EEF072BF10862B8A00C05DE9</string>
<string>EEF072F4108630B900C05DE9</string>
- <string>EEF07359108634CE00C05DE9</string>
- <string>EEF073621086351600C05DE9</string>
- <string>EEF0737B1086376200C05DE9</string>
- <string>EEF073831086383400C05DE9</string>
<string>EEF07453108781AD00C05DE9</string>
- <string>EEF074771087855700C05DE9</string>
- <string>EEF07488108785EC00C05DE9</string>
- <string>EEF074AD1087880600C05DE9</string>
- <string>EEF074AE1087880600C05DE9</string>
+ <string>EE13773B1088A0B700D31816</string>
+ <string>EE13773C1088A0B700D31816</string>
+ <string>EE13778E1088A95400D31816</string>
+ <string>EE1377901088A95400D31816</string>
+ <string>EE1377911088A95400D31816</string>
+ <string>EE1378901088B9D100D31816</string>
+ <string>EE1378911088B9D100D31816</string>
+ <string>EE1378941088B9D100D31816</string>
+ <string>EE1378DE1088BCD400D31816</string>
+ <string>EE1379211088C19900D31816</string>
+ <string>EE1379401088C32E00D31816</string>
+ <string>EE1379411088C32E00D31816</string>
+ <string>EE13795A1088C3F300D31816</string>
+ <string>EE13795B1088C3F300D31816</string>
+ <string>EE1379781088C4F700D31816</string>
+ <string>EE13797A1088C4F700D31816</string>
+ <string>EE13797B1088C4F700D31816</string>
+ <string>EE1379851088C5EB00D31816</string>
+ <string>EE1379861088C5EB00D31816</string>
+ <string>EE1379871088C5EB00D31816</string>
</array>
</dict>
<key>SplitCount</key>
@@ -403,7 +407,7 @@
<key>Frame</key>
<string>{{0, 0}, {1151, 880}}</string>
<key>RubberWindowFrame</key>
- <string>118 102 1430 926 0 0 1680 1028 </string>
+ <string>121 102 1430 926 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -442,7 +446,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {614, 336}}</string>
+ <string>{{10, 27}, {1151, -27}}</string>
+ <key>RubberWindowFrame</key>
+ <string>121 102 1430 926 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
@@ -502,8 +508,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {1151, -27}}</string>
- <key>RubberWindowFrame</key>
- <string>118 102 1430 926 0 0 1680 1028 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -531,11 +535,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>EEF073E3108775BC00C05DE9</string>
+ <string>EE1376741088622D00D31816</string>
<string>1CA23ED40692098700951B8B</string>
- <string>EEF073E4108775BC00C05DE9</string>
+ <string>EE1376751088622D00D31816</string>
<string>EEF027910D6D8015000532A4</string>
- <string>EEF073E5108775BC00C05DE9</string>
+ <string>EE1376761088622D00D31816</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -684,14 +688,14 @@
</array>
<key>TableOfContents</key>
<array>
- <string>EEF073E6108775BC00C05DE9</string>
+ <string>EE1376771088622D00D31816</string>
<string>1CCC7628064C1048000F2A68</string>
<string>1CCC7629064C1048000F2A68</string>
- <string>EEF073E7108775BC00C05DE9</string>
- <string>EEF073E8108775BC00C05DE9</string>
- <string>EEF073E9108775BC00C05DE9</string>
- <string>EEF073EA108775BC00C05DE9</string>
- <string>EEF027910D6D8015000532A4</string>
+ <string>EE1376781088622D00D31816</string>
+ <string>EE1376791088622D00D31816</string>
+ <string>EE13767A1088622D00D31816</string>
+ <string>EE13767B1088622D00D31816</string>
+ <string>EE13767C1088622D00D31816</string>
</array>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
@@ -723,12 +727,13 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>EEF073EC108775BC00C05DE9</string>
- <string>EEF073ED108775BC00C05DE9</string>
+ <string>EEF071321086083800C05DE9</string>
+ <string>EE13768B1088687A00D31816</string>
+ <string>EE13768C1088687A00D31816</string>
<string>/Users/pp/Cocoa/CSVManipulator/CSVManipulator.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>118 102 1430 926 0 0 1680 1028 </string>
+ <string>121 102 1430 926 0 0 1680 1028 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -1560,7 +1565,7 @@
<key>TableOfContents</key>
<array>
<string>EEF071321086083800C05DE9</string>
- <string>EEF071331086083800C05DE9</string>
+ <string>EE1379891088C5EB00D31816</string>
<string>EEF071311086083800C05DE9</string>
</array>
<key>WindowString</key>
View
100 CSVManipulator.xcodeproj/project.pbxproj
@@ -6,6 +6,20 @@
objectVersion = 44;
objects = {
+/* Begin PBXAggregateTarget section */
+ EE1377031088767D00D31816 /* Save IB Files */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = EE13770E108876B900D31816 /* Build configuration list for PBXAggregateTarget "Save IB Files" */;
+ buildPhases = (
+ EE1377021088767D00D31816 /* ShellScript */,
+ );
+ dependencies = (
+ );
+ name = "Save IB Files";
+ productName = "Save IB Files";
+ };
+/* End PBXAggregateTarget section */
+
/* Begin PBXBuildFile section */
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; };
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
@@ -41,6 +55,16 @@
EEF072F01086302800C05DE9 /* DataTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF072EF1086302700C05DE9 /* DataTableHeaderView.m */; };
/* End PBXBuildFile section */
+/* Begin PBXContainerItemProxy section */
+ EE1377061088769500D31816 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = EE1377031088767D00D31816 /* Save IB Files */;
+ remoteInfo = "Save IB Files";
+ };
+/* End PBXContainerItemProxy section */
+
/* Begin PBXFileReference section */
089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
@@ -56,6 +80,7 @@
8D15AC370486D014006FF6A4 /* CSVManipulator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CSVManipulator.app; sourceTree = BUILT_PRODUCTS_DIR; };
EE0D3A280D6F02350009A7B2 /* DataTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTableView.h; sourceTree = "<group>"; };
EE0D3A290D6F02350009A7B2 /* DataTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataTableView.m; sourceTree = "<group>"; };
+ EE1377641088A54D00D31816 /* DataTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTableViewDelegate.h; sourceTree = "<group>"; };
EE15121C0D7F048D0092C02F /* DataTableColumn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTableColumn.h; sourceTree = "<group>"; };
EE15121D0D7F048D0092C02F /* DataTableColumn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataTableColumn.m; sourceTree = "<group>"; };
EE15121E0D7F048D0092C02F /* DataTableHeaderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTableHeaderCell.h; sourceTree = "<group>"; };
@@ -89,7 +114,7 @@
EE9E110F1042BC8A00554687 /* CSVColumn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSVColumn.h; sourceTree = "<group>"; };
EE9E11101042BC8A00554687 /* CSVColumn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSVColumn.m; sourceTree = "<group>"; };
EE9E19531045380800554687 /* CSVDocumentDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSVDocumentDelegate.h; sourceTree = "<group>"; };
- EE9E1DEB1046BDC100554687 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MyDocument.xib; sourceTree = "<group>"; };
+ EE9E1DEB1046BDC100554687 /* English */ = {isa = PBXFileReference; explicitFileType = file.xib; name = English; path = English.lproj/MyDocument.xib; sourceTree = "<group>"; };
EE9E1DF11046BE1F00554687 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
EE9E21211047CF8700554687 /* PPToolbarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPToolbarView.h; sourceTree = "<group>"; };
EE9E21221047CF8700554687 /* PPToolbarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPToolbarView.m; sourceTree = "<group>"; };
@@ -220,6 +245,7 @@
EE1512230D7F04910092C02F /* DataTable */ = {
isa = PBXGroup;
children = (
+ EE1377641088A54D00D31816 /* DataTableViewDelegate.h */,
EE0D3A280D6F02350009A7B2 /* DataTableView.h */,
EE0D3A290D6F02350009A7B2 /* DataTableView.m */,
EE15121C0D7F048D0092C02F /* DataTableColumn.h */,
@@ -283,6 +309,7 @@
isa = PBXNativeTarget;
buildConfigurationList = C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "CSVManipulator" */;
buildPhases = (
+ EE13771B10887D9800D31816 /* ShellScript */,
8D15AC2B0486D014006FF6A4 /* Resources */,
8D15AC300486D014006FF6A4 /* Sources */,
8D15AC330486D014006FF6A4 /* Frameworks */,
@@ -290,6 +317,7 @@
buildRules = (
);
dependencies = (
+ EE1377071088769500D31816 /* PBXTargetDependency */,
);
name = CSVManipulator;
productInstallPath = "$(HOME)/Applications";
@@ -310,6 +338,7 @@
projectRoot = "";
targets = (
8D15AC270486D014006FF6A4 /* CSVManipulator */,
+ EE1377031088767D00D31816 /* Save IB Files */,
);
};
/* End PBXProject section */
@@ -330,6 +359,37 @@
};
/* End PBXResourcesBuildPhase section */
+/* Begin PBXShellScriptBuildPhase section */
+ EE1377021088767D00D31816 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "if [ -f \"/Users/pp/Programming/SaveIBFiles.scpt\" ]; then\n\tosascript \"/Users/pp/Programming/SaveIBFiles.scpt\"\nfi";
+ showEnvVarsInLog = 0;
+ };
+ EE13771B10887D9800D31816 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ comments = "Automatically inserts current revision number";
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "REV=`svnversion -n | sed -e 's/[0-9]+://;s/[^0-9]*//g'`\n/usr/libexec/PlistBuddy -c \"Set :SVNRevision $REV\" ${PROJECT_DIR}/Info.plist";
+ };
+/* End PBXShellScriptBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
8D15AC300486D014006FF6A4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -364,6 +424,14 @@
};
/* End PBXSourcesBuildPhase section */
+/* Begin PBXTargetDependency section */
+ EE1377071088769500D31816 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = EE1377031088767D00D31816 /* Save IB Files */;
+ targetProxy = EE1377061088769500D31816 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin PBXVariantGroup section */
089C165FFE840EACC02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
@@ -469,6 +537,27 @@
};
name = Release;
};
+ EE1377041088767D00D31816 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ PRODUCT_NAME = "Save IB Files";
+ };
+ name = Debug;
+ };
+ EE1377051088767D00D31816 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ PRODUCT_NAME = "Save IB Files";
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -490,6 +579,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ EE13770E108876B900D31816 /* Build configuration list for PBXAggregateTarget "Save IB Files" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ EE1377041088767D00D31816 /* Debug */,
+ EE1377051088767D00D31816 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */;
View
4 CSVWindowController.h
@@ -7,13 +7,14 @@
//
#import <Cocoa/Cocoa.h>
+#import "DataTableViewDelegate.h"
@class MyDocument;
@class PPStringFormat;
@class DataTableView;
@class PPToolbarView;
-@interface CSVWindowController : NSWindowController
+@interface CSVWindowController : NSWindowController <DataTableViewDelegate>
{
MyDocument *document;
@@ -57,7 +58,6 @@
// TableView delegate
- (void) redefineTable;
-- (void) tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn;
- (void) refreshData;
// Progress Sheet Actions
View
70 CSVWindowController.m
@@ -136,8 +136,7 @@ - (void) redefineTable
// remove OLD columns
for (NSTableColumn *oldColumn in [mainTable tableColumns]) {
[[oldColumn headerCell] unbind:@"stringValue"];
- [[oldColumn headerCell] unbind:@"checked"];
- [[oldColumn dataCell] unbind:@"titleCell"];
+ //[oldColumn unbind:@"active"];
[oldColumn unbind:@"value"];
[mainTable removeTableColumn:oldColumn];
}
@@ -150,7 +149,7 @@ - (void) redefineTable
[firstDataCell setTitle:@""];
DataTableColumn *firstTableColumn = [DataTableColumn column];
- [firstTableColumn setIdentifier:@"_isHeaderRowColumn"];
+ [firstTableColumn setIdentifier:@"_theHeaderRowColumn"];
[firstTableColumn setDataCell:firstDataCell];
[firstTableColumn setWidth:firstColumnWidth];
firstTableColumn.resizingMask = NSTableColumnNoResizing;
@@ -186,7 +185,7 @@ - (void) redefineTable
NSString *key = [tableColumn identifier];
// first column with checkboxes
- if ([@"_isHeaderRowColumn" isEqualToString:key]) {
+ if ([@"_theHeaderRowColumn" isEqualToString:key]) {
[tableColumn bind:@"value"
toObject:document.csvDocument.rowController
withKeyPath:@"arrangedObjects.headerRow"
@@ -199,16 +198,16 @@ - (void) redefineTable
toObject:document.csvDocument.rowController
withKeyPath:[NSString stringWithFormat:@"arrangedObjects.rowValues.%@", key]
options:nil];
+ // [tableColumn bind:@"active"
+ // toObject:document.csvDocument.columnDict
+ // withKeyPath:[NSString stringWithFormat:@"%@.active", key]
+ // options:nil]; // does somehow not work. Using the delegate method for now
// also bind column header
[[tableColumn headerCell] bind:@"stringValue"
toObject:document.csvDocument.columnDict
withKeyPath:[NSString stringWithFormat:@"%@.type", key]
options:nil];
- [[tableColumn headerCell] bind:@"checked"
- toObject:document.csvDocument.columnDict
- withKeyPath:[NSString stringWithFormat:@"%@.active", key]
- options:nil];
}
}
}
@@ -216,10 +215,6 @@ - (void) redefineTable
[mainTable setNeedsDisplay:YES]; // !! does not remove redundant column (graphical glitch)
}
-- (void) tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
-{
-
-}
- (void) tableViewSelectionDidChange:(NSNotification *)notification
{
@@ -233,48 +228,37 @@ - (void) tableViewSelectionDidChange:(NSNotification *)notification
}
}
-/*
+
- (void) tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn
{
+ // set sort descriptors
if (mainTable == tableView) {
- NSEvent *current = [[NSApplication sharedApplication] currentEvent];
- NSPoint windowLocation = [current locationInWindow];
- NSPoint viewLocation = [tableView convertPoint:windowLocation fromView:nil];
-
- NSArray *columns = [tableView tableColumns];
- NSUInteger index = [columns indexOfObject:tableColumn];
- NSRect columnRect = [tableView rectOfColumn:index];
-
- // hit the checkbox
- if ((viewLocation.x - columnRect.origin.x) < 20.0) {
- DataTableHeaderCell *cell = (DataTableHeaderCell *)[tableColumn headerCell];
-
- cell.checked = !cell.isChecked;
- [document.csvDocument setHeaderActive:[cell isChecked] forColumnKey:[tableColumn identifier]];
- [tableView setNeedsDisplay:YES];
- }
-
- // hit the column header title
- else {
- // TODO: Improve
- [(DataTableView *)tableView setSortDescriptorsWithColumn:(DataTableColumn *)tableColumn];
- [document setDataIsAtOriginalOrder:NO];
- }
+ [(DataTableView *)tableView setSortDescriptorsWithColumn:(DataTableColumn *)tableColumn];
+ [document setDataIsAtOriginalOrder:NO];
}
}
-// */
+
+
+- (void) tableView:(DataTableView *)tableView didChangeTableColumnState:(DataTableColumn *)tableColumn
+{
+ [document.csvDocument setHeaderActive:tableColumn.active forColumnKey:[tableColumn identifier]];
+}
+
+
- (void) tableView:(NSTableView *)tableView didDragTableColumn:(NSTableColumn *)tableColumn
{
- if(mainTable == tableView) {
- NSEnumerator *walker = [[tableView tableColumns] objectEnumerator];
+ if (mainTable == tableView) {
NSMutableArray *arr = [NSMutableArray array];
- id col;
- while(col = [walker nextObject]) {
- [arr addObject:[col identifier]];
+ // propagate changes to CSVDocument
+ for (DataTableColumn *col in [tableView tableColumns]) {
+ CSVColumn *csvCol = [document.csvDocument.columnDict objectForKey:[col identifier]];
+ if (nil != csvCol) {
+ [arr addObject:csvCol];
+ }
}
+ document.csvDocument.columns = [arr copy];
- //[document setColumnOrder:arr];
document.documentEdited = YES;
}
}
View
12 DataTable/DataTableColumn.h
@@ -7,17 +7,21 @@
//
#import <Cocoa/Cocoa.h>
-@class DataTableHeaderCell;
@interface DataTableColumn : NSTableColumn {
- DataTableHeaderCell *headerCell;
+ BOOL active;
+ NSUInteger sortPriority; // needed to keep track of the sort state
+ BOOL sortAscending; // needed to keep track of the sort state
}
-@property (nonatomic, retain) DataTableHeaderCell *headerCell;
+@property (nonatomic, assign) BOOL active;
+@property (nonatomic, readonly) NSUInteger sortPriority;
+@property (nonatomic, readonly) BOOL sortAscending;
+ (DataTableColumn *) column;
-- (BOOL) handlesClickAtPoint:(NSPoint)point;
+
+-(void) setSortAscending:(BOOL)ascending priority:(NSUInteger)priority; // needed to show sort state of the column
@end
View
51 DataTable/DataTableColumn.m
@@ -8,20 +8,31 @@
#import "DataTableColumn.h"
#import "DataTableHeaderCell.h"
+#import "DataTableView.h"
#import "CSVColumn.h"
@implementation DataTableColumn
-@synthesize headerCell;
+@dynamic active;
+@synthesize sortPriority;
+@synthesize sortAscending;
++ (void) initialize
+{
+ [self exposeBinding:@"active"];
+}
+
- (id) init
{
self = [super init];
if (nil != self) {
- self.headerCell = [[[DataTableHeaderCell alloc] init] autorelease];
- headerCell.checked = YES;
+ sortPriority = 1;
+ DataTableHeaderCell *headerCell = [[[DataTableHeaderCell alloc] init] autorelease];
+ headerCell.myColumn = self;
+ [self setHeaderCell:headerCell];
+ self.active = YES;
}
return self;
@@ -31,21 +42,43 @@ + (DataTableColumn *) column
{
return [[[DataTableColumn alloc] init] autorelease];
}
+#pragma mark -
+
+
+
+#pragma mark KVC
+- (BOOL) active
+{
+ return active;
+}
+- (void) setActive:(BOOL)newActive
+{
+ if (newActive != active) {
+ active = newActive;
+ ((DataTableHeaderCell *)[self headerCell]).checked = active;
+ [(DataTableView *)[self tableView] columnDidChangeCheckedStatus:self];
+ }
+}
+#pragma mark -
+
+
-- (void) dealloc
+#pragma mark Sorting
+- (void) setSortAscending:(BOOL)ascending priority:(NSUInteger)priority
{
- self.headerCell = nil;
+ sortAscending = ascending;
+ sortPriority = priority;
- [super dealloc];
+ [(NSControl *)[[self headerCell] controlView] updateCell:[self headerCell]];
}
#pragma mark -
-#pragma mark Events
-- (BOOL) handlesClickAtPoint:(NSPoint)point
+#pragma mark Utilities
+- (NSString *) description
{
- return NO;
+ return [NSString stringWithFormat:@"%@ <0x%x>, active: %i", NSStringFromClass([self class]), self, active];
}
View
10 DataTable/DataTableHeaderCell.h
@@ -7,26 +7,24 @@
//
#import <Cocoa/Cocoa.h>
+@class DataTableColumn;
@interface DataTableHeaderCell : NSTableHeaderCell {
+ DataTableColumn *myColumn;
+
BOOL showsCheckbox;
BOOL checked;
NSButtonCell *headerCheckbox;
NSTextFieldCell *headerTextfield;
NSRect headerCheckboxRect;
-
- NSUInteger sortPriority; // needed to keep track of the sort state
- BOOL sortAscending; // needed to keep track of the sort state
}
+@property (nonatomic, assign) DataTableColumn *myColumn;
@property (nonatomic, assign) BOOL showsCheckbox;
@property (nonatomic, assign, getter=isChecked) BOOL checked;
@property (nonatomic, retain) NSButtonCell *headerCheckbox;
@property (nonatomic, retain) NSTextFieldCell *headerTextfield;
-@property (nonatomic, readonly) BOOL sortAscending;
-
--(void) setSortAscending:(BOOL)ascending priority:(NSUInteger)priority; // needed to show sort state of the column
@end
View
52 DataTable/DataTableHeaderCell.m
@@ -7,15 +7,24 @@
//
#import "DataTableHeaderCell.h"
+#import "DataTableColumn.h"
+
+
+@interface DataTableHeaderCell ()
+
+- (void) checkboxAction:(NSView *)controlView;
+
+@end
+
@implementation DataTableHeaderCell
+@synthesize myColumn;
@synthesize showsCheckbox;
@synthesize checked;
@synthesize headerCheckbox;
@synthesize headerTextfield;
-@synthesize sortAscending;
- (id) init
@@ -23,12 +32,14 @@ - (id) init
self = [super init];
if (nil != self) {
showsCheckbox = YES;
- sortPriority = 1;
headerCheckboxRect = NSZeroRect;
self.headerCheckbox = [[[NSButtonCell alloc] init] autorelease];
[headerCheckbox setButtonType:NSSwitchButton];
[headerCheckbox setControlSize:NSSmallControlSize];
+ [headerCheckbox setTarget:self];
+ [headerCheckbox setAction:@selector(checkboxAction:)];
+ [headerCheckbox sendActionOn:NSLeftMouseUpMask];
self.headerTextfield = [[[NSTextFieldCell alloc] init] autorelease];
[headerTextfield setTextColor:[NSColor blackColor]];
@@ -39,6 +50,7 @@ - (id) init
- (void) dealloc
{
+ self.myColumn = nil;
self.headerCheckbox = nil;
self.headerTextfield = nil;
@@ -49,8 +61,12 @@ - (id) copyWithZone:(NSZone*)zone
{
DataTableHeaderCell *cell = (DataTableHeaderCell *)[super copyWithZone:zone];
+ cell.myColumn = nil; // to avoid associating with the same column
+ cell->showsCheckbox = showsCheckbox;
cell->headerCheckbox = nil;
cell.headerCheckbox = [headerCheckbox copyWithZone:zone];
+ cell->headerCheckboxRect = headerCheckboxRect;
+ cell.checked = NO; // does not work...
cell->headerTextfield = nil;
cell.headerTextfield = [headerTextfield copyWithZone:zone];
@@ -72,11 +88,25 @@ - (void) setStringValue:(NSString *)newString
- (BOOL) isChecked
{
- return (NSOnState == [headerCheckbox state]);
+ return checked;
}
- (void) setChecked:(BOOL)flag
{
- [headerCheckbox setState:(flag ? NSOnState : NSOffState)];
+ checked = flag;
+
+ // adjust our checkbox
+ if (headerCheckbox) {
+ NSCellStateValue curState = headerCheckbox.state;
+ NSCellStateValue newState = (flag ? NSOnState : NSOffState);
+ if (curState != newState) {
+ [headerCheckbox setState:newState];
+ }
+ }
+
+ // tell our column
+ if (myColumn) {
+ myColumn.active = checked;
+ }
}
#pragma mark -
@@ -106,13 +136,9 @@ - (BOOL) trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(NSView
return [super trackMouse:theEvent inRect:cellFrame ofView:controlView untilMouseUp:untilMouseUp];
}
-
-- (void) setSortAscending:(BOOL)ascending priority:(NSUInteger)priority
+- (void) checkboxAction:(NSView *)controlView
{
- sortAscending = ascending;
- sortPriority = priority;
-
- [(NSControl *)[self controlView] updateCell:self];
+ self.checked = (NSOnState == headerCheckbox.state);
}
#pragma mark -
@@ -129,7 +155,7 @@ - (void) drawWithFrame:(NSRect)cellFrame inView:(NSView*)controlView
topColor = [NSColor colorWithDeviceWhite:0.74 alpha:1.0];
bottomColor = [NSColor colorWithDeviceWhite:0.62 alpha:1.0];
}
- else if (0 == sortPriority) { // active sorting column
+ else if (nil != myColumn && 0 == myColumn.sortPriority) { // active sorting column
NSColor *selectedColor = [NSColor selectedTextBackgroundColor];
topColor = [selectedColor blendedColorWithFraction:0.1 ofColor:[NSColor whiteColor]];
bottomColor = [selectedColor blendedColorWithFraction:0.1 ofColor:[NSColor blackColor]];
@@ -179,7 +205,9 @@ - (void) drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
textFrame.size.width -= 20 + sortIndicator.size.width;
}
[headerTextfield drawWithFrame:textFrame inView:controlView];
- [self drawSortIndicatorWithFrame:cellFrame inView:controlView ascending:sortAscending priority:sortPriority];
+
+ NSUInteger priority = (nil != myColumn) ? myColumn.sortPriority : 1;
+ [self drawSortIndicatorWithFrame:cellFrame inView:controlView ascending:myColumn.sortAscending priority:priority];
}
View
2  DataTable/DataTableView.h
@@ -16,6 +16,6 @@
}
- (void) setSortDescriptorsWithColumn:(DataTableColumn *)tableColumn;
-
+- (void) columnDidChangeCheckedStatus:(DataTableColumn *)tableColumn;
@end
View
23 DataTable/DataTableView.m
@@ -7,6 +7,7 @@
//
#import "DataTableView.h"
+#import "DataTableViewDelegate.h"
#import "MyDocument.h"
#import "DataTableColumn.h"
#import "DataTableHeaderView.h"
@@ -26,7 +27,7 @@ - (void) dealloc
-#pragma mark Tasks
+#pragma mark Awakening
- (void) awakeFromNib
{
// exchange the header view
@@ -36,6 +37,11 @@ - (void) awakeFromNib
[self setHeaderView:newHeader];
}
}
+# pragma mark -
+
+
+
+#pragma mark Column Delegate
// this controls sorting - overridden since we don't want the table to re-sort when we click the checkbox in the header, we...
@@ -55,12 +61,21 @@ - (void) setSortDescriptorsWithColumn:(DataTableColumn *)tableColumn
// make the header cell indicate sort status
BOOL ascending = NO;
for (DataTableColumn *column in [self tableColumns]) {
- ascending = column.headerCell.sortAscending;
+ ascending = column.sortAscending;
if (column == tableColumn) {
- [column.headerCell setSortAscending:!ascending priority:0];
+ [column setSortAscending:!ascending priority:0];
}
else {
- [column.headerCell setSortAscending:ascending priority:1];
+ [column setSortAscending:ascending priority:1];
+ }
+ }
+}
+
+- (void) columnDidChangeCheckedStatus:(DataTableColumn *)tableColumn
+{
+ if (nil != tableColumn) {
+ if (self.delegate && [self.delegate respondsToSelector:@selector(tableView:didChangeTableColumnState:)]) {
+ [self.delegate tableView:self didChangeTableColumnState:tableColumn];
}
}
}
View
22 DataTable/DataTableViewDelegate.h
@@ -0,0 +1,22 @@
+//
+// DataTableViewDelegate.h
+// CSVManipulator
+//
+// Created by Pascal Pfiffner on 10/16/09.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+
+#import <Cocoa/Cocoa.h>
+@class DataTableView;
+@class DataTableColumn;
+
+
+@protocol DataTableViewDelegate <NSObject>
+
+@optional
+
+- (void) tableView:(DataTableView *)tableView didChangeTableColumnState:(DataTableColumn *)tableColumn;
+
+
+@end
View
727 English.lproj/MainMenu.xib
@@ -1,19 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">10A432</string>
- <string key="IBDocument.InterfaceBuilderVersion">677</string>
- <string key="IBDocument.AppKitVersion">1038</string>
+ <string key="IBDocument.SystemVersion">10B504</string>
+ <string key="IBDocument.InterfaceBuilderVersion">732</string>
+ <string key="IBDocument.AppKitVersion">1038.2</string>
<string key="IBDocument.HIToolboxVersion">437.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="NS.object.0">732</string>
+ </object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="81"/>
<integer value="380"/>
+ <integer value="81"/>
</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">
@@ -86,7 +89,7 @@
</object>
<object class="NSMenuItem" id="609285721">
<reference key="NSMenu" ref="110575045"/>
- <string type="base64-UTF8" key="NSTitle">UHJlZmVyZW5jZXPigKY</string>
+ <string key="NSTitle">Preferences…</string>
<string key="NSKeyEquiv">,</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -216,7 +219,7 @@
</object>
<object class="NSMenuItem" id="722745758">
<reference key="NSMenu" ref="720053764"/>
- <string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string>
+ <string key="NSTitle">Open…</string>
<string key="NSKeyEquiv">o</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -280,7 +283,7 @@
</object>
<object class="NSMenuItem" id="117038363">
<reference key="NSMenu" ref="720053764"/>
- <string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string>
+ <string key="NSTitle">Save As…</string>
<string key="NSKeyEquiv">S</string>
<int key="NSKeyEquivModMask">1179648</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -327,7 +330,7 @@
</object>
<object class="NSMenuItem" id="49223823">
<reference key="NSMenu" ref="720053764"/>
- <string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string>
+ <string key="NSTitle">Print…</string>
<string key="NSKeyEquiv">p</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -450,7 +453,7 @@
<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="NSTitle">Find…</string>
<string key="NSKeyEquiv">f</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -515,7 +518,7 @@
<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="NSTitle">Show Spelling…</string>
<string key="NSKeyEquiv">:</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -693,7 +696,7 @@
</object>
<object class="NSMenuItem" id="237841660">
<reference key="NSMenu" ref="466310130"/>
- <string type="base64-UTF8" key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string>
+ <string key="NSTitle">Customize Toolbar…</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -803,7 +806,7 @@
<string key="NSContents">Filename:</string>
<object class="NSFont" key="NSSupport" id="871166338">
<string key="NSName">LucidaGrande</string>
- <double key="NSSize">1.300000e+01</double>
+ <double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="564666629"/>
@@ -813,7 +816,7 @@
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="991203464">
@@ -1202,7 +1205,7 @@
<int key="objectID">-2</int>
<reference key="object" ref="1021"/>
<reference key="parent" ref="0"/>
- <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+ <string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
@@ -1855,8 +1858,6 @@
<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>103.IBPluginDependency</string>
<string>103.ImportedFromIB2</string>
@@ -2002,8 +2003,6 @@
<string>354.IBPluginDependency</string>
<string>354.ImportedFromIB2</string>
<string>374.IBPluginDependency</string>
- <string>375.IBPluginDependency</string>
- <string>379.IBPluginDependency</string>
<string>380.IBEditorWindowLastContentRect</string>
<string>380.IBPluginDependency</string>
<string>381.IBPluginDependency</string>
@@ -2051,123 +2050,121 @@
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>com.apple.InterfaceBuilderKit</string>
- <string>com.apple.InterfaceBuilderKit</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <integer value="1" id="9"/>
+ <integer value="1"/>
<string>{{579, 813}, {217, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{596, 852}, {216, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{698, 732}, {146, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{522, 812}, {146, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{436, 809}, {64, 6}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{598, 573}, {275, 83}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{608, 612}, {275, 83}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{348, 593}, {250, 243}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{197, 734}, {243, 243}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{598, 573}, {167, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{608, 612}, {167, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{608, 612}, {241, 103}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{508, 763}, {197, 73}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{525, 802}, {197, 73}}</string>
<string>{{296, 836}, {478, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{74, 862}</string>
<string>{{11, 977}, {478, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2183,21 +2180,19 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{598, 573}, {215, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{608, 612}, {215, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{224, 426}, {500, 100}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -2207,41 +2202,41 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{335, 652}, {247, 183}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{23, 794}, {245, 183}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
- <string>{{440, 593}, {231, 243}}</string>
+ <integer value="1"/>
+ <string>{{440, 593}, {228, 243}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>{{155, 774}, {199, 203}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <reference ref="9"/>
+ <integer value="1"/>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
@@ -2269,17 +2264,8 @@
<string key="className">AppController</string>
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="actions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>newDocumentFromClipboard:</string>
- <string>newGraphWindow:</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- </object>
+ <string key="NS.key.0">newDocumentFromClipboard:</string>
+ <string key="NS.object.0">id</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
@@ -2331,8 +2317,533 @@
</object>
</object>
</object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSActionCell</string>
+ <string key="superclassName">NSCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1062402119">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="274984020">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="404193408">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSBrowser</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSCell</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="106733057">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSDocument</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>printDocument:</string>
+ <string>revertDocumentToSaved:</string>
+ <string>runPageLayout:</string>
+ <string>saveDocument:</string>
+ <string>saveDocumentAs:</string>
+ <string>saveDocumentTo:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSDocument</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSDocumentController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>clearRecentDocuments:</string>
+ <string>newDocument:</string>
+ <string>openDocument:</string>
+ <string>saveAllDocuments:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSFormatter</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMatrix</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenu</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="538393112">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenuItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="339022315">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMovieView</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="1062402119"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="274984020"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="404193408"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="106733057"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="538393112"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="59858797">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="23854807">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTableView</string>
+ <string key="superclassName">NSControl</string>
+ <reference key="sourceIdentifier" ref="59858797"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSText</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSText.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextField</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextFieldCell</string>
+ <string key="superclassName">NSActionCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <reference key="sourceIdentifier" ref="339022315"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <string key="superclassName">NSResponder</string>
+ <reference key="sourceIdentifier" ref="23854807"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+ </object>
+ </object>
+ </object>
</object>
<int key="IBDocument.localizationMode">0</int>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1050" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1050" key="NS.object.0"/>
+ </object>
+ <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>
<string key="IBDocument.LastKnownRelativeProjectPath">../CSVManipulator.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
View
34 English.lproj/MyDocument.xib
@@ -12,7 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="100021"/>
+ <integer value="100296"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -1299,20 +1299,6 @@
<reference key="parent" ref="779565336"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">100299</int>
- <reference key="object" ref="95163717"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="185441199"/>
- </object>
- <reference key="parent" ref="173972894"/>
- </