merged tag ooo/DEV300_m102
[LibreOffice.git] / smoketestoo_native / data / Test_10er.xml
blob56a8d130fc1312a6e8fa75f6f73872d07e9a34dc
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--**********************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org.  If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 **********************************************************************-->
28 <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
29 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_10er" script:language="StarBasic">REM  10er Test
31 const sSWLogFileName = &quot;swlog.dat&quot;, sSCLogFileName = &quot;sclog.dat&quot;
32 const sSDLogFileName = &quot;sdlog.dat&quot;, sSMathLogFileName = &quot;smalog.dat&quot;
33 const sSImDLogFileName = &quot;simlog.dat&quot;, sSChartLogFileName = &quot;schlog.dat&quot;
34 const sSHptLogFileName = &quot;shptlog.dat&quot;, sSMessageLogFileName = &quot;smeslog.dat&quot;
35 const sSDrawLogFileName = &quot;sdrwlog.dat&quot;, sJavaLogFileName = &quot;javalog.dat&quot;
36 const sSDBLogFileName = &quot;dblog.dat&quot;, sExtLogFileName = &quot;extlog.dat&quot;
37 const sLogFileName = &quot;log.dat&quot;
38 const cTempFileName = &quot;ttt&quot;
40 const cMessageSaveOpen8Doc = &quot;Save/Open open Documents (8.0)&quot;
41 const cMessageSaveOpenXMLDoc = &quot;Save/Open Document XML (6/7)&quot;
42 const cMessageNewDoc = &quot;New Document&quot;
43 const cMessageCloseDoc = &quot;Close Document&quot;
45 Global sWorkPath$
46 Global sWorkPathURL$
47 Global FileChannel%
48 Global MainFileChannel%
50 Sub Main
51     call TestAllDocs()
52 end Sub
54 Sub DeleteAllSavedFiles()
55     Dim sFileName as String
56     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter)
57     If FileExists (sFileName) then
58         Kill (sFileName)
59     End If
60     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc)
61     If FileExists (sFileName) then
62         Kill (sFileName)
63     End If
64     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress)
65     If FileExists (sFileName) then
66         Kill (sFileName)
67     End If
68     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw)
69     If FileExists (sFileName) then
70         Kill (sFileName)
71     End If
72     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmHyperText)
73     If FileExists (sFileName) then
74         Kill (sFileName)
75     End If
76     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter or cFltXML)
77     If FileExists (sFileName) then
78         Kill (sFileName)
79     End If
80     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc or cFltXML)
81     If FileExists (sFileName) then
82         Kill (sFileName)
83     End If
84     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress or cFltXML)
85     If FileExists (sFileName) then
86         Kill (sFileName)
87     End If
88     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw or cFltXML)
89     If FileExists (sFileName) then
90         Kill (sFileName)
91     End If
92 End Sub
94 Sub DeleteAllLogFiles()
95     If FileExists (sWorkPath+sLogFileName) then
96         Kill (sWorkPath+sLogFileName)
97     End If
98     If FileExists (sWorkPath+sSWLogFileName) then
99         Kill (sWorkPath+sSWLogFileName)
100     End If
101     If FileExists (sWorkPath+sSCLogFileName) then
102         Kill (sWorkPath+sSCLogFileName)
103     End If
104     If FileExists (sWorkPath+sSDLogFileName) then
105         Kill (sWorkPath+sSDLogFileName)
106     End If
107     If FileExists (sWorkPath+sSMathLogFileName) then
108         Kill (sWorkPath+sSMathLogFileName)
109     End If
110     If FileExists (sWorkPath+sSImDLogFileName) then
111         Kill (sWorkPath+sSImDLogFileName)
112     End If
113     If FileExists (sWorkPath+sSChartLogFileName) then
114         Kill (sWorkPath+sSChartLogFileName)
115     End If
116     If FileExists (sWorkPath+sSHptLogFileName) then
117         Kill (sWorkPath+sSHptLogFileName)
118     End If
119     If FileExists (sWorkPath+sSMessageLogFileName) then
120         Kill (sWorkPath+sSMessageLogFileName)
121     End If
122     If FileExists (sWorkPath+sSDrawLogFileName) then
123         Kill (sWorkPath+sSDrawLogFileName)
124     End If
125     If FileExists (sWorkPath+sJavaLogFileName) then
126         Kill (sWorkPath+sJavaLogFileName)
127     End If
128     If FileExists (sWorkPath+sSDBLogFileName) then
129         Kill (sWorkPath+sSDBLogFileName)
130     End If
131     If FileExists (sWorkPath+sExtLogFileName) then
132         Kill (sWorkPath+sExtLogFileName)
133     End If
134 end Sub
136 Function OpenLogDat (sFileName as String) as Integer
137     Dim LocaleFileChannel%
138     If FileExists (sWorkPath+sFileName) then
139         Kill (sWorkPath+sFileName)
140     End If
141     LocaleFileChannel% = Freefile
142     Open sWorkPath+sFileName For Output As LocaleFileChannel%
143     OpenLogDat = LocaleFileChannel%
144 end Function
146 Function GetWorkPath as string
147     sTemp = &quot;$(userpath)/temp/&quot;
148     GetWorkPath = CreateUnoService(&quot;com.sun.star.config.SpecialConfigManager&quot;).SubstituteVariables(sTemp)
149 End Function
151 Function GetWorkURL as string
152     sTemp = &quot;$(userurl)/temp/&quot;
153     GetWorkURL = CreateUnoService(&quot;com.sun.star.config.SpecialConfigManager&quot;).SubstituteVariables(sTemp)
154 End Function
156 Function GetSystem (sTmpWorkPath as string) as string
157     GetSystem = &quot;&quot;
158     if InStr (sTmpWorkPath, &quot;:&quot;) then
159         GetSystem = &quot;windows&quot;
160     else
161         GetSystem = &quot;unix&quot;
162     End If
163 end Function
165 Function ConvertPathToWin (sTmpWorkPath as string) as string
166     for i%=1 to Len(sTmpWorkPath)
167         sTemp = Mid (sTmpWorkPath, i%, 1)
168         if sTemp = &quot;/&quot; then
169             sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;\&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
170         else
171             if sTemp = &quot;|&quot; then
172                 sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;:&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
173             end If
174         end If
175     next i%
176     ConvertPathToWin = sTmpWorkPath
177 end Function
179 Sub TestAllDocs()
180 DIM sDocURL as String, sDocPath as String
181 DIM nStrPos as Long
183     sWorkPath = GetWorkPath
184     sWorkPathURL = GetWorkURL
186     if GetSystem (sWorkPath) = &quot;windows&quot; then
187         sWorkPath = ConvertPathToWin (sWorkPath)
188     end if
190     &apos;search ExtensionURL
191     sDocURL = gOutPutDoc.URL
192     CompatibilityMode(true)
193     nStrPos = InStrRev (sDocURL, &quot;/&quot; )
194     CompatibilityMode(false)
195     sExtensionURL = Left (sDocURL, nStrPos)
197     call DeleteAllSavedFiles()
198     call DeleteAllLogFiles()
199     MainFileChannel = OpenLogDat (sLogFileName)
200     call WriteTestSequence (MainFileChannel)
201     if bMakeWriterTest then
202         call MakeDocTest (frmWriter)
203     end if
204     if bMakeCalcTest then
205         call MakeDocTest (frmCalc)
206     end if
207     if bMakeImpressTest then
208         call MakeDocTest (frmImpress)
209     end if
210     if bMakeDrawTest then
211         call MakeDocTest (frmDraw)
212     end if
213     if bMakeHTMLTest then
214         call MakeDocTest (frmHyperText)
215     end if
216     if bMakeChartTest then
217         call MakeChartTest (frmChart)
218     end if
219     if bMakeMathTest then
220         call MakeNewDoc (frmMath)
221     end if
222     if bMakeJavaTest then
223         call TestJava (frmJava)
224     end if
225     if bMakeDBTest then
226         call Test_DB.TestDB (frmDataBase)
227     end if
228     if bMakeExtensionTest then
229         call Test_Ext.TestExtensions (frmExtension)
230     end if
232     Close #MainFileChannel
233 end Sub
235 Sub WriteTestSequence (FileChannel as integer)
236     Print #FileChannel, &quot;Sequence of testing&quot;
238     if bMakeWriterTest then
239         WriteTests (&quot;writer  : &quot;, true, FileChannel)
240     end if
241     if bMakeCalcTest then
242         WriteTests (&quot;calc    : &quot;, true, FileChannel)
243     end if
244     if bMakeImpressTest then
245         WriteTests (&quot;impress : &quot;, true, FileChannel)
246     end if
247     if bMakeDrawTest then
248         WriteTests (&quot;draw    : &quot;, true, FileChannel)
249     end if
250     if bMakeHTMLTest then
251         WriteTests (&quot;HTML    : &quot;, true, FileChannel)
252     end if
253     if bMakeChartTest then
254         WriteTests (&quot;chart   : &quot;, false, FileChannel)
255     end if
256     if bMakeMathTest then
257         WriteTests (&quot;math    : &quot;, false, FileChannel)
258     end if
259     if bMakeJavaTest then
260         WriteTests (&quot;Java    : &quot;, false, FileChannel)
261     end if
262     if bMakeDBTest then
263         WriteDBTests (&quot;Database    : &quot;, FileChannel)
264     end if
265     if bMakeExtensionTest then
266         WriteExtensionTests (&quot;Extension    : &quot;, FileChannel)
267     end if
269     Print #FileChannel
270 end Sub
272 Sub WriteTests (sText as string, bTestAll as boolean, nFileChannel as integer)
273     Dim sWriteStr as string
275     sWriteStr = sText
276     sWriteStr = sWriteStr + &quot;new&quot;
277     if bTestAll then
278     if bMakeSaveOpen8Test then
279         sWriteStr = sWriteStr + &quot;, save 8.0&quot;
280     end if
281     if bMakeSaveOpenXMLTest then
282         sWriteStr = sWriteStr + &quot;, save XML&quot;
283     end if
284     if bMakeSaveOpen8Test then
285         sWriteStr = sWriteStr + &quot;, open 8.0&quot;
286     end if
287     if bMakeSaveOpenXMLTest then
288         sWriteStr = sWriteStr + &quot;, open XML&quot;
289     end if
290     end if
292     sWriteStr = sWriteStr + &quot;, close&quot;
294     Print #nFileChannel, sWriteStr
295 end Sub
297 Sub WriteDBTests (sText as string, nFileChannel as integer)
298     Dim sWriteStr as string
300     sWriteStr = sText
301     sWriteStr = sWriteStr + &quot;open / services&quot;
302     sWriteStr = sWriteStr + &quot;, insert&quot;
303     sWriteStr = sWriteStr + &quot;, delete&quot;
304     sWriteStr = sWriteStr + &quot;, seek&quot;
305     sWriteStr = sWriteStr + &quot;, close&quot;
307     Print #nFileChannel, sWriteStr
308 end Sub
310 Sub WriteExtensionTests (sText as string, nFileChannel as integer)
311     Dim sWriteStr as string
313     sWriteStr = sText
314     sWriteStr = sWriteStr + &quot;services&quot;
315     sWriteStr = sWriteStr + &quot;, install&quot;
316     sWriteStr = sWriteStr + &quot;, uninstall&quot;
318     Print #nFileChannel, sWriteStr
319 end Sub
321 Sub MakeDocTest (FilterType as Integer)
322     Dim oDoc as Object
323     Dim sFileNameXML$, sFileName8$
324     Dim bError as Boolean
325     Dim nCurrentAction as Integer
327     On Local Error GoTo DOCTESTERROR
328     nCurrentAction = cLogfileFailed
329     FileChannel% = OpenLogDat (GetLogFileName(FilterType))
330     nCurrentAction = cDocNew
331     oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(FilterType or cFltNewDoc))
332     LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
333     LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
334     SetStatus (FilterType, cDocNew, not IsNull (oDoc))
335     if not IsNull (oDoc) then
336         nCurrentAction = cDocSaveOpen8
337         if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then
338             sFileName8 = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(FilterType or cFlt8)
339             SaveDoc (sFileName8, oDoc, GetDocFilter(FilterType or cFlt8))
340         end if
341         nCurrentAction = cDocSaveOpenXML
342         if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then
343             sFileNameXML = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(FilterType or cFltXML)
344             SaveDoc (sFileNameXML, oDoc, GetDocFilter(FilterType or cFltXML))
345         end if
346 &apos;      oDoc.dispose
347         nCurrentAction = cDocClose
348         oDoc.close (true)
349 &apos;      bError = true &apos; nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht
350 &apos;      LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, FileChannel)
351 &apos;      LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, MainFileChannel)
352 &apos;      SetStatus (FilterType, cDocClose, bError)
353         nCurrentAction = cDocSaveOpen8
354         if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then
355             oDoc = LoadDoc (sFileName8)
357 &apos;          oDoc = Documents.open(sFileName)
358             LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, FileChannel)
359             LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, MainFileChannel)
360             SetStatus (FilterType, cDocSaveOpen8, not IsNull (oDoc))
362             if not IsNull (oDoc) then
363 &apos;              oDoc.dispose
364                 nCurrentAction = cDocClose
365                 oDoc.close (true)
366             end If
367         end if
369         nCurrentAction = cDocSaveOpenXML
370         if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then
371             oDoc = LoadDoc (sFileNameXML)
373 &apos;          oDoc = Documents.open(sFileName)
374             LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpenXMLDoc, FileChannel)
375             LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpenXMLDoc, MainFileChannel)
376             SetStatus (FilterType, cDocSaveOpenXML, not IsNull (oDoc))
378             if not IsNull (oDoc) then
379 &apos;              oDoc.dispose
380                 nCurrentAction = cDocClose
381                 oDoc.close (true)
382             end If
383         end if
385     end If
386     Print #FileChannel, &quot;---&quot;
387     Close #FileChannel%
388     Exit Sub &apos; Without error
390     DOCTESTERROR:
391     If  (nCurrentAction = cLogfileFailed) then
392         SetStatus (FilterType, cDocNew, False)
393         Exit Sub
394     else
395         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
396         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
397         SetStatus (FilterType, nCurrentAction, False)
398         Close #FileChannel%
399     End If
400     Exit Sub &apos; With error
401 End Sub
403 Sub MakeNewDoc (FilterType as Integer)
404     DIM oDoc as Object
405     Dim bError as Boolean
406     Dim nCurrentAction as Integer
407     On Local Error GoTo DOCTESTERROR2
408     nCurrentAction = cLogfileFailed
409     FileChannel% = OpenLogDat (GetLogFileName(FilterType))
410     nCurrentAction = cDocNew
411 &apos;  oDoc = Documents.Add(GetDocFilter(FilterType))
412     oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(FilterType or cFltNewDoc))
413     LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
414     LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
415     SetStatus (FilterType, cDocNew, not IsNull (oDoc))
416     if not IsNull (oDoc) then
417         nCurrentAction = cDocClose
418 &apos;      oDoc.dispose
419         oDoc.close (true)
420 &apos;      bError = true &apos; nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht
421 &apos;      LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, FileChannel)
422 &apos;      LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, MainFileChannel)
423 &apos;      SetStatus (FilterType, cDocClose, bError)
424     end If
425     Print #FileChannel, &quot;---&quot;
426     Close #FileChannel%
427     Exit Sub &apos; Without error
429     DOCTESTERROR2:
430     If  (nCurrentAction = cLogfileFailed) then
431         SetStatus (FilterType, cDocNew, False)
432         Exit Sub
433     else
434         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
435         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
436         SetStatus (FilterType, nCurrentAction, False)
437         Close #FileChannel%
438     End If
439     Exit Sub &apos; With error
440 End Sub
442 Sub MakeChartTest (FilterType as Integer)
443     Dim oCharts as Object
444     Dim oDoc as Object
445     Dim oRange(0) as New com.sun.star.table.CellRangeAddress
446     Dim oRect as New com.sun.star.awt.Rectangle
447     const cChartName=&quot;TestChart&quot;
448     Dim bError as Boolean
449     Dim nCurrentAction as Integer
450     On Local Error GoTo CHARTTESTERROR
451     nCurrentAction = cLogfileFailed
452     FileChannel% = OpenLogDat (GetLogFileName(FilterType))
453     nCurrentAction = cDocNew
454     oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(frmCalc or cFltNewDoc))
455     if not IsNull (oDoc) then
456         oCharts = oDoc.sheets(0).Charts
457         oCharts.AddNewByName (cChartName, oRect, oRange(), true, true)
458         bError=oCharts.HasByName(cChartName)
459         LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
460         LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
461         SetStatus (FilterType, cDocNew, bError)
462 &apos;      oDoc.dispose
463         nCurrentAction = cDocClose
464         oDoc.close (true)
465     else
466         LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
467         LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
468         SetStatus (frmCalc, cDocNew, not IsNull (oDoc))
469     End if
470     Print #FileChannel, &quot;---&quot;
471     Close #FileChannel%
472     Exit Sub &apos; Without error
474     CHARTTESTERROR:
475     If  (nCurrentAction = cLogfileFailed) then
476         SetStatus (FilterType, cDocNew, False)
477         Exit Sub
478     else
479         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
480         LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
481         SetStatus (FilterType, nCurrentAction, False)
482         Close #FileChannel%
483     End If
484     Exit Sub &apos; With error
485 End Sub
487 Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer)
488     if bState then
489         Print #nLocaleFileChannel, sText+&quot; -&gt; ok&quot;
490     else
491         Print #nLocaleFileChannel, sText+&quot; -&gt; error&quot;
492     end If
493 end Sub
495 Function GetDocEndings (DocType as Integer) as String
496     Select Case ( DocType )
497         case frmWriter or cFlt8
498             GetDocEndings = &quot;odt&quot; &apos; Textdokument
499         case frmCalc or cFlt8
500             GetDocEndings = &quot;ods&quot; &apos;Tabellendokument
501         case frmImpress or cFlt8
502             GetDocEndings = &quot;odp&quot; &apos;PrÕsentation
503         case frmDraw or cFlt8
504             GetDocEndings = &quot;odg&quot; &apos;Zeichen
505         case frmHyperText, frmHyperText or cFltXML
506             GetDocEndings = &quot;html&quot; &apos;Hypertext-Dokument
507         case frmWriter or cFltXML
508             GetDocEndings = &quot;sxw&quot; &apos; Textdokument
509         case frmCalc or cFltXML
510             GetDocEndings = &quot;sxc&quot; &apos;Tabellendokument
511         case frmImpress or cFltXML
512             GetDocEndings = &quot;sxi&quot; &apos;PrÕsentation
513         case frmDraw or cFltXML
514             GetDocEndings = &quot;sxd&quot; &apos;Zeichen
515         case else
516             GetDocEndings = &quot;&quot;
517     end Select
518 end Function
520 Function GetDocFilter (DocType as Integer) as String
521     Select Case ( DocType )
522         case frmWriter or cFlt8
523             GetDocFilter = &quot;writer8&quot; &apos; Textdokument
524         case frmCalc or cFlt8
525             GetDocFilter = &quot;calc8&quot; &apos;Tabellendokument
526         case frmImpress or cFlt8
527             GetDocFilter = &quot;impress8&quot; &apos;Präsentation
528         case frmDraw or cFlt8
529             GetDocFilter = &quot;draw8&quot; &apos;Zeichen
530         case frmMath or cFlt8
531             GetDocFilter = &quot;math8&quot; &apos;Formel
533         case frmWriter or cFltXML
534             GetDocFilter = &quot;StarOffice XML (Writer)&quot; &apos; Textdokument
535         case frmCalc or cFltXML
536             GetDocFilter = &quot;StarOffice XML (Calc)&quot; &apos;Tabellendokument
537         case frmImpress or cFltXML
538             GetDocFilter = &quot;StarOffice XML (Impress)&quot; &apos;Präsentation
539         case frmDraw or cFltXML
540             GetDocFilter = &quot;StarOffice XML (Draw)&quot; &apos;Zeichen
541         case frmMath or cFltXML
542             GetDocFilter = &quot;StarOffice XML (Math)&quot; &apos;Formel
544         case frmHyperText, frmHyperText or cFltXML
545             GetDocFilter = &quot;HTML&quot; &apos;Hypertext-Dokument
547         case frmWriter or cFltNewDoc
548             GetDocFilter = &quot;swriter&quot; &apos; Textdokument
549         case frmCalc or cFltNewDoc
550             GetDocFilter = &quot;scalc&quot; &apos;Tabellendokument
551         case frmMessage or cFltNewDoc
552             GetDocFilter = &quot;Message&quot; &apos;Nachricht
553         case frmImpress or cFltNewDoc
554             GetDocFilter = &quot;simpress&quot; &apos;Präsentation
555         case frmDraw or cFltNewDoc
556             GetDocFilter = &quot;sdraw&quot; &apos;Zeichen
557         case frmMath or cFltNewDoc
558             GetDocFilter = &quot;smath&quot; &apos;Formel
559         case frmImage or cFltNewDoc
560             GetDocFilter = &quot;simage&quot; &apos;Bild
561         case frmHyperText or cFltNewDoc
562             GetDocFilter = &quot;swriter/web&quot; &apos;Hypertext-Dokument
563         case frmChart or cFltNewDoc
564             GetDocFilter = &quot;schart&quot; &apos;Diagramm
565         case else
566             GetDocFilter = &quot;&quot;
567     end Select
568 end Function
570 Function GetLogFileName (DocType as Integer) as String
571     Select Case ( DocType )
572         case frmWriter
573             GetLogFileName = sSWLogFileName &apos; Textdokument
574         case frmCalc
575             GetLogFileName = sSCLogFileName &apos;Tabellendokument
576         case frmMessage
577             GetLogFileName = sSMessageLogFileName &apos;Nachricht
578         case frmImpress
579             GetLogFileName = sSDLogFileName &apos;PrÕsentation
580         case frmDraw
581             GetLogFileName = sSDrawLogFileName &apos;Zeichnen
582         case frmMath
583             GetLogFileName = sSMathLogFileName &apos;Formel
584         case frmImage
585             GetLogFileName = sSImDLogFileName &apos;Bild
586         case frmHyperText
587             GetLogFileName = sSHptLogFileName &apos;Hypertext-Dokument
588         case frmChart
589             GetLogFileName = sSChartLogFileName &apos;Diagramm
590         case frmJava
591             GetLogFileName = sJavaLogFileName &apos;Java
592         case frmDataBase
593             GetLogFileName = sSDBLogFileName &apos;Database
594         case frmExtension
595             GetLogFileName = sExtLogFileName &apos;Extension
596         case else
597             GetLogFileName = &quot;&quot;
598     end Select
599 end Function
601 Function GetErrorMessageOnAction (nAction as Integer) as String
602     Select Case ( nAction )
603         case cDocNew
604             GetErrorMessageOnAction = cMessageNewDoc
605         case cDocSaveOpen8
606             GetErrorMessageOnAction = cMessageSaveOpen8Doc
607         case cDocSaveOpenXML
608             GetErrorMessageOnAction = cMessageSaveOpenXMLDoc
609         case cDocClose
610             GetErrorMessageOnAction = cMessageCloseDoc
611         case else
612             GetErrorMessageOnAction = &quot;&quot;
613     end Select
614 end Function
616 Function IsFilterAvailable (FilterType as Integer) as boolean
617     IsFilterAvailable = true
618     if ((FilterType = (frmHyperText or cFltXML))) then
619         IsFilterAvailable = false
620     end if
621 End Function
623 Function TestJava (FilterType as Integer) as boolean
624     Dim oObj as Object
625     FileChannel% = OpenLogDat (GetLogFileName(FilterType))
626     oObj = createUnoService(cUnoJavaLoader)
627     LogState (not IsNull (oObj), &quot;Java &quot;+ cMessageNewDoc, FileChannel)
628     LogState (not IsNull (oObj), &quot;Java &quot;+ cMessageNewDoc, MainFileChannel)
629     SetStatus (FilterType, cDocNew, not IsNull (oObj))
631     Print #FileChannel, &quot;---&quot;
632     Close #FileChannel%
634     TestJava = not IsNull (oObj)
635 End Function
637 Sub LoadLibrary( LibName as String )
639     dim args(1)
640     dim arg as new com.sun.star.beans.PropertyValue
641     arg.Name = &quot;LibraryName&quot;
642     arg.Value = LibName
643     args(0) = arg
645     dim url as new com.sun.star.util.URL
646     dim trans as object
647     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
648     url.Complete = &quot;slot:6517&quot;
649     trans.parsestrict( url )
651     dim disp as object
652     disp = StarDesktop.currentFrame.queryDispatch( url, &quot;&quot;, 0 )
653     disp.dispatch( url, args() )
655 End Sub
657 Sub LoadDoc (DocName as String) as Object
658     dim trans as object
659     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
660     url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
661     url.Complete = DocName
662     if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
663     trans.parsestrict( url )
664     endif
666     Dim aPropArray(0) as Object
667     aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
668     aPropArray(0).Name = &quot;OpenFlags&quot;
669     aPropArray(0).Value = &quot;S&quot;
671     dim doc as object
672     dim noargs()
673     doc = StarDesktop.loadComponentFromURL( url.Complete, &quot;_blank&quot;, 0, aPropArray() ) &apos; XModel
674     LoadDoc = doc
675 End Sub
677 Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string )
678     dim trans as object
679     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
680     url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
681     url.Complete = DocName
682     if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
683     trans.parsestrict( url )
684     endif
686     if not (sFilterName = &quot;&quot;) then
687         Dim aPropArray(0) as Object
688         aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
689         aPropArray(0).Name = &quot;FilterName&quot;
690         aPropArray(0).Value = sFilterName
692         oDoc.storeAsURL( url.Complete, aPropArray() )
693     else
694         MessageBox &quot;Filtername is unknown!&quot;
695     end if
696 end Sub
697 </script:module>