/*
File: MBCDocument.mm
Contains: Pseudo-document, used only for loading and saving
Version: 1.0
Copyright: © 2003 by Apple Computer, Inc., all rights reserved.
File Ownership:
DRI: Matthias Neeracher x43683
Writers:
(MN) Matthias Neeracher
Change History (most recent first):
$Log: MBCDocument.mm,v $
Revision 1.6 2008/11/20 23:13:11 neerache
<rdar://problem/5937079> Chess Save menu items/dialogs are incorrect
<rdar://problem/6328581> Update Chess copyright statements
Revision 1.5 2007/03/02 07:40:46 neerache
Revise document handling & saving <rdar://problems/3776337&4186113>
Revision 1.4 2003/08/11 22:55:41 neerache
Loading was unreliable (RADAR 2811246)
Revision 1.3 2003/07/03 08:12:51 neerache
Use sheets for saving (RADAR 3093283)
Revision 1.2 2003/04/24 23:22:02 neeri
Implement persistent preferences, tweak UI
Revision 1.1 2003/04/02 18:41:01 neeri
Support saving games
*/
#import "MBCDocument.h"
#import "MBCController.h"
@implementation MBCDocument
- (id) init
{
return [self initWithController:[MBCController controller]];
}
- (id) initWithController:(MBCController *)controller
{
[super init];
fController = controller;
return self;
}
- (void) close
{
[super close];
}
- (BOOL) loadDataRepresentation:(NSData *)docData ofType:(NSString *)docType
{
NSPropertyListFormat format;
BOOL res = [fController
loadGame:[self fileName] fromDict:
[NSPropertyListSerialization
propertyListFromData: docData
mutabilityOption: NSPropertyListImmutable
format: &format
errorDescription:nil]];
return res;
}
- (NSArray *)writableTypesForSaveOperation:(NSSaveOperationType)saveOperation
{
//
// Don't filter out PGN, even though we're not an editor for that type
//
return [[self class] writableTypes];
}
- (BOOL)writeToFile:(NSString *)fileName ofType:(NSString *)docType
{
BOOL res;
if ([docType isEqualToString:@"moves"])
res = [fController saveMovesTo:fileName];
else
res = [super writeToFile:fileName ofType:docType];
return res;
}
- (NSData *)dataRepresentationOfType:(NSString *)aType
{
return [NSPropertyListSerialization
dataFromPropertyList:[fController saveGameToDict]
format: NSPropertyListXMLFormat_v1_0
errorDescription:nil];
}
@end
// Local Variables:
// mode:ObjC
// End: