moved FOP to libs subdir
[TestXSLT.git] / MyDocument.h
1 //
2 //  MyDocument.h
3 //  TestXSLT
4 //
5 //  Created by Marc Liyanage on Sun Mar 03 2002.
6 //  Copyright (c) 2001 __MyCompanyName__. All rights reserved.
7 //
8 //  $Id$
9
10
11 #import <Cocoa/Cocoa.h>
12 #import <WebKit/WebKit.h>
13 #include <sys/time.h>
14
15 #import "XMLUtils.h"
16 #import "Workset.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"
25
26
27 enum {
28         XML = 1,
29         XSLT,
30         PARAMETERS,
31         RESULT,
32 };
33
34 @interface MyDocument : NSDocument
35 {
36         Workset *workset;
37         NSTimer *uiUpdateTimer;
38         BOOL resultDirty;
39         BOOL xmlDirty;
40         BOOL xsltDirty;
41         
42         BOOL webViewUpToDate;
43         BOOL imageViewUpToDate;
44
45         int pdfPageCount, pdfCurrentPage;
46         
47         NSBundle *processorBundle;
48
49         XSLTProcessor *processor;
50         XMLParserLibxml *wellFormedParser;
51         
52         NSImage *warningIcon;
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;
80
81         IBOutlet NSTextField *pdfCurrentPageField;
82         IBOutlet NSTextField *pdfPageCountField;
83         IBOutlet NSButton *pdfPreviousPageButton;
84         IBOutlet NSButton *pdfNextPageButton;
85         IBOutlet NSButton *pdfSaveAsButton;
86
87         IBOutlet NSTextField *xmlTagStackField;
88         IBOutlet NSTextField *xsltTagStackField;
89
90         NSData *pdfData, *xslfoRendererResultData;
91         NSConditionLock *xslfoRendererLock;
92
93         NSString *drawerMessage;
94         
95         IBOutlet NSTextField *webViewBaseURL;
96
97         FindPanelController *findPanelController;
98         JumpToLinePanelController *jumpToLinePanelController;
99         UnsavedChangesPanelController *unsavedChangesPanelController;
100
101         NSUserDefaults *defaults;
102 }
103
104 - (BOOL)canUseSelectionForFindNow;
105 - (BOOL)canFindNow;
106 - (BOOL)canFindAgainNow;
107 - (IBAction)showFindPanel:(id)sender;
108 - (IBAction)findNext:(id)sender;
109 - (IBAction)findPrevious:(id)sender;
110 - (IBAction)useSelectionForFind:(id)sender;
111 - (void)findStringWithSearchFlags:(int)flags;
112
113 - (BOOL)canJumpToLineNow;
114 - (IBAction)showJumpToLinePanel:(id)sender;
115
116 - (BOOL)showUnsavedChangesPanel;
117
118 - (void)updateCompleteUI;
119 - (void)updateUI;
120 - (void)doUpdateUI;
121 - (NSTabView *)tabView;
122 - (IBAction)selectTab:(id)sender;
123 - (IBAction)selectTabById:(int)tabId;
124
125 - (IBAction)setProcessorType:(id)sender;
126 - (IBAction)switchProcessorToType:(int)newType updateUI:(BOOL)updateUI;
127
128 - (IBAction)showInBrowser:(id)sender;
129 - (void)uiUpdateTimerTarget:(NSTimer *)timer;
130 - (BOOL)canProcessNow;
131 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem;
132
133 - (void)resizeWebView;
134
135 - (NSTextView *)currentTextView;
136
137 // AppleScript Stuff
138 - (id)handleProcessScriptCommand:(NSScriptCommand *)command;
139 - (id)handleExportScriptCommand:(NSScriptCommand *)command;
140 - (id)handleSetParamScriptCommand:(NSScriptCommand *)command;
141 - (id)handleClearParamScriptCommand:(NSScriptCommand *)command;
142 - (id)handleSetProcessorTypeScriptCommand:(NSScriptCommand *)command;
143
144
145 // AppleScript accessors
146 - (NSString *)xmlcode;
147 - (void)setXmlcode:(NSString *)s;
148 - (NSString *)xsltcode;
149 - (void)setXsltcode:(NSString *)s;
150 - (NSString *)result;
151
152 // Drag and Drop for our custom NSTextView subclass
153 - (BOOL)handleDroppedFile:(NSString *)filename forTextView:(NSTextView *)sender;
154
155 - (IBAction)process:(id)sender;
156 - (IBAction)loadXml:(id)sender;
157 - (IBAction)loadXslt:(id)sender;
158
159 - (BOOL)canSaveXmlAsNow;
160 - (BOOL)canSaveXmlNow;
161 - (BOOL)canSaveXsltAsNow;
162 - (BOOL)canSaveXsltNow;
163 - (BOOL)canSaveResultAsNow;
164 - (BOOL)canSaveResultNow;
165
166 - (IBAction)saveResultAs:(id)sender;
167 - (IBAction)saveResult:(id)sender;
168 - (IBAction)saveXmlAs:(id)sender;
169 - (IBAction)saveXml:(id)sender;
170 - (IBAction)saveXsltAs:(id)sender;
171 - (IBAction)saveXslt:(id)sender;
172 - (IBAction)saveCurrentAs:(id)sender;
173 - (IBAction)saveCurrent:(id)sender;
174 - (IBAction)newParameter:(id)sender;
175 - (IBAction)removeParameter:(id)sender;
176 - (IBAction)openResultURL:(id)sender;
177 - (void)autoSave;
178
179 - (void)updateResultWebView;
180 - (void)updateResultImageView;
181
182 - (IBAction)renderFo:(id)sender;
183
184 - (IBAction)showErrorLocation:(id)sender;
185
186 - (IBAction)pdfPreviousPage:(id)sender;
187 - (IBAction)pdfNextPage:(id)sender;
188 - (IBAction)pdfSaveAs:(id)sender;
189
190 - (void)checkForExternalModifications;
191
192 /*
193 - (IBAction)showXmlTab:(id)sender;
194 - (IBAction)showXsltTab:(id)sender;
195 - (IBAction)showParameterTab:(id)sender;
196 - (IBAction)showResultTab:(id)sender;
197 */
198
199 @end