cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From torehal...@apache.org
Subject svn commit: r433339 [1/3] - in /incubator/cayenne/sandbox/CocoaCayenne: ./ CAYClient.xcodeproj/ English.lproj/ English.lproj/MainMenu.nib/ English.lproj/MainMenu~.nib/ Japanese.lproj/ Japanese.lproj/MainMenu.nib/
Date Mon, 21 Aug 2006 20:09:25 GMT
Author: torehalset
Date: Mon Aug 21 13:09:22 2006
New Revision: 433339

URL: http://svn.apache.org/viewvc?rev=433339&view=rev
Log:
first import - try 2

Added:
    incubator/cayenne/sandbox/CocoaCayenne/AppController.h
    incubator/cayenne/sandbox/CocoaCayenne/AppController.m
    incubator/cayenne/sandbox/CocoaCayenne/Artist.h
    incubator/cayenne/sandbox/CocoaCayenne/Artist.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/
    incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.mode1
    incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.pbxuser
    incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/project.pbxproj
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientConnection.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientConnection.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientMessage.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientMessage.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientObjRelationship.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYClientObjRelationship.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYClient_Prefix.pch
    incubator/cayenne/sandbox/CocoaCayenne/CAYEntityResolver.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYEntityResolver.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYGenericResponse.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYGenericResponse.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYHessianConnection.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYHessianConnection.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYNamedQuery.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYNamedQuery.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjEntity.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjEntity.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjectContext.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjectContext.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjectId.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYObjectId.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYPersistentObject.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYPersistentObject.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYQuery.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYQuery.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYQueryMessage.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYQueryMessage.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYRelationshipQuery.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYRelationshipQuery.m
    incubator/cayenne/sandbox/CocoaCayenne/CAYRemoteSession.h
    incubator/cayenne/sandbox/CocoaCayenne/CAYRemoteSession.m
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/InfoPlist.strings   (with props)
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu.nib/
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu.nib/classes.nib
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu.nib/info.nib
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu.nib/keyedobjects.nib   (with props)
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu~.nib/
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu~.nib/classes.nib
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu~.nib/info.nib
    incubator/cayenne/sandbox/CocoaCayenne/English.lproj/MainMenu~.nib/keyedobjects.nib   (with props)
    incubator/cayenne/sandbox/CocoaCayenne/Gallery.h
    incubator/cayenne/sandbox/CocoaCayenne/Gallery.m
    incubator/cayenne/sandbox/CocoaCayenne/Info.plist
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/InfoPlist.strings   (with props)
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/MainMenu.nib/
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/MainMenu.nib/classes.nib
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/MainMenu.nib/info.nib
    incubator/cayenne/sandbox/CocoaCayenne/Japanese.lproj/MainMenu.nib/keyedobjects.nib   (with props)
    incubator/cayenne/sandbox/CocoaCayenne/Painting.h
    incubator/cayenne/sandbox/CocoaCayenne/Painting.m
    incubator/cayenne/sandbox/CocoaCayenne/main.m

Added: incubator/cayenne/sandbox/CocoaCayenne/AppController.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/AppController.h?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/AppController.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/AppController.h Mon Aug 21 13:09:22 2006
@@ -0,0 +1,12 @@
+/* AppController */
+
+#import <Cocoa/Cocoa.h>
+
+@interface AppController : NSObject
+{
+	IBOutlet NSArrayController *queryResultController;
+}
+
+- (IBAction)query:(id)sender;
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/AppController.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/AppController.m?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/AppController.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/AppController.m Mon Aug 21 13:09:22 2006
@@ -0,0 +1,94 @@
+#import <HessianObjC/BBSHessianObjC.h>
+#import "AppController.h"
+#import "CAYBootstrapMessage.h"
+#import "CAYNamedQuery.h"
+#import "CAYQueryMessage.h"
+#import "CAYObjectContext.h"
+#import "CAYHessianConnection.h"
+#import "CAYObjEntity.h"
+
+@implementation AppController
+
+- (IBAction)query:(id)sender
+{
+	NSLog(@"start query..");
+	
+	// map cayenne java class name to local class name
+	NSMutableDictionary *classMapping = [[NSMutableDictionary dictionary] retain];
+	//[classMapping setObject:@"CAYRemoteSession" forKey:@"org.objectstyle.cayenne.remote.RemoteSession"];
+	[classMapping setObject:@"CAYBootstrapMessage" forKey:@"org.objectstyle.cayenne.remote.BootstrapMessage"];
+	[classMapping setObject:@"CAYQueryMessage" forKey:@"org.objectstyle.cayenne.remote.QueryMessage"];
+	[classMapping setObject:@"CAYNamedQuery" forKey:@"org.objectstyle.cayenne.query.NamedQuery"];
+	[classMapping setObject:@"CAYRelationshipQuery" forKey:@"org.objectstyle.cayenne.query.RelationshipQuery"];
+	[classMapping setObject:@"CAYGenericResponse" forKey:@"org.objectstyle.cayenne.util.GenericResponse"];
+	[classMapping setObject:@"CAYObjectId" forKey:@"org.objectstyle.cayenne.ObjectId"];
+	[classMapping setObject:@"CAYObjEntity" forKey:@"org.objectstyle.cayenne.map.ObjEntity"];
+	[classMapping setObject:@"CAYClientObjRelationship" forKey:@"org.objectstyle.cayenne.map.ClientObjRelationship"];
+	//[classMapping setObject:@"CAYDataMap" forKey:@"org.objectstyle.cayenne.map.DataMap"];
+	
+	// connect to the server
+	// TODO: basic authentication and/or session management
+	NSURL * url = [NSURL URLWithString:@"http://localhost:8080/cayenne-service"];
+    BBSHessianProxy * proxy = [[BBSHessianProxy alloc] initWithUrl:url];
+	[BBSHessianProxy setClassMapping:classMapping];
+	
+	CAYHessianConnection *conn = [[CAYHessianConnection alloc] init];
+	[conn setProxy:proxy];
+	[proxy release];
+	
+	CAYObjectContext *ctxt = [[CAYObjectContext alloc] init];
+	[ctxt setConnection:conn];
+	[conn release];
+	
+    id result1 = [proxy callSynchronous:@"establishSession" withParameters:nil];
+	NSLog(@"result1 %@", result1);
+	
+	CAYBootstrapMessage *bootstrapMsg = [[CAYBootstrapMessage alloc] init];
+	id bootresult = [conn sendMessage:bootstrapMsg];
+	//NSLog(@"bootresult: %@", bootresult);
+	[bootstrapMsg release];
+	
+	id datamaps = [bootresult valueForKey:@"maps"];
+	// TODO: handle more than one map?
+	id datamap = [datamaps objectAtIndex:0];
+	NSLog(@"datamap.name: %@", [datamap valueForKey:@"name"]);
+	
+	id objEntityMap = [datamap valueForKey:@"objEntityMap"];
+	// objEntityMap: 
+	//   - key: Artist, value ObjEntity
+	// objEntity:
+	//   - key: className, value: cayenne.tutorial.client.Artist
+    //   - key: "relationships", value: NSArray of ClientObjRelationship
+	// ClientObjRelationship:
+	//   - key: "paintings", 
+	
+	NSEnumerator *enumerator = [objEntityMap keyEnumerator];
+	NSString *entityName;
+	while(entityName = [enumerator nextObject])
+	{
+        // TODO: create a CAYDataMap so that it is not mapped to a NSDictionary with the special
+        // hessianClassName entry
+		if(![entityName isEqualToString:@"hessianClassName"])
+		{
+			NSLog(@"found entitya %@", entityName);
+			CAYObjEntity *entity = [objEntityMap objectForKey:entityName];
+			NSLog(@"mapping client %@ to server %@", [entity valueForKey:@"name"], [entity valueForKey:@"className"]);
+		}
+	}
+	
+		
+	CAYNamedQuery *query = [[CAYNamedQuery alloc] init];
+	[query setName:@"objcquery"];
+	
+	NSArray *rows = [ctxt performQyery:query];
+	
+	[queryResultController removeObjects:[queryResultController arrangedObjects]];
+	[queryResultController addObjects:rows];
+	
+	[query release];
+	[classMapping release];
+	[ctxt release];
+	
+}
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/Artist.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/Artist.h?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/Artist.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/Artist.h Mon Aug 21 13:09:22 2006
@@ -0,0 +1,16 @@
+//
+//  Artist.h
+//  CAYClient
+//
+//  Created by Tore Halset on 8/14/06.
+//  Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYPersistentObject.h"
+
+@interface Artist : CAYPersistentObject {
+
+}
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/Artist.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/Artist.m?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/Artist.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/Artist.m Mon Aug 21 13:09:22 2006
@@ -0,0 +1,14 @@
+//
+//  Artist.m
+//  CAYClient
+//
+//  Created by Tore Halset on 8/14/06.
+//  Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "Artist.h"
+
+
+@implementation Artist
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.h?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.h Mon Aug 21 13:09:22 2006
@@ -0,0 +1,16 @@
+//
+//  BootstrapMessage.h
+//  CAYClient
+//
+//  Created by Tore Halset on 8/12/06.
+//  Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYClientMessage.h"
+
+@interface CAYBootstrapMessage : CAYClientMessage <NSCoding> {
+
+}
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.m?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CAYBootstrapMessage.m Mon Aug 21 13:09:22 2006
@@ -0,0 +1,25 @@
+//
+//  BootstrapMessage.m
+//  CAYClient
+//
+//  Created by Tore Halset on 8/12/06.
+//  Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYBootstrapMessage.h"
+
+
+@implementation CAYBootstrapMessage
+
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+	[super init];
+	return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+}
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.mode1
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.mode1?rev=433339&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.mode1 (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CAYClient.xcodeproj/halset.mode1 Mon Aug 21 13:09:22 2006
@@ -0,0 +1,1473 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActivePerspectiveName</key>
+	<string>Project</string>
+	<key>AllowedModules</key>
+	<array>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXSmartGroupTreeModule</string>
+			<key>Name</key>
+			<string>Groups and Files Outline View</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXNavigatorGroup</string>
+			<key>Name</key>
+			<string>Editor</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCTaskListModule</string>
+			<key>Name</key>
+			<string>Task List</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDetailModule</string>
+			<key>Name</key>
+			<string>File and Smart Group Detail Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXBuildResultsModule</string>
+			<key>Name</key>
+			<string>Detailed Build Results Viewer</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXProjectFindModule</string>
+			<key>Name</key>
+			<string>Project Batch Find Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXRunSessionModule</string>
+			<key>Name</key>
+			<string>Run Log</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXBookmarksModule</string>
+			<key>Name</key>
+			<string>Bookmarks Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXClassBrowserModule</string>
+			<key>Name</key>
+			<string>Class Browser</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXCVSModule</string>
+			<key>Name</key>
+			<string>Source Code Control Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXDebugBreakpointsModule</string>
+			<key>Name</key>
+			<string>Debug Breakpoints Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>XCDockableInspector</string>
+			<key>Name</key>
+			<string>Inspector</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>n</string>
+			<key>Module</key>
+			<string>PBXOpenQuicklyModule</string>
+			<key>Name</key>
+			<string>Open Quickly Tool</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugSessionModule</string>
+			<key>Name</key>
+			<string>Debugger</string>
+		</dict>
+		<dict>
+			<key>BundleLoadPath</key>
+			<string></string>
+			<key>MaxInstances</key>
+			<string>1</string>
+			<key>Module</key>
+			<string>PBXDebugCLIModule</string>
+			<key>Name</key>
+			<string>Debug Console</string>
+		</dict>
+	</array>
+	<key>Description</key>
+	<string>DefaultDescriptionKey</string>
+	<key>DockingSystemVisible</key>
+	<false/>
+	<key>Extension</key>
+	<string>mode1</string>
+	<key>FavBarConfig</key>
+	<dict>
+		<key>PBXProjectModuleGUID</key>
+		<string>4417DB570A8D2FCE000FE4DB</string>
+		<key>XCBarModuleItemNames</key>
+		<dict/>
+		<key>XCBarModuleItems</key>
+		<array/>
+	</dict>
+	<key>FirstTimeWindowDisplayed</key>
+	<false/>
+	<key>Identifier</key>
+	<string>com.apple.perspectives.project.mode1</string>
+	<key>MajorVersion</key>
+	<integer>31</integer>
+	<key>MinorVersion</key>
+	<integer>1</integer>
+	<key>Name</key>
+	<string>Default</string>
+	<key>Notifications</key>
+	<array/>
+	<key>OpenEditors</key>
+	<array/>
+	<key>PerspectiveWidths</key>
+	<array>
+		<integer>-1</integer>
+		<integer>-1</integer>
+	</array>
+	<key>Perspectives</key>
+	<array>
+		<dict>
+			<key>ChosenToolbarItems</key>
+			<array>
+				<string>active-target-popup</string>
+				<string>action</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>clean-target</string>
+				<string>buildOrClean</string>
+				<string>build-and-runOrDebug</string>
+				<string>com.apple.ide.PBXToolbarStopButton</string>
+				<string>get-info</string>
+				<string>toggle-editor</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>com.apple.pbx.toolbar.searchfield</string>
+			</array>
+			<key>ControllerClassBaseName</key>
+			<string></string>
+			<key>IconName</key>
+			<string>WindowOfProjectWithEditor</string>
+			<key>Identifier</key>
+			<string>perspective.project</string>
+			<key>IsVertical</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>ContentConfiguration</key>
+					<dict>
+						<key>PBXBottomSmartGroupGIDs</key>
+						<array>
+							<string>1C37FBAC04509CD000000102</string>
+							<string>1C37FAAC04509CD000000102</string>
+							<string>1C08E77C0454961000C914BD</string>
+							<string>1C37FABC05509CD000000102</string>
+							<string>1C37FABC05539CD112110102</string>
+							<string>E2644B35053B69B200211256</string>
+							<string>1C37FABC04509CD000100104</string>
+							<string>1CC0EA4004350EF90044410B</string>
+							<string>1CC0EA4004350EF90041110B</string>
+						</array>
+						<key>PBXProjectModuleGUID</key>
+						<string>1CE0B1FE06471DED0097A5F4</string>
+						<key>PBXProjectModuleLabel</key>
+						<string>Files</string>
+						<key>PBXProjectStructureProvided</key>
+						<string>yes</string>
+						<key>PBXSmartGroupTreeModuleColumnData</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+							<array>
+								<real>271</real>
+							</array>
+							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+							<array>
+								<string>MainColumn</string>
+							</array>
+						</dict>
+						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+							<array>
+								<string>29B97314FDCFA39411CA2CEA</string>
+								<string>080E96DDFE201D6D7F000001</string>
+								<string>443968F50A90A08B005BD842</string>
+								<string>443968F40A90A07F005BD842</string>
+								<string>29B97315FDCFA39411CA2CEA</string>
+								<string>29B97317FDCFA39411CA2CEA</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>46</integer>
+									<integer>42</integer>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 395}, {271, 659}}</string>
+						</dict>
+						<key>PBXTopSmartGroupGIDs</key>
+						<array/>
+						<key>XCIncludePerspectivesSwitch</key>
+						<true/>
+						<key>XCSharingToken</key>
+						<string>com.apple.Xcode.GFSharingToken</string>
+					</dict>
+					<key>GeometryConfiguration</key>
+					<dict>
+						<key>Frame</key>
+						<string>{{0, 0}, {288, 677}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>271</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>661 152 1006 718 0 0 1680 1028 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>288pt</string>
+				</dict>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20306471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>AppController.m</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CE0B20406471E060097A5F4</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>AppController.m</string>
+										<key>_historyCapacity</key>
+										<integer>0</integer>
+										<key>bookmark</key>
+										<string>44DA7B350A9A49510073B37F</string>
+										<key>history</key>
+										<array>
+											<string>4417E2F50A908F5D000FE4DB</string>
+											<string>4417E2F60A908F5D000FE4DB</string>
+											<string>443968790A909A90005BD842</string>
+											<string>443968820A909A90005BD842</string>
+											<string>443968850A909A90005BD842</string>
+											<string>443968860A909A90005BD842</string>
+											<string>4439690E0A90EE73005BD842</string>
+											<string>4439690F0A90EE73005BD842</string>
+											<string>44FC069F0A91114B00704DDC</string>
+											<string>44FC06A00A91114B00704DDC</string>
+											<string>44A6F9110A98ECB300E04AE1</string>
+											<string>44A6F9120A98ECB300E04AE1</string>
+											<string>44A6F9160A98ECB300E04AE1</string>
+											<string>44A6F9180A98ECB300E04AE1</string>
+											<string>44A6F9210A98ECB300E04AE1</string>
+											<string>44A6F9D00A98F34200E04AE1</string>
+											<string>44A6FA160A98F94100E04AE1</string>
+											<string>44A6FA170A98F94100E04AE1</string>
+											<string>44A6FA1B0A98F94100E04AE1</string>
+											<string>44A6FA1C0A98F94100E04AE1</string>
+											<string>44DA7ADA0A9A43900073B37F</string>
+											<string>44DA7B010A9A48030073B37F</string>
+											<string>44DA7B020A9A48030073B37F</string>
+											<string>44DA7B030A9A48030073B37F</string>
+											<string>44DA7B040A9A48030073B37F</string>
+											<string>44DA7B050A9A48030073B37F</string>
+											<string>44DA7B060A9A48030073B37F</string>
+											<string>44DA7B070A9A48030073B37F</string>
+											<string>44DA7B080A9A48030073B37F</string>
+											<string>44DA7B090A9A48030073B37F</string>
+											<string>44DA7B0A0A9A48030073B37F</string>
+											<string>44DA7B0B0A9A48030073B37F</string>
+											<string>44DA7B0C0A9A48030073B37F</string>
+											<string>44DA7B0D0A9A48030073B37F</string>
+											<string>44DA7B0E0A9A48030073B37F</string>
+											<string>44DA7B0F0A9A48030073B37F</string>
+											<string>44DA7B100A9A48030073B37F</string>
+											<string>44DA7B110A9A48030073B37F</string>
+											<string>44DA7B120A9A48030073B37F</string>
+											<string>44DA7B130A9A48030073B37F</string>
+											<string>44DA7B140A9A48030073B37F</string>
+										</array>
+										<key>prevStack</key>
+										<array>
+											<string>4417DC910A8D48C8000FE4DB</string>
+											<string>4417DC920A8D48C8000FE4DB</string>
+											<string>4417DD350A8D502C000FE4DB</string>
+											<string>4417DD360A8D502C000FE4DB</string>
+											<string>4417DD390A8D502C000FE4DB</string>
+											<string>4417DD3B0A8D502C000FE4DB</string>
+											<string>4417DD400A8D502C000FE4DB</string>
+											<string>4417DD490A8D502C000FE4DB</string>
+											<string>4417DD7C0A8D52E5000FE4DB</string>
+											<string>4417DD9B0A8D554E000FE4DB</string>
+											<string>4417DD9C0A8D554E000FE4DB</string>
+											<string>4417DDE20A8D56C7000FE4DB</string>
+											<string>4417DE380A8D591F000FE4DB</string>
+											<string>4417DE570A8E6793000FE4DB</string>
+											<string>4417E0200A8FC7C4000FE4DB</string>
+											<string>4417E0220A8FC7C4000FE4DB</string>
+											<string>4417E0240A8FC7C4000FE4DB</string>
+											<string>4417E1170A8FD0CF000FE4DB</string>
+											<string>4417E1180A8FD0CF000FE4DB</string>
+											<string>4417E1210A8FD0CF000FE4DB</string>
+											<string>4417E1440A8FD0CF000FE4DB</string>
+											<string>4417E15B0A8FD0CF000FE4DB</string>
+											<string>4417E1DF0A8FD33D000FE4DB</string>
+											<string>4417E1EE0A8FD55C000FE4DB</string>
+											<string>4417E20C0A8FD7F3000FE4DB</string>
+											<string>4417E30F0A908F5D000FE4DB</string>
+											<string>4417E3100A908F5D000FE4DB</string>
+											<string>443968A40A909A90005BD842</string>
+											<string>443968A50A909A90005BD842</string>
+											<string>443968C80A909BDD005BD842</string>
+											<string>443968D70A909C35005BD842</string>
+											<string>443969130A90EE73005BD842</string>
+											<string>443969140A90EE73005BD842</string>
+											<string>443969150A90EE73005BD842</string>
+											<string>44FC06A40A91114B00704DDC</string>
+											<string>44FC06D50A924A1C00704DDC</string>
+											<string>44A6F92F0A98ECB300E04AE1</string>
+											<string>44A6F9400A98ECB300E04AE1</string>
+											<string>44A6F94D0A98ECB300E04AE1</string>
+											<string>44A6F9530A98ECB300E04AE1</string>
+											<string>44A6FA510A98F94100E04AE1</string>
+											<string>44DA7AD20A9A43590073B37F</string>
+											<string>44DA7AD30A9A43590073B37F</string>
+											<string>44DA7AD40A9A43590073B37F</string>
+											<string>44DA7ADC0A9A43900073B37F</string>
+											<string>44DA7ADD0A9A43900073B37F</string>
+											<string>44DA7ADE0A9A43900073B37F</string>
+											<string>44DA7ADF0A9A43900073B37F</string>
+											<string>44DA7B150A9A48030073B37F</string>
+											<string>44DA7B160A9A48030073B37F</string>
+											<string>44DA7B170A9A48030073B37F</string>
+											<string>44DA7B180A9A48030073B37F</string>
+											<string>44DA7B190A9A48030073B37F</string>
+											<string>44DA7B1A0A9A48030073B37F</string>
+											<string>44DA7B1B0A9A48030073B37F</string>
+											<string>44DA7B1C0A9A48030073B37F</string>
+											<string>44DA7B1D0A9A48030073B37F</string>
+											<string>44DA7B1E0A9A48030073B37F</string>
+											<string>44DA7B1F0A9A48030073B37F</string>
+											<string>44DA7B200A9A48030073B37F</string>
+											<string>44DA7B210A9A48030073B37F</string>
+											<string>44DA7B220A9A48030073B37F</string>
+											<string>44DA7B230A9A48030073B37F</string>
+											<string>44DA7B240A9A48030073B37F</string>
+											<string>44DA7B250A9A48030073B37F</string>
+											<string>44DA7B260A9A48030073B37F</string>
+											<string>44DA7B270A9A48030073B37F</string>
+											<string>44DA7B280A9A48030073B37F</string>
+											<string>44DA7B290A9A48030073B37F</string>
+											<string>44DA7B2A0A9A48030073B37F</string>
+											<string>44DA7B2B0A9A48030073B37F</string>
+											<string>44DA7B2C0A9A48030073B37F</string>
+											<string>44DA7B2D0A9A48030073B37F</string>
+											<string>44DA7B2E0A9A48030073B37F</string>
+										</array>
+									</dict>
+									<key>SplitCount</key>
+									<string>1</string>
+								</dict>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {713, 558}}</string>
+								<key>RubberWindowFrame</key>
+								<string>661 152 1006 718 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>558pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20506471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 563}, {713, 114}}</string>
+								<key>RubberWindowFrame</key>
+								<string>661 152 1006 718 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>114pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>713pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCModuleDock</string>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCModuleDock</string>
+				<string>PBXNavigatorGroup</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>TableOfContents</key>
+			<array>
+				<string>44DA7AC10A9A42FE0073B37F</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>44DA7AC20A9A42FE0073B37F</string>
+				<string>1CE0B20306471E060097A5F4</string>
+				<string>1CE0B20506471E060097A5F4</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.default</string>
+		</dict>
+		<dict>
+			<key>ControllerClassBaseName</key>
+			<string></string>
+			<key>IconName</key>
+			<string>WindowOfProject</string>
+			<key>Identifier</key>
+			<string>perspective.morph</string>
+			<key>IsVertical</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>BecomeActive</key>
+					<integer>1</integer>
+					<key>ContentConfiguration</key>
+					<dict>
+						<key>PBXBottomSmartGroupGIDs</key>
+						<array>
+							<string>1C37FBAC04509CD000000102</string>
+							<string>1C37FAAC04509CD000000102</string>
+							<string>1C08E77C0454961000C914BD</string>
+							<string>1C37FABC05509CD000000102</string>
+							<string>1C37FABC05539CD112110102</string>
+							<string>E2644B35053B69B200211256</string>
+							<string>1C37FABC04509CD000100104</string>
+							<string>1CC0EA4004350EF90044410B</string>
+							<string>1CC0EA4004350EF90041110B</string>
+						</array>
+						<key>PBXProjectModuleGUID</key>
+						<string>11E0B1FE06471DED0097A5F4</string>
+						<key>PBXProjectModuleLabel</key>
+						<string>Files</string>
+						<key>PBXProjectStructureProvided</key>
+						<string>yes</string>
+						<key>PBXSmartGroupTreeModuleColumnData</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+							<array>
+								<real>186</real>
+							</array>
+							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+							<array>
+								<string>MainColumn</string>
+							</array>
+						</dict>
+						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+							<array>
+								<string>29B97314FDCFA39411CA2CEA</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 0}, {186, 337}}</string>
+						</dict>
+						<key>PBXTopSmartGroupGIDs</key>
+						<array/>
+						<key>XCIncludePerspectivesSwitch</key>
+						<integer>1</integer>
+						<key>XCSharingToken</key>
+						<string>com.apple.Xcode.GFSharingToken</string>
+					</dict>
+					<key>GeometryConfiguration</key>
+					<dict>
+						<key>Frame</key>
+						<string>{{0, 0}, {203, 355}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>186</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>373 269 690 397 0 0 1440 878 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Morph</string>
+			<key>PreferredWidth</key>
+			<integer>300</integer>
+			<key>ServiceClasses</key>
+			<array>
+				<string>XCModuleDock</string>
+				<string>PBXSmartGroupTreeModule</string>
+			</array>
+			<key>TableOfContents</key>
+			<array>
+				<string>11E0B1FE06471DED0097A5F4</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.default.short</string>
+		</dict>
+	</array>
+	<key>PerspectivesBarVisible</key>
+	<false/>
+	<key>ShelfIsVisible</key>
+	<false/>
+	<key>SourceDescription</key>
+	<string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+	<key>StatusbarIsVisible</key>
+	<true/>
+	<key>TimeStamp</key>
+	<real>0.0</real>
+	<key>ToolbarDisplayMode</key>
+	<integer>1</integer>
+	<key>ToolbarIsVisible</key>
+	<true/>
+	<key>ToolbarSizeMode</key>
+	<integer>1</integer>
+	<key>Type</key>
+	<string>Perspectives</string>
+	<key>UpdateMessage</key>
+	<string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+	<key>WindowJustification</key>
+	<integer>5</integer>
+	<key>WindowOrderList</key>
+	<array>
+		<string>4417DB580A8D2FCE000FE4DB</string>
+		<string>44DA7ACA0A9A42FE0073B37F</string>
+		<string>1CD10A99069EF8BA00B06720</string>
+		<string>1C0AD2B3069F1EA900FABCE6</string>
+		<string>/Users/halset/projects/CAYClient/CAYClient.xcodeproj</string>
+	</array>
+	<key>WindowString</key>
+	<string>661 152 1006 718 0 0 1680 1028 </string>
+	<key>WindowTools</key>
+	<array>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.build</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528F0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string></string>
+								<key>StatusBarVisibility</key>
+								<true/>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {853, 416}}</string>
+								<key>RubberWindowFrame</key>
+								<string>-2 105 853 741 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>416pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBuildLogShowsTranscriptDefaultKey</key>
+								<string>{{0, 5}, {853, 274}}</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>XCMainBuildResultsModuleGUID</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Build</string>
+								<key>XCBuildResultsTrigger_Collapse</key>
+								<integer>1021</integer>
+								<key>XCBuildResultsTrigger_Open</key>
+								<integer>1011</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 421}, {853, 279}}</string>
+								<key>RubberWindowFrame</key>
+								<string>-2 105 853 741 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXBuildResultsModule</string>
+							<key>Proportion</key>
+							<string>279pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>700pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Build Results</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBuildResultsModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>4417DB580A8D2FCE000FE4DB</string>
+				<string>44DA7AC30A9A42FE0073B37F</string>
+				<string>1CD0528F0623707200166675</string>
+				<string>XCMainBuildResultsModuleGUID</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.build</string>
+			<key>WindowString</key>
+			<string>-2 105 853 741 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>4417DB580A8D2FCE000FE4DB</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.debugger</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>Debugger</key>
+								<dict>
+									<key>HorizontalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {400, 267}}</string>
+											<string>{{400, 0}, {535, 267}}</string>
+										</array>
+									</dict>
+									<key>VerticalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {935, 267}}</string>
+											<string>{{0, 267}, {935, 242}}</string>
+										</array>
+									</dict>
+								</dict>
+								<key>LauncherConfigVersion</key>
+								<string>8</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C162984064C10D400B95A72</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debug - GLUTExamples (Underwater)</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>DebugConsoleDrawerSize</key>
+								<string>{100, 120}</string>
+								<key>DebugConsoleVisible</key>
+								<string>None</string>
+								<key>DebugConsoleWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>DebugSTDIOWindowFrame</key>
+								<string>{{200, 200}, {500, 300}}</string>
+								<key>Frame</key>
+								<string>{{0, 0}, {935, 509}}</string>
+								<key>RubberWindowFrame</key>
+								<string>514 309 935 550 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugSessionModule</string>
+							<key>Proportion</key>
+							<string>509pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>509pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugSessionModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1CD10A99069EF8BA00B06720</string>
+				<string>44DA7AC40A9A42FE0073B37F</string>
+				<string>1C162984064C10D400B95A72</string>
+				<string>44DA7AC50A9A42FE0073B37F</string>
+				<string>44DA7AC60A9A42FE0073B37F</string>
+				<string>44DA7AC70A9A42FE0073B37F</string>
+				<string>44DA7AC80A9A42FE0073B37F</string>
+				<string>44DA7AC90A9A42FE0073B37F</string>
+				<string>44DA7ACA0A9A42FE0073B37F</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debug</string>
+			<key>WindowString</key>
+			<string>514 309 935 550 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1CD10A99069EF8BA00B06720</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.find</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Dock</key>
+							<array>
+								<dict>
+									<key>ContentConfiguration</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CDD528C0622207200134675</string>
+										<key>PBXProjectModuleLabel</key>
+										<string></string>
+										<key>StatusBarVisibility</key>
+										<true/>
+									</dict>
+									<key>GeometryConfiguration</key>
+									<dict>
+										<key>Frame</key>
+										<string>{{0, 0}, {781, 212}}</string>
+										<key>RubberWindowFrame</key>
+										<string>39 486 781 470 0 0 1680 1028 </string>
+									</dict>
+									<key>Module</key>
+									<string>PBXNavigatorGroup</string>
+									<key>Proportion</key>
+									<string>781pt</string>
+								</dict>
+							</array>
+							<key>Proportion</key>
+							<string>212pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528E0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Project Find</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 217}, {781, 212}}</string>
+								<key>RubberWindowFrame</key>
+								<string>39 486 781 470 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXProjectFindModule</string>
+							<key>Proportion</key>
+							<string>212pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>429pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Find</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXProjectFindModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D57069F1CE1000CFCEE</string>
+				<string>443968160A909794005BD842</string>
+				<string>443968170A909794005BD842</string>
+				<string>1CDD528C0622207200134675</string>
+				<string>1CD0528E0623707200166675</string>
+			</array>
+			<key>WindowString</key>
+			<string>39 486 781 470 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D57069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>MENUSEPARATOR</string>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.debuggerConsole</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAAC065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Debugger Console</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {709, 626}}</string>
+								<key>RubberWindowFrame</key>
+								<string>535 169 709 667 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugCLIModule</string>
+							<key>Proportion</key>
+							<string>626pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>626pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debugger Console</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXDebugCLIModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>4417DEC40A8E6D11000FE4DB</string>
+				<string>44A6F9700A98EE2900E04AE1</string>
+				<string>1C78EAAC065D492600B07095</string>
+			</array>
+			<key>WindowString</key>
+			<string>535 169 709 667 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>4417DEC40A8E6D11000FE4DB</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.run</string>
+			<key>IsVertical</key>
+			<true/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>LauncherConfigVersion</key>
+								<string>3</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528B0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Run</string>
+								<key>Runner</key>
+								<dict>
+									<key>HorizontalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {493, 167}}</string>
+											<string>{{0, 176}, {493, 267}}</string>
+										</array>
+									</dict>
+									<key>VerticalSplitView</key>
+									<dict>
+										<key>_collapsingFrameDimension</key>
+										<real>0.0</real>
+										<key>_indexOfCollapsedView</key>
+										<integer>0</integer>
+										<key>_percentageOfCollapsedView</key>
+										<real>0.0</real>
+										<key>isCollapsed</key>
+										<string>yes</string>
+										<key>sizes</key>
+										<array>
+											<string>{{0, 0}, {405, 443}}</string>
+											<string>{{414, 0}, {514, 443}}</string>
+										</array>
+									</dict>
+								</dict>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {1248, 638}}</string>
+								<key>RubberWindowFrame</key>
+								<string>8 54 1248 679 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXRunSessionModule</string>
+							<key>Proportion</key>
+							<string>638pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>638pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Run Log</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXRunSessionModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C0AD2B3069F1EA900FABCE6</string>
+				<string>44DA7ACB0A9A42FE0073B37F</string>
+				<string>1CD0528B0623707200166675</string>
+				<string>44DA7ACC0A9A42FE0073B37F</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.run</string>
+			<key>WindowString</key>
+			<string>8 54 1248 679 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1C0AD2B3069F1EA900FABCE6</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.scm</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1C78EAB2065D492600B07095</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>&lt;No Editor&gt;</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1C78EAB3065D492600B07095</string>
+									</dict>
+									<key>SplitCount</key>
+									<string>1</string>
+								</dict>
+								<key>StatusBarVisibility</key>
+								<integer>1</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {452, 0}}</string>
+								<key>RubberWindowFrame</key>
+								<string>743 379 452 308 0 0 1280 1002 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>0pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD052920623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>SCM</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>ConsoleFrame</key>
+								<string>{{0, 259}, {452, 0}}</string>
+								<key>Frame</key>
+								<string>{{0, 7}, {452, 259}}</string>
+								<key>RubberWindowFrame</key>
+								<string>743 379 452 308 0 0 1280 1002 </string>
+								<key>TableConfiguration</key>
+								<array>
+									<string>Status</string>
+									<real>30</real>
+									<string>FileName</string>
+									<real>199</real>
+									<string>Path</string>
+									<real>197.09500122070312</real>
+								</array>
+								<key>TableFrame</key>
+								<string>{{0, 0}, {452, 250}}</string>
+							</dict>
+							<key>Module</key>
+							<string>PBXCVSModule</string>
+							<key>Proportion</key>
+							<string>262pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>266pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>SCM</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXCVSModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C78EAB4065D492600B07095</string>
+				<string>1C78EAB5065D492600B07095</string>
+				<string>1C78EAB2065D492600B07095</string>
+				<string>1CD052920623707200166675</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.scm</string>
+			<key>WindowString</key>
+			<string>743 379 452 308 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.breakpoints</string>
+			<key>IsVertical</key>
+			<integer>0</integer>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBottomSmartGroupGIDs</key>
+								<array>
+									<string>1C77FABC04509CD000000102</string>
+								</array>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B1FE06471DED0097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Files</string>
+								<key>PBXProjectStructureProvided</key>
+								<string>no</string>
+								<key>PBXSmartGroupTreeModuleColumnData</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+									<array>
+										<real>168</real>
+									</array>
+									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+									<array>
+										<string>MainColumn</string>
+									</array>
+								</dict>
+								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+								<dict>
+									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+									<array>
+										<string>1C77FABC04509CD000000102</string>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+									<array>
+										<array>
+											<integer>0</integer>
+										</array>
+									</array>
+									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+									<string>{{0, 0}, {168, 350}}</string>
+								</dict>
+								<key>PBXTopSmartGroupGIDs</key>
+								<array/>
+								<key>XCIncludePerspectivesSwitch</key>
+								<integer>0</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {185, 368}}</string>
+								<key>GroupTreeTableConfiguration</key>
+								<array>
+									<string>MainColumn</string>
+									<real>168</real>
+								</array>
+								<key>RubberWindowFrame</key>
+								<string>315 424 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXSmartGroupTreeModule</string>
+							<key>Proportion</key>
+							<string>185pt</string>
+						</dict>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA1AED706398EBD00589147</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Detail</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{190, 0}, {554, 368}}</string>
+								<key>RubberWindowFrame</key>
+								<string>315 424 744 409 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>554pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>368pt</string>
+				</dict>
+			</array>
+			<key>MajorVersion</key>
+			<integer>2</integer>
+			<key>MinorVersion</key>
+			<integer>0</integer>
+			<key>Name</key>
+			<string>Breakpoints</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXSmartGroupTreeModule</string>
+				<string>XCDetailModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1CDDB66807F98D9800BB5817</string>
+				<string>1CDDB66907F98D9800BB5817</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CA1AED706398EBD00589147</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.breakpoints</string>
+			<key>WindowString</key>
+			<string>315 424 744 409 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1CDDB66807F98D9800BB5817</string>
+			<key>WindowToolIsVisible</key>
+			<integer>1</integer>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.debugAnimator</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Debug Visualizer</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXNavigatorGroup</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugAnimator</string>
+			<key>WindowString</key>
+			<string>100 100 700 500 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.bookmarks</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>Module</key>
+							<string>PBXBookmarksModule</string>
+							<key>Proportion</key>
+							<string>100%</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>100%</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Bookmarks</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXBookmarksModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>WindowString</key>
+			<string>538 42 401 187 0 0 1280 1002 </string>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.classBrowser</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<integer>1</integer>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>OptionsSetName</key>
+								<string>Hierarchy, all classes</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CA6456E063B45B4001379D8</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Class Browser - NSObject</string>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>ClassesFrame</key>
+								<string>{{0, 0}, {374, 96}}</string>
+								<key>ClassesTreeTableConfiguration</key>
+								<array>
+									<string>PBXClassNameColumnIdentifier</string>
+									<real>208</real>
+									<string>PBXClassBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>Frame</key>
+								<string>{{0, 0}, {630, 331}}</string>
+								<key>MembersFrame</key>
+								<string>{{0, 105}, {374, 395}}</string>
+								<key>MembersTreeTableConfiguration</key>
+								<array>
+									<string>PBXMemberTypeIconColumnIdentifier</string>
+									<real>22</real>
+									<string>PBXMemberNameColumnIdentifier</string>
+									<real>216</real>
+									<string>PBXMemberTypeColumnIdentifier</string>
+									<real>97</real>
+									<string>PBXMemberBookColumnIdentifier</string>
+									<real>22</real>
+								</array>
+								<key>PBXModuleWindowStatusBarHidden2</key>
+								<integer>1</integer>
+								<key>RubberWindowFrame</key>
+								<string>385 179 630 352 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXClassBrowserModule</string>
+							<key>Proportion</key>
+							<string>332pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>332pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Class Browser</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXClassBrowserModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>0</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C0AD2AF069F1E9B00FABCE6</string>
+				<string>1C0AD2B0069F1E9B00FABCE6</string>
+				<string>1CA6456E063B45B4001379D8</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.classbrowser</string>
+			<key>WindowString</key>
+			<string>385 179 630 352 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1C0AD2AF069F1E9B00FABCE6</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</dict>
+	</array>
+</dict>
+</plist>



Mime
View raw message