5 // Created by Marc Liyanage on Sun Mar 03 2002.
6 // Copyright (c) 2001 __MyCompanyName__. All rights reserved.
11 #import <Cocoa/Cocoa.h>
12 #import <WebKit/WebKit.h>
17 #import "ParameterSet.h"
18 #import "XSLTProcessorFactory.h"
19 #import "XMLParserLibxml.h"
20 #import "XMLTextView.h"
21 #import "FindPanelController.h"
22 #import "JumpToLinePanelController.h"
23 #import "UnsavedChangesPanelController.h"
24 #import "XSL_FO_Renderer.h"
34 @interface MyDocument : NSDocument
37 NSTimer *uiUpdateTimer;
43 BOOL imageViewUpToDate;
45 int pdfPageCount, pdfCurrentPage;
47 NSBundle *processorBundle;
49 XSLTProcessor *processor;
50 XMLParserLibxml *wellFormedParser;
53 IBOutlet NSImageView *xmlWellFormedIcon;
54 IBOutlet NSImageView *xsltWellFormedIcon;
55 IBOutlet NSButton *processButton;
56 IBOutlet NSButton *saveResultAsButton;
57 IBOutlet NSButton *saveResultButton;
58 IBOutlet NSButton *openResultURLButton;
59 IBOutlet NSTextField *processingTimeField;
60 IBOutlet NSTextField *saveResultFilenameField;
61 IBOutlet NSTextField *saveXmlFilenameField;
62 IBOutlet NSTextField *saveXsltFilenameField;
63 IBOutlet NSButton *saveXmlAsButton;
64 IBOutlet NSButton *saveXmlButton;
65 IBOutlet NSButton *saveXsltButton;
66 IBOutlet NSButton *saveXsltAsButton;
67 IBOutlet NSButton *paramRemoveButton;
68 IBOutlet NSTabView *tabView;
69 IBOutlet NSTabView *resultTabView;
70 IBOutlet XMLTextView *xmlView;
71 IBOutlet XMLTextView *xsltView;
72 IBOutlet NSTextView *resultView;
73 IBOutlet NSTableView *parameterTable;
74 IBOutlet NSButton *autoSaveCheckbox;
75 IBOutlet NSButton *autoShowCheckbox;
76 IBOutlet NSDrawer *errorDrawer;
77 IBOutlet NSPopUpButton *processorTypePopUp;
78 IBOutlet WebView *resultWebView;
79 IBOutlet NSImageView *resultImageView;
81 IBOutlet NSTextField *pdfCurrentPageField;
82 IBOutlet NSTextField *pdfPageCountField;
83 IBOutlet NSButton *pdfPreviousPageButton;
84 IBOutlet NSButton *pdfNextPageButton;
85 IBOutlet NSButton *pdfSaveAsButton;
87 IBOutlet NSTextField *xmlTagStackField;
88 IBOutlet NSTextField *xsltTagStackField;
90 IBOutlet NSTextField *drawerMessageField;
93 IBOutlet NSTextField *webViewBaseURL;
95 FindPanelController *findPanelController;
96 JumpToLinePanelController *jumpToLinePanelController;
97 UnsavedChangesPanelController *unsavedChangesPanelController;
101 - (BOOL)canUseSelectionForFindNow;
103 - (BOOL)canFindAgainNow;
104 - (IBAction)showFindPanel:(id)sender;
105 - (IBAction)findNext:(id)sender;
106 - (IBAction)findPrevious:(id)sender;
107 - (IBAction)useSelectionForFind:(id)sender;
108 - (void)findStringWithSearchFlags:(int)flags;
110 - (BOOL)canJumpToLineNow;
111 - (IBAction)showJumpToLinePanel:(id)sender;
113 - (BOOL)showUnsavedChangesPanel;
115 - (void)updateCompleteUI;
118 - (NSTabView *)tabView;
119 - (IBAction)selectTab:(id)sender;
120 - (IBAction)selectTabById:(int)tabId;
122 - (IBAction)setProcessorType:(id)sender;
123 - (IBAction)switchProcessorToType:(int)newType updateUI:(BOOL)updateUI;
125 - (IBAction)showInBrowser:(id)sender;
126 - (void)uiUpdateTimerTarget:(NSTimer *)timer;
127 - (BOOL)canProcessNow;
128 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem;
130 - (void)resizeWebView;
132 - (NSTextView *)currentTextView;
135 - (id)handleProcessScriptCommand:(NSScriptCommand *)command;
136 - (id)handleExportScriptCommand:(NSScriptCommand *)command;
137 - (id)handleSetParamScriptCommand:(NSScriptCommand *)command;
138 - (id)handleClearParamScriptCommand:(NSScriptCommand *)command;
139 - (id)handleSetProcessorTypeScriptCommand:(NSScriptCommand *)command;
142 // AppleScript accessors
143 - (NSString *)xmlcode;
144 - (void)setXmlcode:(NSString *)s;
145 - (NSString *)xsltcode;
146 - (void)setXsltcode:(NSString *)s;
147 - (NSString *)result;
149 // Drag and Drop for our custom NSTextView subclass
150 - (BOOL)handleDroppedFile:(NSString *)filename forTextView:(NSTextView *)sender;
152 - (IBAction)process:(id)sender;
153 - (IBAction)loadXml:(id)sender;
154 - (IBAction)loadXslt:(id)sender;
156 - (BOOL)canSaveXmlAsNow;
157 - (BOOL)canSaveXmlNow;
158 - (BOOL)canSaveXsltAsNow;
159 - (BOOL)canSaveXsltNow;
160 - (BOOL)canSaveResultAsNow;
161 - (BOOL)canSaveResultNow;
163 - (IBAction)saveResultAs:(id)sender;
164 - (IBAction)saveResult:(id)sender;
165 - (IBAction)saveXmlAs:(id)sender;
166 - (IBAction)saveXml:(id)sender;
167 - (IBAction)saveXsltAs:(id)sender;
168 - (IBAction)saveXslt:(id)sender;
169 - (IBAction)saveCurrentAs:(id)sender;
170 - (IBAction)saveCurrent:(id)sender;
171 - (IBAction)newParameter:(id)sender;
172 - (IBAction)removeParameter:(id)sender;
173 - (IBAction)openResultURL:(id)sender;
176 - (void)updateResultWebView;
177 - (void)updateResultImageView;
179 - (IBAction)renderFo:(id)sender;
181 - (IBAction)showErrorLocation:(id)sender;
183 - (IBAction)pdfPreviousPage:(id)sender;
184 - (IBAction)pdfNextPage:(id)sender;
185 - (IBAction)pdfSaveAs:(id)sender;
187 - (void)checkForExternalModifications;
190 - (IBAction)showXmlTab:(id)sender;
191 - (IBAction)showXsltTab:(id)sender;
192 - (IBAction)showParameterTab:(id)sender;
193 - (IBAction)showResultTab:(id)sender;