libs-steptalk/Applications/ScriptPapers/ScriptPaper.m
Wolfgang Lux fa9b3747b1 Update to current StepTalk framework methods.
Check the result of the super class initializer and assign it to self.
Also fix a space leak.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/steptalk/trunk@36405 72102866-910b-0410-8b05-ffd578937521
2013-03-23 19:00:43 +00:00

110 lines
2.9 KiB
Objective-C

/** Controller
Copyright (c) 2003 Stefan Urbanek
Written by: Stefan Urbanek
Date: 2003 Apr 26
This file is part of the Farmer application.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#import "ScriptPaper.h"
#import <Foundation/NSException.h>
#import <Foundation/NSString.h>
#import <StepTalk/STEnvironment.h>
#import <StepTalk/STEngine.h>
#import <StepTalk/STLanguageManager.h>
#import "ScriptPaperController.h"
@implementation ScriptPaper
- init
{
if ((self = [super init]) != nil)
{
environment = [[STEnvironment alloc] initWithDefaultDescription];
}
return self;
}
- (void)dealloc
{
RELEASE(environment);
[super dealloc];
}
- (void)makeWindowControllers
{
ScriptPaperController *controller;
controller = [[ScriptPaperController alloc] init];
[controller setDocument:self];
[self addWindowController:AUTORELEASE(controller)];
}
- (id)executeScriptString:(NSString *)source
{
STEngine *engine;
NSString *error;
id retval = nil;
engine = [STEngine engineForLanguage:
[[STLanguageManager defaultManager] defaultLanguage]];
if(!engine)
{
NSLog(@"Unable to get scripting engine.");
return nil;
}
if(!environment)
{
NSLog(@"No scripting environment");
return nil;
}
NS_DURING
retval = [engine interpretScript:source inContext:environment];
NS_HANDLER
error = [NSString stringWithFormat:
@"Error: "
@"Execution of script failed. %@. (%@)",
[localException reason],
[localException name]];
// [[STTranscript sharedTranscript] showError:error];
NSLog(@"Script exception: %@", error);
retval = nil;
NS_ENDHANDLER
return retval;
}
- (BOOL)writeToFile:(NSString *)fileName ofType:(NSString *)fileType
{
NSLog(@"Write to file %@ of type %@. (not implemented)", fileName, fileType);
return YES;
}
- (BOOL)readFromFile:(NSString *)fileName ofType:(NSString *)fileType
{
NSLog(@"Read from file %@ of type %@. (not implemented)", fileName, fileType);
return YES;
}
@end