xsltDirty = NO;
}
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ NSDictionary *appDefaults = [NSDictionary
+ dictionaryWithObject:@"YES" forKey:@"AnalyzeCode"];
+
+ [defaults registerDefaults:appDefaults];
return self;
[uiUpdateTimer retain];
+
}
- (void)uiUpdateTimerTarget:(NSTimer *)timer {
+
- (void)doUpdateUI {
NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
if (xmlTabIsVisible) {
[saveXmlFilenameField setObjectValue:[workset xmlFilename]];
[saveXmlFilenameField setToolTip:[workset xmlFilename]];
- [saveXmlButton setEnabled:[workset hasXmlFilename] && xmlDirty];
- [saveXmlAsButton setEnabled:[workset hasXmlCode]];
+ [saveXmlButton setEnabled:[self canSaveXmlNow]];
+ [saveXmlAsButton setEnabled:[self canSaveXmlAsNow]];
[xmlTagStackField setStringValue:[xmlView calculateTagStack]];
[xmlView checkWellFormed];
} else if (xsltTabIsVisible) {
[saveXsltFilenameField setObjectValue:[workset xsltFilename]];
[saveXsltFilenameField setToolTip:[workset xsltFilename]];
- [saveXsltButton setEnabled:[workset hasXsltFilename] && xsltDirty];
- [saveXsltAsButton setEnabled:[workset hasXsltCode]];
+ [saveXsltButton setEnabled:[self canSaveXsltNow]];
+ [saveXsltAsButton setEnabled:[self canSaveXsltAsNow]];
[xsltTagStackField setStringValue:[xsltView calculateTagStack]];
[xsltView checkWellFormed];
[paramRemoveButton setEnabled:[parameterTable selectedRow] != -1];
[parameterTable reloadData];
} else if (resultTabIsVisible) {
- [saveResultAsButton setEnabled:[workset hasResult]];
- [saveResultButton setEnabled:[workset hasResultFilename] && resultDirty];
+ [saveResultAsButton setEnabled:[self canSaveResultAsNow]];
+ [saveResultButton setEnabled:[self canSaveResultNow]];
[autoSaveCheckbox setEnabled:[workset hasResultFilename]];
[openResultURLButton setEnabled:[workset hasResultFilename]];
[autoShowCheckbox setEnabled:[openResultURLButton isEnabled]];
- (void)updateResultWebView {
if (!webViewUpToDate) {
WebFrame *mainFrame = [resultWebView mainFrame];
- [mainFrame loadHTMLString:[workset stringResult] baseURL:nil];
+// [mainFrame loadHTMLString:[workset stringResult] baseURL:nil];
+ [mainFrame loadHTMLString:[workset stringResult] baseURL:[NSURL URLWithString:[webViewBaseURL stringValue]]];
+// [mainFrame loadHTMLString:[workset stringResult] baseURL:[NSURL URLWithString:@"file:///Users/liyanage/Sites/primavera/images/x"]];
webViewUpToDate = YES;
}
}
// NSLog(@"validate: %@, tag: %d", menuItem, [menuItem tag]);
+ NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+ BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+ BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+ BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+ BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+
+
switch ([menuItem tag]) {
case 10: // Process
return [self canJumpToLineNow];
break;
+ case 17: // Save Current Pane
+ if (xmlTabIsVisible) {
+ return [self canSaveXmlNow];
+ } else if (xsltTabIsVisible) {
+ return [self canSaveXsltNow];
+ } else if (resultTabIsVisible) {
+ return [self canSaveResultNow];
+ }
+ break;
+
+ case 18: // Save Current Pane As...
+ if (xmlTabIsVisible) {
+ return [self canSaveXmlAsNow];
+ } else if (xsltTabIsVisible) {
+ return [self canSaveXsltAsNow];
+ } else if (resultTabIsVisible) {
+ return [self canSaveResultAsNow];
+ }
+ break;
default:
return YES;
+
+- (BOOL)canSaveXmlAsNow {
+ return [workset hasXmlCode];
+}
+
+- (BOOL)canSaveXmlNow {
+ return [workset hasXmlFilename] && xmlDirty;
+}
+
+- (BOOL)canSaveXsltAsNow {
+ return [workset hasXsltCode];
+}
+
+- (BOOL)canSaveXsltNow {
+ return [workset hasXsltFilename] && xsltDirty;
+}
+
+- (BOOL)canSaveResultAsNow {
+ return [workset hasResult];
+}
+
+- (BOOL)canSaveResultNow {
+ return [workset hasResultFilename] && resultDirty;
+}
+
+
+
+
- (IBAction)saveXmlAs:(id)sender {
NSSavePanel *panel = [NSSavePanel savePanel];
}
+- (IBAction)saveCurrentAs:(id)sender {
+
+ NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+ BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+ BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+ BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+ BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+
+ if (xmlTabIsVisible) {
+ return [self saveXmlAs:sender];
+ } else if (xsltTabIsVisible) {
+ return [self saveXsltAs:sender];
+ } else if (resultTabIsVisible) {
+ return [self saveResultAs:sender];
+ }
+
+}
+
+
+
+
+- (IBAction)saveCurrent:(id)sender {
+
+ NSString *activeTabIdentifier = [[tabView selectedTabViewItem] identifier];
+ BOOL xmlTabIsVisible = [activeTabIdentifier isEqualToString:@"xmlTab"];
+ BOOL xsltTabIsVisible = !xmlTabIsVisible && [activeTabIdentifier isEqualToString:@"xsltTab"];
+ BOOL paramTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible) && [activeTabIdentifier isEqualToString:@"parametersTab"];
+ BOOL resultTabIsVisible = !(xmlTabIsVisible || xsltTabIsVisible || paramTabIsVisible);
+
+ if (xmlTabIsVisible) {
+ return [self saveXml:sender];
+ } else if (xsltTabIsVisible) {
+ return [self saveXslt:sender];
+ } else if (resultTabIsVisible) {
+ return [self saveResult:sender];
+ }
+
+}
+
+
+
+
+
+
- (IBAction)openResultURL:(id)sender {
// NSLog(@"openResultURL running...");
NSData *resultData = [xfr render:[workset result]];
+ [xfr release];
+
+ if (!resultData) {
+ NSLog(@"Unable to render, NULL result");
+ return;
+ }
+
[resultData retain];
[pdfData release];
pdfData = resultData;
NSImage *pdfImage = [[[NSImage alloc] initWithData:resultData] autorelease];
[pdfImage setBackgroundColor:[NSColor whiteColor]];
+ [pdfImage recache];
[pdfImage setCacheMode:NSImageCacheNever];
+ NSClipView *clipView = (NSClipView *)[resultImageView superview];
+ NSScrollView *scrollView = (NSScrollView *)[clipView superview];
+
[resultImageView setImage:pdfImage];
[resultImageView setFrameSize:[pdfImage size]];
+ [resultImageView display];
- //:[[[pdfImage representations] objectAtIndex:0] bounds]
- //[resultImageView sizeToFit];
-
- //[resultImageView setNeedsDisplay:YES];
-
- //NSLog(@"image reps: -%@-", [pdfImage representations]);
- //NSLog(@"count: -%d-", [[[pdfImage representations] objectAtIndex:0] pageCount]);
+ [clipView scrollToPoint:NSMakePoint([resultImageView frame].origin.x, [resultImageView frame].size.height - [clipView frame].size.height + [resultImageView frame].origin.y)];
+ [scrollView reflectScrolledClipView:clipView];
pdfPageCount = [[[pdfImage representations] objectAtIndex:0] pageCount];
pdfCurrentPage = 0;
- [xfr release];
-
}
- (void)resizeWebView {
- [[[resultWebView mainFrame] frameView] setFrame:[resultWebView frame]];
+// [[[resultWebView mainFrame] frameView] setFrame:[resultWebView frame]];
[resultWebView setNeedsDisplay:YES];
}
NSSize errorDrawerSize;
[super windowControllerDidLoadNib:aController];
-
- [resultImageView setImageAlignment:NSImageAlignTopLeft];
- // [resultImageView setImageFrameStyle:NSImageFrameGroove];
+
+ [resultImageView setImageFrameStyle:NSImageFramePhoto];
[resultImageView setImageScaling:NSScaleNone];
+ [resultImageView setImageAlignment:NSImageAlignCenter];
[resultImageView setEditable:NO];
-
-
[resultWebView setTextSizeMultiplier:0.9];
errorDrawerSize.height = 130;
[errorDrawer setContentSize:errorDrawerSize];
+ NSFont *computerFont = [NSFont fontWithName:@"Courier" size:12.0];
+ [resultView setFont:computerFont];
+
+ [tabView registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];