diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index a8231053e..f403f3905 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -3395,7 +3395,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad If the dataview resigning triggers the action (as CPTextField does), we come right back here and start an infinite loop. So we have to check this flag first. */ - if (_editingCellIndex === nil) + if ([sender isKindOfClass:[CPTextField class]] && _editingCellIndex === nil) return; _editingCellIndex = nil; diff --git a/Tests/Manual/TableTest/EditingControls/AppController.j b/Tests/Manual/TableTest/EditingControls/AppController.j new file mode 100644 index 000000000..451d4ba94 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/AppController.j @@ -0,0 +1,83 @@ +/* + * AppController.j + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; //this "outlet" is connected automatically by the Cib + @outlet CPTableView tableView; + @outlet CPArrayController arrayController; + + CPArray content @accessors; +} + +- (void)awakeFromCib +{ + var keys = [[tableView tableColumns] valueForKey:@"identifier"]; + [self setContent:[ + [CPDictionary dictionaryWithObjects:[YES, NO, @"NO"] forKeys:keys], + [CPDictionary dictionaryWithObjects:[NO, YES, @"YES"] forKeys:keys] + ]]; + + [self _selectSegment:0]; + [theWindow setFullPlatformWindow:YES]; +} + +- (IBAction)selectSegment:(id)sender +{ + [self _selectSegment:[sender selectedSegment]]; +} + +- (void)_selectSegment:(CPInteger)anIndex +{ + var EnumerateColumns; + + if (anIndex == 0) + { + EnumerateColumns = function(column, idx) + { + [column bind:CPValueBinding toObject:arrayController withKeyPath:(@"arrangedObjects." + [column identifier]) options:nil]; + }; + + [tableView setDataSource:nil]; + } + else + { + EnumerateColumns = function(column, idx) + { + [column unbind:CPValueBinding]; + }; + + [tableView setDataSource:self]; + } + + [[tableView tableColumns] enumerateObjectsUsingBlock:EnumerateColumns]; +} + +- (IBAction)logContent:(id)sender +{ + CPLogConsole([content description]); +} + +- (int)numberOfRowsInTableView:(id)aTableView +{ + return [content count]; +} + +- (id)tableView:(id)aTableView objectValueForTableColumn:(CPTableColumn)aTableColumn row:(int)aRow +{ + return [[content objectAtIndex:aRow] objectForKey:[aTableColumn identifier]]; +} + +- (void)tableView:(CPTableView)aTableView setObjectValue:(id)aValue forTableColumn:(CPTableColumn)aTableColumn row:(int)aRow +{ + [[content objectAtIndex:aRow] setObject:aValue forKey:[aTableColumn identifier]]; +} + +@end diff --git a/Tests/Manual/TableTest/EditingControls/Info.plist b/Tests/Manual/TableTest/EditingControls/Info.plist new file mode 100644 index 000000000..96cf4eeb7 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + issue1593 + + diff --git a/Tests/Manual/TableTest/EditingControls/Jakefile b/Tests/Manual/TableTest/EditingControls/Jakefile new file mode 100644 index 000000000..70632f181 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"); + +app ("issue1593", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "issue1593.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("issue1593"); + task.setIdentifier("com.yourcompany.issue1593"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("issue1593"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["issue1593"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "issue1593", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "issue1593", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "issue1593")); + OS.system(["press", "-f", FILE.join("Build", "Release", "issue1593"), FILE.join("Build", "Deployment", "issue1593")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "issue1593")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "issue1593"), FILE.join("Build", "Desktop", "issue1593", "issue1593.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "issue1593", "issue1593.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "issue1593")); + print("----------------------------"); +} diff --git a/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib new file mode 100644 index 000000000..06996f31d --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib @@ -0,0 +1,4 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;23E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;50E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;51E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;52E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;32E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;56E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;58E;E;D;K;10;$classnameS;21;CPCibBindingConnectorK;8;$classesA;S;21;CPCibBindingConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;50E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;60E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;51E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;64E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;65E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;66E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;67E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;68E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;70E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;70E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;71E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;D;K;10;$classnameS;12;CPScrollViewK;8;$classesA;S;12;CPScrollViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;73E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;74E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;75E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;79E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;2;80E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;41E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;38E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;81E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;82E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;82E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;82E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;83E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;84E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;69E;E;D;K;10;$classnameS;11;CPTableViewK;8;$classesA;S;11;CPTableViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;12;$agrid-colorD;K;6;CP$UIDd;2;89E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;24;CPTableViewDataSourceKeyD;K;6;CP$UIDd;1;0E;K;22;CPTableViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;23;CPTableViewRowHeightKeyD;K;6;CP$UIDd;2;91E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;2;92E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;69E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;90E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;93E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;82E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;2;82E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;2;82E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;82E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;2;94E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;89E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;69E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;93E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;2;96E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;40E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTableColumnK;8;$classesA;S;13;CPTableColumnS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;2;97E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;2;98E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;99E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;100E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;102E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;104E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;106E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;107E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;81E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;108E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;109E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;110E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;111E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;112E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;81E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;108E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;113E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;114E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPScrollerK;8;$classesA;S;10;CPScrollerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;120E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;69E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;121E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;17;CPTableHeaderViewK;8;$classesA;S;17;CPTableHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;80E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;122E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;80E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;123E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;32E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;127E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;69E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;128E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;90E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;134E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;93E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;93E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;93E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;136E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;84E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;90E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPButtonK;8;$classesA;S;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;139E;K;6;$afontD;K;6;CP$UIDd;3;140E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;69E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;141E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;142E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;143E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;69E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;84E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;18;CPSegmentedControlK;8;$classesA;S;18;CPSegmentedControlS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;46E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;6;$afontD;K;6;CP$UIDd;3;140E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;69E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;147E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;2;69E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;148E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;149E;E;D;K;10;$classnameS;17;CPArrayControllerK;8;$classesA;S;17;CPArrayControllerS;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;49E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;150E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;2;82E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;2;93E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;2;82E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;2;82E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;82E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;2;82E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;2;82E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;2;93E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;2;93E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;15;arrayControllerS;9;tableViewS;9;theWindowS;11;logContent:S;14;selectSegment:S;21;contentArray: contentS;12;contentArrayS;7;contentD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{547, 308}, {728, 366}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {728, 366}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;47E;E;E;S;6;normalS;22;{{20, 81}, {239, 246}}S;20;{{0, 0}, {239, 246}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;83E;E;E;d;2;36S;10;scrollviewD;K;10;$classnameS;10;CPClipViewK;8;$classesA;S;10;CPClipViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;78E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;151E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;152E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;32E;E;D;K;6;$classD;K;6;CP$UIDd;2;78E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;156E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;40E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;d;1;2S;20;{{0, 0}, {237, 228}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;158E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;159E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;E;E;D;K;10;$classnameS;13;_CPCornerViewK;8;$classesA;S;13;_CPCornerViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;95E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;160E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;161E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;162E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;8;checkboxd;2;85d;2;40d;4;1000D;K;10;$classnameS;24;_CPTableColumnHeaderViewK;8;$classesA;S;24;_CPTableColumnHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;163E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;90E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;165E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;103E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;166E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;84E;K;16;$aimage-positionD;K;6;CP$UIDd;2;84E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;90E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;167E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;142E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;148E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;148E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;84E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;169E;E;d;1;3S;4;textd;2;80f;22;3.4028234663852886e+38D;K;6;$classD;K;6;CP$UIDd;3;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;69E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;171E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;172E;K;6;$afontD;K;6;CP$UIDd;3;174E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;90E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;15;$acontent-insetD;K;6;CP$UIDd;3;176E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;142E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;90E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;142E;E;S;6;buttond;2;60D;K;6;$classD;K;6;CP$UIDd;3;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;84E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;178E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;179E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;180E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;139E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;84E;K;16;$aimage-positionD;K;6;CP$UIDd;2;69E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;7;$aimageD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;182E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;183E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;143E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;184E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;69E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;169E;E;S;19;{{1, 1}, {280, 15}}S;19;{{0, 0}, {280, 15}}d;1;8d;11;-2147483648S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9916317991631799S;19;{{0, 0}, {237, 23}}S;14;tableHeaderRowS;23;{{224, 127}, {15, 102}}S;19;{{0, 0}, {15, 102}}S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9342105263157895S;23;{{294, 129}, {371, 99}}S;19;{{0, 0}, {371, 99}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;185E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;184E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;S;164;Steps: In the table, Edit a CPTextField or click a CPButton . + Log Model and see the result in the console. + +Expected: The model should reflect UI changes.d;4;3072D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;186E;E;S;22;{{295, 79}, {166, 24}}S;19;{{0, 0}, {166, 24}}S;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;185E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;184E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;S;9;Log ModelS;0;d;2;14S;22;{{272, 19}, {177, 24}}S;19;{{0, 0}, {177, 24}}S;17;segmented-controlD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;E;E;d;1;1S;13;AppControllerS;19;CPMutableDictionaryS;20;{{1, 1}, {237, 228}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;190E;E;S;21;{{1, 229}, {237, 17}}S;19;{{0, 0}, {237, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;148E;E;E;S;22;{{224, 223}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;193E;E;E;S;12;columnHeaderS;9;Check BoxS;9;check-boxS;5;Checkf;3;0.5f;4;0.05D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;E;E;S;10;Text FieldS;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;173E;K;4;nameD;K;6;CP$UIDd;3;195E;K;12;defaultValueD;K;6;CP$UIDd;3;133E;K;6;valuesD;K;6;CP$UIDd;3;196E;E;D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;175E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;197E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;198E;E;E;S;6;ButtonS;19;{{4, 6}, {-12, 24}}S;19;{{0, 0}, {-12, 24}}D;K;6;$classD;K;6;CP$UIDd;3;173E;K;4;nameD;K;6;CP$UIDd;3;199E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;200E;K;5;valueD;K;6;CP$UIDd;3;201E;E;S;2;OnS;3;Offd;2;12S;17;Arial, sans-serifD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;148E;E;E;D;K;10;$classnameS;14;_CPSegmentItemK;8;$classesA;S;14;_CPSegmentItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;187E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;203E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;2;82E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;2;82E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;2;69E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;3;187E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;204E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;2;93E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;2;82E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;148E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;E;E;f;3;0.8D;K;10;$classnameS;19;_CPImageAndTextViewK;8;$classesA;S;19;_CPImageAndTextViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;102E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;102E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;109E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;109E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;62E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;140E;K;6;normalD;K;6;CP$UIDd;3;133E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;5;imageS;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;206E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;207E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;f;18;0.6862745098039216S;8;BindingsS;11;Data Sourced;2;18S;13;Lucida Granded;2;13E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib new file mode 100644 index 000000000..362d8f7e2 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib @@ -0,0 +1,759 @@ + + + + 1070 + 11E53 + 2809 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2809 + + + NSArrayController + NSButton + NSButtonCell + NSCustomObject + NSScrollView + NSScroller + NSSegmentedCell + NSSegmentedControl + NSTableColumn + NSTableHeaderView + NSTableView + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{547, 354}, {728, 366}} + 1954021376 + Window + NSWindow + + + + + 256 + + + + 268 + + + + 2304 + + + + 256 + {237, 228} + + + + _NS:13 + YES + + + 256 + {237, 17} + + + + _NS:16 + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + _NS:19 + + + + button + 60 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Button + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 67108864 + 134217728 + On + + LucidaGrande + 13 + 1044 + + _NS:9 + + -1229570048 + 1 + + Off + + 200 + 25 + + 3 + YES + YES + + + + checkbox + 85 + 40 + 1000 + + 75497536 + 2048 + Check Box + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67108864 + 268435456 + Check + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + 3 + YES + YES + + + + text + 80 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Text Field + + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -700448768 + + + 4 + 15 + 0 + YES + 0 + 1 + + + {{1, 17}, {237, 228}} + + + + _NS:11 + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:58 + + _doScroller: + 0.93421052631578949 + + + + -2147483392 + {{1, 230}, {280, 15}} + + + + _NS:60 + YES + 1 + + _doScroller: + 0.99163179916317989 + + + + 2304 + + + + {{1, 0}, {237, 17}} + + + + _NS:15 + + + 4 + + + + {{20, 39}, {239, 246}} + + + + _NS:9 + 133810 + + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{294, 138}, {371, 99}} + + + + _NS:1549 + YES + + 68157504 + 272630784 + U3RlcHM6IEluIHRoZSB0YWJsZSwgRWRpdCBhIENQVGV4dEZpZWxkIG9yIGNsaWNrIGEgQ1BCdXR0b24g +LgogICAgICAgICAgTG9nIE1vZGVsIGFuZCBzZWUgdGhlIHJlc3VsdCBpbiB0aGUgY29uc29sZS4KCkV4 +cGVjdGVkOiBUaGUgbW9kZWwgc2hvdWxkIHJlZmxlY3QgVUkgY2hhbmdlcy4 + + _NS:1549 + + + 6 + System + controlColor + + + + + + + + 268 + {{291, 257}, {178, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Log Model + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{276, 323}, {177, 24}} + + + + _NS:9 + YES + + 67108864 + 0 + + _NS:9 + + + + Bindings + YES + 0 + + + Data Source + 1 + 0 + + + 1 + + + + {728, 366} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + YES + + + AppController + + + YES + + YES + YES + YES + YES + YES + + + + + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + logContent: + + + + 478 + + + + arrayController + + + + 493 + + + + tableView + + + + 494 + + + + selectSegment: + + + + 495 + + + + contentArray: content + + + + + + contentArray: content + contentArray + content + 2 + + + 473 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + + + + + + 372 + + + + + + + + + + + 450 + + + + + 460 + + + + + + + + + + + 461 + + + + + + + + + + 462 + + + + + 463 + + + + + 464 + + + + + 465 + + + + + + + + 469 + + + + + + + + 470 + + + + + 471 + + + + + 472 + + + + + 476 + + + + + + + + 477 + + + + + 479 + + + + + + + + 480 + + + + + 491 + + + + + + + + 492 + + + + + 505 + + + + + + + + 507 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 507 + + + + + AppController + NSObject + + id + id + + + + logContent: + id + + + selectSegment: + id + + + + NSArrayController + NSTableView + NSWindow + + + + arrayController + NSArrayController + + + tableView + NSTableView + + + theWindow + NSWindow + + + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/Tests/Manual/TableTest/EditingControls/Resources/spinner.gif b/Tests/Manual/TableTest/EditingControls/Resources/spinner.gif new file mode 100644 index 000000000..06dbc2bc2 Binary files /dev/null and b/Tests/Manual/TableTest/EditingControls/Resources/spinner.gif differ diff --git a/Tests/Manual/TableTest/EditingControls/index-debug.html b/Tests/Manual/TableTest/EditingControls/index-debug.html new file mode 100644 index 000000000..2d6241861 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/index-debug.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + issue1593 + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/TableTest/EditingControls/index.html b/Tests/Manual/TableTest/EditingControls/index.html new file mode 100644 index 000000000..6f2d2308d --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + issue1593 + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/TableTest/EditingControls/main.j b/Tests/Manual/TableTest/EditingControls/main.j new file mode 100644 index 000000000..ba6e0a66e --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}