1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="DialogModul" script:language="StarBasic">Option Explicit
4
5Public Const bDebugWizard = True
6
7Public Const SBFIRSTAPPLCHECKED = 0
8Public Const SBSECONDAPPLCHECKED = 1
9Public Const SBTHIRDAPPLCHECKED = 2
10Public Const SBFOURTHAPPLCHECKED = 3
11Public bFilterTracingAvailable as Boolean
12Public WizardMode as String
13Public Const SBMICROSOFTMODE = &quot;MS&quot;
14Public Const SBXMLMODE = &quot;SO&quot;
15&apos; The absolute maximal Number of possible Applications
16Public Const Twip = 425
17Public Const SBMAXAPPLCOUNT = 4
18Public MaxApplCount as Integer
19Public CurOffice As Integer
20Public SOBitmapPath As String
21Public SOWorkPath As String
22Public SOTemplatePath as String
23Public bCancelTask As Boolean
24Public bDoKeepApplValues as Boolean
25Public iApplSection as Integer
26Public oUcb as Object
27Public PathSeparator as String
28
29Public ApplCount as Integer
30Public sKeyName(SBMAXAPPLCOUNT-1) as String
31Public sValueName(SBMAXAPPLCOUNT-1) as String
32Public sCRLF as String
33Public MSFilterName(5,4) as String
34Public XMLFilterName(7,3) as String &apos;Number of different formats
35Public FilterTracingLogPath(2) as String
36Public bMSApplFilterTracingAvailable(2) as String
37Public bTakeOverTargetName(2) as Boolean
38Public bTakeOverPathName(2) as Boolean
39
40&apos; e.g.:
41&apos; XMLFilterName(x,0) = &quot;sdw&quot; 						&apos; in documents we take the extensions; in SO-templates the appropriate Filtername
42&apos; XMLFilterName(x,1) = &quot;swriter: StarWriter 5.0&quot; 	&apos; the filtername of the target-format
43&apos; XMLFilterName(x,2) = &quot;sxw&quot; 						&apos; the target extension
44
45Public Applications(SBMAXAPPLCOUNT-1,9)
46
47Public Const SBAPPLCONVERT = 0
48Public Const SBDOCCONVERT = 1
49Public Const SBDOCRECURSIVE = 2
50Public Const SBDOCSOURCE = 3
51Public Const SBDOCTARGET = 4
52Public Const SBTEMPLCONVERT = 5
53Public Const SBTEMPLRECURSIVE = 6
54Public Const SBTEMPLSOURCE = 7
55Public Const SBTEMPLTARGET = 8
56Public Const SBAPPLKEY = 9
57Public XMLTemplateList()
58
59&apos; Application-relating Data are stored in this Array
60&apos; according to the following structure:
61&apos; Applications(X,0) = True/False 		(Application is to be converted)
62&apos; Applications(X,1) = True/False 		(Documents are to be converted)
63&apos; Applications(X,2) = True/False		(Including Subdirectories)
64&apos; Applications(X,3) = &quot;File:///...&quot;		(SourceUrl of the documents)
65&apos; Applications(X,4) = &quot;File///:...&quot;		(TargetUrl of the documents)
66&apos; Applications(X,5) = True/False		(Templates are to be converted)
67&apos; Applications(X,6) = True/False 		(Including Subdirectories)
68&apos; Applications(X,7) = &quot;File:///...&quot;		(SourceUrl of the templates)
69&apos; Applications(X,8) = &quot;File:///...&quot; 	(TargetUrl of the templates)
70&apos; Applications(X,9) = 0				    (Key to the original Index of the Applications)
71
72Public Const SBMAXEXTENSIONLENGTH = 15
73
74
75Sub FillStep_Welcome()
76Dim i as Integer
77&apos;	bDoKeepApplValues = False
78	ImportDialogArea.Title = sTitle
79	With ImportDialog
80		.cmdHelp.Label = sHelpButton
81		.cmdCancel.Label = sCancelButton
82		.cmdBack.Label = sBackButton
83		.cmdGoOn.Label = sNextButton
84		.WelcomeTextLabel.Label = sWelcomeTextLabel1
85		.WelcomeTextLabel2.Label = sWelcomeTextLabel2
86		.WelcomeTextLabel3.Label = sWelcomeTextLabel3
87
88		.optMSDocuments.Label = sContainerName(0)
89		.chkMSApplication1.Label = sMsDocumentCheckbox(0)
90		.chkMSApplication2.Label = sMsDocumentCheckbox(1)
91		.chkMSApplication3.Label = sMsDocumentCheckbox(2)
92
93		.optSODocuments.Label = sContainerName(1)
94		.chkSOApplication1.Label = sSODocumentCheckbox(0)
95		.chkSOApplication2.Label = sSODocumentCheckbox(1)
96		.chkSOApplication3.Label = sSODocumentCheckbox(2)
97		.chkSOApplication4.Label = sSODocumentCheckbox(3)
98		.cmdBack.Enabled = False
99		.Step = 1
100
101		If Not oFactoryKey.hasbyName(&quot;com.sun.star.text.TextDocument&quot;) Then
102			.chkLogfile.State = 0
103			.chkLogfile.Enabled = False
104		End If
105	End With
106	CheckModuleInstallation()
107	ToggleNextButton()
108End Sub
109
110
111Sub FillStep_InputPaths(OfficeIndex as Integer, bStartup as Boolean)
112Dim Index as Integer
113Dim oNullObject as Object
114	If bStartup And Not bDoKeepApplValues Then
115	    If ImportDialog.optMSDocuments.State = 1 Then
116			SetupMSConfiguration()
117		Else
118			SetupXMLConfiguration()
119		End If
120		FillUpApplicationList()
121	End If
122	CurOffice = OfficeIndex
123	Index = Applications(CurOffice,SBAPPLKEY)
124	InitializePathsforCurrentApplication(Index)
125	With ImportDialog
126		.chkTemplatePath.Label = sTemplateCheckbox(Index)
127    	.chkDocumentPath.State = Abs(Applications(CurOffice,SBDOCCONVERT))
128 	  	.chkDocumentSearchSubDir.State = Abs(Applications(CurOffice,SBDOCRECURSIVE))
129		.txtDocumentImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCSOURCE))
130		.txtDocumentExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCTARGET))
131		.hlnDocuments.Label = sProgressMoreDocs
132		If WizardMode = SBXMLMODE Then
133			ImportDialogArea.Title = sTitle &amp; &quot; - &quot; &amp; sSODocumentCheckBox(Index)
134		Else
135			ImportDialogArea.Title = sTitle &amp; &quot; - &quot; &amp; sMSDocumentCheckBox(Index)
136		End If
137		If WizardMode = SBXMLMODE AND Index = 3 Then
138			&apos; Note: SO-Helper Applications are partly treated like templates although they only have documents
139			.hlnTemplates.Label = sProgressMoreDocs
140			.chkTemplatePath.Label = sSOHelperDocuments(0,0)
141			.chkTemplatePath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(0,1))
142			.chkDocumentPath.Label = sSOHelperDocuments(1,0)
143			.chkDocumentPath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(1,1))
144		Else
145			.chkTemplatePath.Enabled = True
146			.chkDocumentPath.Enabled = True
147			.chkTemplatePath.Label = sTemplateCheckbox(Index)
148			.chkDocumentPath.Label = sDocumentCheckbox(Index)
149			.hlnTemplates.Label = sProgressMoreTemplates
150		End If
151		.chkTemplatePath.State = Abs(Applications(CurOffice,SBTEMPLCONVERT))
152		ToggleInputPaths(oNullObject,&quot;Template&quot;)
153		ToggleInputPaths(oNullObject,&quot;Document&quot;)
154		.chkTemplateSearchSubDir.State = Abs(Applications(CurOffice,SBTEMPLRECURSIVE))
155		.txtTemplateImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLSOURCE))
156		.txtTemplateExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLTARGET))
157		.cmdGoOn.Label = sNextButton
158		.cmdBack.Enabled = True
159		ImportDialog.Step = 2
160	End With
161	ImportDialogArea.GetControl(&quot;chkTemplatePath&quot;).SetFocus()
162	ToggleNextButton()
163End Sub
164
165
166Sub FillUpApplicationList()
167Dim i as Integer
168Dim a as Integer
169Dim BoolValue as Boolean
170	If Not bDoKeepApplValues Then
171		a = 0
172		For i = 1 To ApplCount
173		    If ImportDialog.optMSDocuments.State = 1 Then
174				BoolValue = ImportDialogArea.GetControl(&quot;chkMSApplication&quot; &amp; i).Model.State = 1
175			Else
176				BoolValue = ImportDialogArea.GetControl(&quot;chkSOApplication&quot; &amp; i).Model.State = 1
177			End If
178			Applications(a,SBAPPLCONVERT) = BoolValue
179			Applications(a,SBDOCCONVERT) = BoolValue
180			Applications(a,SBDOCRECURSIVE) = BoolValue
181			Applications(a,SBDOCSOURCE) = &quot;&quot;			&apos; GetDefaultPath(i)
182			Applications(a,SBDOCTARGET) = &quot;&quot;			&apos; SOWorkPath
183			Applications(a,SBTEMPLCONVERT) = BoolValue
184			Applications(a,SBTEMPLRECURSIVE) = BoolValue
185			Applications(a,SBTEMPLSOURCE) = &quot;&quot; 			&apos; GetTemplateDefaultPath(i)
186			Applications(a,SBTEMPLTARGET) = &quot;&quot; 			&apos; GetTargetTemplatePath(i)
187			Applications(a,SBAPPLKEY) = i-1
188			If BoolValue Then
189				a = a + 1
190			End If
191		Next i
192		ApplCount = a
193	End If
194End Sub
195
196
197Sub InitializePathsforCurrentApplication(i as Integer)
198	AssignPathToCurrentApplication(SBDOCSOURCE, GetDefaultPath(i))
199	AssignPathToCurrentApplication(SBDOCTARGET, SOWorkPath)
200	AssignPathToCurrentApplication(SBTEMPLSOURCE, GetTemplateDefaultPath(i))
201	AssignPathToCurrentApplication(SBTEMPLTARGET, GetTargetTemplatePath(i))
202End Sub
203
204
205Sub AssignPathToCurrentApplication(Index as Integer, NewPath as String)
206	If Applications(CurOffice,Index) = &quot;&quot; Then
207		If CurOffice &gt; 0 Then
208			Applications(CurOffice,Index) = Applications(CurOffice-1,Index)
209		Else
210			Applications(CurOffice,Index) = NewPath
211		End If
212	End If
213End Sub
214
215
216Sub SaveStep_InputPath()
217	Applications(CurOffice,SBDOCCONVERT)  = ImportDialog.chkDocumentPath.State = 1
218	Applications(CurOffice,SBDOCRECURSIVE)  = ImportDialog.chkDocumentSearchSubDir.State = 1
219	Applications(CurOffice,SBDOCSOURCE)  = ConvertToURL(ImportDialog.txtDocumentImportPath.Text)
220	Applications(CurOffice,SBDOCTARGET) = ConvertToUrl(ImportDialog.txtDocumentExportPath.Text)
221    Applications(CurOffice,SBTEMPLCONVERT) = ImportDialog.chkTemplatePath.State = 1
222    Applications(CurOffice,SBTEMPLRECURSIVE) = ImportDialog.chkTemplateSearchSubDir.State = 1
223	Applications(CurOffice,SBTEMPLSOURCE) = ConvertToURL(ImportDialog.txtTemplateImportPath.Text)
224	Applications(CurOffice,SBTEMPLTARGET) = ConvertToURL(ImportDialog.txtTemplateExportPath.Text)
225End Sub
226
227
228Sub ToggleInputPaths(aEvent as Object, Optional sDocType)
229Dim bDoEnable as Boolean
230Dim sLocDocType as String
231Dim oCheckBox as Object
232	If Not IsNull(aEvent) Then
233		sLocDocType = aEvent.Source.Model.Tag
234	Else
235		sLocDocType = sDocType
236	End If
237	With ImportDialogArea
238		oCheckBox = .GetControl(&quot;chk&quot; &amp; sLocDocType &amp; &quot;Path&quot;).Model
239    	bDoEnable = oCheckBox.State = 1 And oCheckBox.Enabled
240		.GetControl(&quot;lbl&quot; &amp; sLocDocType &amp; &quot;Import&quot;).Model.Enabled = bDoEnable
241		.GetControl(&quot;lbl&quot; &amp; sLocDocType &amp; &quot;Export&quot;).Model.Enabled = bDoEnable
242		.GetControl(&quot;txt&quot; &amp; sLocDocType &amp; &quot;ImportPath&quot;).Model.Enabled = bDoEnable
243		.GetControl(&quot;txt&quot; &amp; sLocDocType &amp; &quot;ExportPath&quot;).Model.Enabled = bDoEnable
244		.GetControl(&quot;chk&quot; &amp; sLocDocType &amp; &quot;SearchSubDir&quot;).Model.Enabled = bDoEnable
245		.GetControl(&quot;cmd&quot; &amp; sLocDocType &amp; &quot;Import&quot;).Model.Enabled = bDoEnable
246		.GetControl(&quot;cmd&quot; &amp; sLocDocType &amp; &quot;Export&quot;).Model.Enabled = bDoEnable
247	End With
248	ToggleNextButton()
249End Sub
250
251
252Function MakeSummaryString()
253Dim sTmpText As String
254Dim i as Integer
255Dim Index as Integer
256Dim sAddText as String
257	For i = 0 To ApplCount -1
258		Index = Applications(i,SBAPPLKEY)
259		GetFilterTracingLogPath(i, Index)
260		If 	Applications(i,SBTEMPLCONVERT) Then
261			&apos; Templates are to be converted
262			sAddText = &quot;&quot;
263			If WizardMode = SBMICROSOFTMODE Then
264				sAddText = sSumMSTemplates(Index) &amp; sCRLF
265			Else
266				sAddText = sSumSOTemplates(Index) &amp; sCRLF
267			End If
268			sTmpText = sTmpText &amp; sAddText &amp;  ConvertFromUrl(Applications(i,SBTEMPLSOURCE)) &amp; sCRLF
269			If Applications(i,SBTEMPLRECURSIVE) Then
270				&apos; Including Subdirectories
271				sTmpText = sTmpText &amp; sSumInclusiveSubDir &amp; sCRLF
272			End If
273			sTmpText = sTmpText &amp; sSumSaveDocuments &amp; sCRLF
274			sTmpText = sTmpText &amp; ConvertFromUrl(Applications(i,SBTEMPLTARGET)) &amp; sCRLF
275			sTmpText = sTmpText &amp; sCRLF
276		End If
277
278		If Applications(i,SBDOCCONVERT) Then
279			&apos; Documents are to be converted
280			If WizardMode = SBMICROSOFTMODE Then
281				sAddText = sSumMSDocuments(Index) &amp; sCRLF
282			Else
283				sAddText = sSumSODocuments(Index) &amp; sCRLF
284			End If
285			sTmpText = sTmpText &amp; sAddText &amp; ConvertFromUrl(Applications(i,SBDOCSOURCE)) &amp; sCRLF
286
287			If Applications(i,SBDOCRECURSIVE) Then
288				&apos; Including Subdirectories
289				sTmpText = sTmpText &amp; sSumInclusiveSubDir &amp; sCRLF
290			End If
291
292			sTmpText = sTmpText &amp; sSumSaveDocuments &amp; sCRLF
293			sTmpText = sTmpText &amp; ConvertFromUrl(Applications(i,SBDOCTARGET)) &amp; sCRLF
294			sTmpText = sTmpText &amp; sCRLF
295		End If
296	Next i
297	MakeSummaryString = sTmpText
298End Function
299
300
301Sub FillStep_Summary()
302	ImportDialogArea.Title = sTitle
303	With ImportDialog
304		.SummaryTextbox.Text = MakeSummaryString()
305		.cmdGoOn.Enabled = .SummaryTextbox.Text &lt;&gt; &quot;&quot;
306		.cmdGoOn.Label = sBeginButton
307		.SummaryHeaderLabel.Label = sSummaryHeader
308		.Step = 3
309	End With
310	ImportDialogArea.GetControl(&quot;SummaryHeaderLabel&quot;).SetFocus()
311End Sub
312
313
314Sub FillStep_Progress()
315	With ImportDialog
316		.cmdBack.Enabled = False
317		.cmdGoOn.Enabled = False
318	    .hlnProgress.Label = sProgressPage_1
319	    .LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD
320   	 	.LabelRetrieval.Label = sProgressPage_2
321   	 	.LabelCurProgress.Label = sProgressPage_3
322   	 	.LabelCurDocumentRetrieval.Label = &quot;&quot;
323   	 	.LabelCurTemplateRetrieval.Label = &quot;&quot;
324   		.LabelCurDocument.Label = &quot;&quot;
325		.Step = 4
326	End With
327	ImportDialogArea.GetControl(&quot;LabelRetrieval&quot;).SetFocus()
328	If ImportDialog.chkLogfile.State = 1 Then
329		ImportDialog.cmdShowLogFile.DefaultButton = True
330	End If
331End Sub
332
333
334Sub GetFilterTracingLogPath(i as Integer, Index as Integer)
335Dim aNodePath(0) as new com.sun.star.beans.PropertyValue
336Dim oMasterKey
337Dim oImportKey
338Dim oWordKey
339Dim oExcelkey
340Dim oPowerpointKey
341Dim oFilterService
342	aNodePath(0).Name = &quot;nodepath&quot;
343	aNodePath(0).Value = &quot;org.openoffice.Office.Tracing&quot;
344	oFilterService = createUnoService(&quot;com.sun.star.util.FilterTracer&quot;)
345	bFilterTracingAvailable = Not IsNull(oFilterService)
346	If bFilterTracingAvailable Then
347		oMasterkey = GetRegistryKeyContent(&quot;org.openoffice.Office.Tracing/&quot;)
348		If oMasterKey.hasbyName(&quot;Import&quot;) Then
349			oImportKey = GetRegistryKeyContent(&quot;org.openoffice.Office.Tracing/Import&quot;)
350			bMSApplFilterTracingAvailable(i) = CheckMSImportAvailability(oImportkey, MSFiltername(Index, 4), FilterTracingLogPath(i), bTakeOverTargetName(i), bTakeOverPathName(i))
351		End If
352	End If
353End Sub
354
355
356Function CheckMSImportAvailability(oImportkey, MSApplName as String, MSLogPath as String, bTakeOverTargetname as String, bTakeOverpathName as String) as Boolean
357Dim bApplIsAvailable as Boolean
358Dim oApplKey
359Dim LocApplName as String
360Dim LocApplPath as String
361	bApplIsAvailable = oImportKey.hasbyName(MSApplName)
362	If bApplIsAvailable Then
363		oApplKey = oImportKey.getByName(MSApplName)
364		bApplIsAvailable = oApplKey.On
365		LocApplName = oApplKey.Name
366		LocApplPath = oApplKey.Path
367		bTakeOverTargetName = (LocApplName = &quot;&quot;)
368		bTakeOverPathName = (LocApplPath = &quot;&quot;)
369		MSLogPath = LocApplPath &amp; &quot;/&quot; &amp; LocApplName &amp; &quot;.log&quot;
370	End If
371	CheckMSImportAvailability() = bApplIsAvailable
372End Function
373
374
375
376Sub	SetupMSConfiguration()
377	iApplSection = 0
378	Wizardmode = SBMICROSOFTMODE
379	MaxApplCount = 3
380	ApplCount = 3
381	&apos; chkTemplatePath-Captions
382	GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox())
383	&apos; DocumentCheckbox- Captions
384	GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox())
385
386	sKeyName(0) = &quot;Software\Microsoft\Office\8.0\Word\Options&quot;
387	sKeyName(1) = &quot;Software\Microsoft\Office\8.0\Excel\Microsoft Excel&quot;
388	sKeyName(2) = &quot;Software\Microsoft\Office\8.0\PowerPoint\Recent Folder List\Default&quot;
389
390	sValueName(0) = &quot;DOC-PATH&quot;
391	sValueName(1) = &quot;DefaultPath&quot;
392	sValueName(2) = &quot;&quot;
393
394&apos; See definition of Filtername-Array about meaning of fields
395	MSFilterName(0,0) = &quot;doc&quot;
396	MSFilterName(0,1) = &quot;writer8&quot;
397	MSFilterName(0,2) = &quot;odt&quot;
398	MSFilterName(0,3) = sMSDocumentCheckBox(0)
399	MSFilterName(0,4) = &quot;Word&quot;
400
401
402	MSFilterName(1,0) = &quot;xls&quot;
403	MSFilterName(1,1) = &quot;calc8&quot;
404	MSFilterName(1,2) = &quot;ods&quot;
405	MSFilterName(1,3) = sMSDocumentCheckBox(1)
406	MSFilterName(1,4) = &quot;Excel&quot;
407
408	MSFilterName(2,0) = &quot;ppt|pps&quot;
409	MSFilterName(2,1) = &quot;impress8|impress8&quot;
410	MSFilterName(2,2) = &quot;odp|odp&quot;
411	MSFilterName(2,3) = sMSDocumentCheckBox(2)
412	MSFilterName(2,4) = &quot;PowerPoint&quot;
413
414	MSFilterName(3,0) = &quot;dot&quot;
415	MSFilterName(3,1) = &quot;writer8_template&quot;
416	MSFilterName(3,2) = &quot;ott&quot;
417	MSFilterName(3,3) = sMSTemplateCheckBox(0)
418	MSFilterName(3,4) = &quot;Word&quot;
419
420	MSFilterName(4,0) = &quot;xlt&quot;
421	MSFilterName(4,1) = &quot;calc8_template&quot;
422	MSFilterName(4,2) = &quot;ots&quot;
423	MSFilterName(4,3) = sMSTemplateCheckBox(1)
424	MSFilterName(4,4) = &quot;Excel&quot;
425
426	MSFilterName(5,0) = &quot;pot&quot;
427	MSFilterName(5,1) = &quot;impress8_template&quot;
428	MSFilterName(5,2) = &quot;otp&quot;
429	MSFilterName(5,3) = sMSTemplateCheckBox(2)
430	MSFilterName(5,4) = &quot;PowerPoint&quot;
431End Sub
432
433
434
435&apos; This is an extract from &quot;http://util.openoffice.org/source/browse/util/sot/source/base/exchange.cxx?rev=1.25&amp;content-type=text/x-cvsweb-markup&quot;
436&apos; about the listed defined mimetypes that are required to define binary StarOffice templates that have for all applications the same extension &quot;.vor&quot;
437
438&apos; 26 SOT_FORMATSTR_ID_STARWRITER_30*/			{ &quot;application/x-openoffice-starwriter-30;windows_formatname=\&quot;StarWriter 3.0\&quot;&quot;, &quot;StarWriter 3.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
439&apos; 27 SOT_FORMATSTR_ID_STARWRITER_40*/			{ &quot;application/x-openoffice-starwriter-40;windows_formatname=\&quot;StarWriter 4.0\&quot;&quot;, &quot;StarWriter 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
440&apos; 28 SOT_FORMATSTR_ID_STARWRITER_50*/			{ &quot;application/x-openoffice-starwriter-50;windows_formatname=\&quot;StarWriter 5.0\&quot;&quot;, &quot;StarWriter 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
441
442&apos; 29 SOT_FORMATSTR_ID_STARWRITERWEB_40*/		{ &quot;application/x-openoffice-starwriterweb-40;windows_formatname=\&quot;StarWriter/Web 4.0\&quot;&quot;, &quot;StarWriter/Web 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
443&apos; 30 SOT_FORMATSTR_ID_STARWRITERWEB_50*/		{ &quot;application/x-openoffice-starwriterweb-50;windows_formatname=\&quot;StarWriter/Web 5.0\&quot;&quot;, &quot;StarWriter/Web 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
444
445&apos; 31 SOT_FORMATSTR_ID_STARWRITERGLOB_40*/		{ &quot;application/x-openoffice-starwriterglob-40;windows_formatname=\&quot;StarWriter/Global 4.0\&quot;&quot;, &quot;StarWriter/Global 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
446&apos; 32 SOT_FORMATSTR_ID_STARWRITERGLOB_50*/		{ &quot;application/x-openoffice-starwriterglob-50;windows_formatname=\&quot;StarWriter/Global 5.0\&quot;&quot;, &quot;StarWriter/Global 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
447
448&apos; 33 SOT_FORMATSTR_ID_STARDRAW*/				{ &quot;application/x-openoffice-stardraw;windows_formatname=\&quot;StarDrawDocument\&quot;&quot;, &quot;StarDrawDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
449&apos; 34 SOT_FORMATSTR_ID_STARDRAW_40*/				{ &quot;application/x-openoffice-stardraw-40;windows_formatname=\&quot;StarDrawDocument 4.0\&quot;&quot;, &quot;StarDrawDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
450&apos; 36 SOT_FORMATSTR_ID_STARDRAW_50*/				{ &quot;application/x-openoffice-stardraw-50;windows_formatname=\&quot;StarDraw 5.0\&quot;&quot;, &quot;StarDraw 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
451
452&apos; 35 SOT_FORMATSTR_ID_STARIMPRESS_50*/			{ &quot;application/x-openoffice-starimpress-50;windows_formatname=\&quot;StarImpress 5.0\&quot;&quot;, &quot;StarImpress 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
453
454&apos; 37 SOT_FORMATSTR_ID_STARCALC*/				{ &quot;application/x-openoffice-starcalc;windows_formatname=\&quot;StarCalcDocument\&quot;&quot;, &quot;StarCalcDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
455&apos; 38 SOT_FORMATSTR_ID_STARCALC_40*/				{ &quot;application/x-openoffice-starcalc-40;windows_formatname=\&quot;StarCalc 4.0\&quot;&quot;, &quot;StarCalc 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
456&apos; 39 SOT_FORMATSTR_ID_STARCALC_50*/				{ &quot;application/x-openoffice-starcalc-50;windows_formatname=\&quot;StarCalc 5.0\&quot;&quot;, &quot;StarCalc 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
457
458&apos; 40 SOT_FORMATSTR_ID_STARCHART*/				{ &quot;application/x-openoffice-starchart;windows_formatname=\&quot;StarChartDocument\&quot;&quot;, &quot;StarChartDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
459&apos; 41 SOT_FORMATSTR_ID_STARCHART_40*/			{ &quot;application/x-openoffice-starchart-40;windows_formatname=\&quot;StarChartDocument 4.0\&quot;&quot;, &quot;StarChartDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
460&apos; 42 SOT_FORMATSTR_ID_STARCHART_50*/			{ &quot;application/x-openoffice-starchart-50;windows_formatname=\&quot;StarChart 5.0\&quot;&quot;, &quot;StarChart 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
461
462&apos; 46 SOT_FORMATSTR_ID_STARMATH*/				{ &quot;application/x-openoffice-starmath;windows_formatname=\&quot;StarMath\&quot;&quot;, &quot;StarMath&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
463&apos; 47 SOT_FORMATSTR_ID_STARMATH_40*/				{ &quot;application/x-openoffice-starmath-40;windows_formatname=\&quot;StarMathDocument 4.0\&quot;&quot;, &quot;StarMathDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
464&apos; 48 SOT_FORMATSTR_ID_STARMATH_50*/				{ &quot;application/x-openoffice-starmath-50;windows_formatname=\&quot;StarMath 5.0\&quot;&quot;, &quot;StarMath 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
465
466
467Sub SetupXMLConfiguration()
468	iApplSection = 1000
469	Wizardmode = SBXMLMODE
470	ApplCount = 4
471	MaxApplCount = 4
472	XMLTemplateList = Array(&quot;vor&quot;, &quot;sti&quot;, &quot;stw&quot; , &quot;stc&quot; , &quot;std&quot;)
473	&apos; chkTemplatePath-Captions
474	GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox())
475	&apos; DocumentCheckbox- Captions
476	GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox())
477
478	XMLFilterName(0,0) = &quot;sdw|sxw&quot;
479	XMLFilterName(0,1) = &quot;writer8|writer8&quot;
480	XMLFilterName(0,2) = &quot;odt|odt&quot;
481	XMLFilterName(0,3) = sDocumentCheckBox(0)
482
483	XMLFilterName(1,0) = &quot;sdc|sxc&quot;
484	XMLFilterName(1,1) = &quot;calc8|calc8&quot;
485	XMLFilterName(1,2) = &quot;ods|ods&quot;
486	XMLFilterName(1,3) = sDocumentCheckBox(1)
487
488	If oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) and oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
489		XMLFilterName(2,0) = &quot;sdd|sda|sxi|sxd&quot;
490		XMLFilterName(2,1) = &quot;impress8|draw8|impress8|draw8&quot;
491		XMLFilterName(2,2) = &quot;odp|odg|odp|odg&quot;
492	Elseif oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) Then
493		XMLFilterName(2,0) = &quot;sda|sxd&quot;
494		XMLFilterName(2,1) = &quot;draw8|draw8&quot;
495		XMLFilterName(2,2) = &quot;odg|odg&quot;
496	Elseif oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
497		XMLFilterName(2,0) = &quot;sdd|sxi&quot;
498		XMLFilterName(2,1) = &quot;impress8|impress8&quot;
499		XMLFilterName(2,2) = &quot;odp|odp&quot;
500	End If
501	XMLFilterName(2,3) = sDocumentCheckBox(2)
502
503
504	XMLFilterName(3,0) = &quot;smf|sxm&quot;
505	XMLFilterName(3,1) = &quot;math8|math8&quot;
506	XMLFilterName(3,2) = &quot;odf|odf&quot;
507	XMLFilterName(3,3) = sDocumentCheckBox(3)
508
509	XMLFilterName(4,0) = &quot;application/x-openoffice-starwriter|application/vnd.stardivision.writer/web|application/vnd.sun.xml.writer|application/vnd.sun.xml.writerweb&quot;
510	XMLFilterName(4,1) = &quot;writer8_template|writerweb8_writer_template|writer8_template|writerweb8_writer_template&quot;
511	XMLFilterName(4,2) = &quot;ott|oth|ott|oth&quot;
512	XMLFilterName(4,3) = sTemplateCheckBox(0)
513
514
515	XMLFilterName(5,0) = &quot;application/x-openoffice-starcalc|application/vnd.sun.xml.calc&quot;
516	XMLFilterName(5,1) = &quot;calc8_template|calc8_template&quot;
517	XMLFilterName(5,2) = &quot;ots|ots&quot;
518	XMLFilterName(5,3) = sTemplateCheckBox(1)
519
520	&apos; due to bug #108942# impress templates of the version 4.0 have to be handled in a special way because their mimetype
521	&apos; falsely points to the draw application.
522	If oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) and  oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
523		XMLFilterName(6,0) = &quot;application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/x-openoffice-stardraw|application/vnd.sun.xml.impress|application/vnd.sun.xml.draw&quot;
524		XMLFilterName(6,1) = &quot;impress8_template|impress8_template|draw8_template|impress8_template|draw8_template&quot;
525		XMLFilterName(6,2) = &quot;otp|otp|otg|otp|otg&quot;
526	Elseif oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) Then
527		XMLFilterName(6,0) = &quot;application/x-openoffice-stardraw|application/vnd.sun.xml.draw&quot;
528		XMLFilterName(6,1) = &quot;draw8_template|draw8_template&quot;
529		XMLFilterName(6,2) = &quot;otg|otg&quot;
530	Elseif oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
531		XMLFilterName(6,0) = &quot;application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/vnd.sun.xml.impress&quot;
532		XMLFilterName(6,1) = &quot;impress8_template|impress8_template|impress8_template&quot;
533		XMLFilterName(6,2) = &quot;otp|otp|otp&quot;
534	End If
535	XMLFilterName(6,3) = sTemplateCheckBox(2)
536
537	If oFactoryKey.HasByName(&quot;com.sun.star.text.GlobalDocument&quot;) Then
538		XMLFilterName(7,0) = &quot;sgl|sxg&quot;
539		XMLFilterName(7,1) = &quot;writerglobal8|writerglobal8&quot;
540		XMLFilterName(7,2) = &quot;odm|odm&quot;
541		XMLFilterName(7,3) = sTemplateCheckBox(3)
542	End If
543End Sub
544
545
546Function CheckControlPath(oCheckbox as Object, oTextBox as Object, ByVal bDoEnable as Boolean)
547Dim sPath as String
548	If Not bDoEnable Then
549		CheckControlPath = False
550	ElseIf oCheckbox.State = 0 Then
551		CheckControlPath = True
552	Else
553		sPath = ConvertToUrl(Trim(oTextBox.Text)
554		CheckControlPath = oUcb.Exists(sPath)
555	End If
556End Function
557
558
559Function CheckInputPaths() as Boolean
560Dim bChangePage as Boolean
561	bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateImportPath, True, False, sTitle, False)
562	bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateExportPath, bChangePage, True, sTitle, False)
563	bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentImportPath, bChangePage, False, sTitle, False)
564	bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentExportPath, bChangePage, True, sTitle, False)
565	CheckInputPaths = bChangePage
566End Function
567
568
569Function CheckTextBoxPath(oTextBox as Object, ByVal bCheck as Boolean, bCreateNew as Boolean, sTitle as String, bgetResources as Boolean) as Boolean
570Dim iCreate as Integer
571Dim sQueryMessage as String
572Dim sUrlPath as String
573Dim sMessageNoDir as String
574Dim sShowPath as String
575Dim oLocUcb as Object
576	oLocUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
577	If bGetResources Then
578		If InitResources(&quot;ImportWizard&quot;,&quot;imp&quot;) then
579 			sNoDirCreation = GetResText(1050)
580			sMsgDirNotThere = GetResText(1051)
581			sQueryForNewCreation = GetResText(1052)
582		Else
583			CheckTextBoxPath() = False
584			Exit Function
585		End If
586	End If
587	If oTextBox.Enabled Then
588		If bCheck Then
589			sShowPath = oTextBox.Text
590			sUrlPath = ConvertToUrl(sShowPath)
591			If Not oLocUcb.Exists(sUrlPath) Then
592				If Not bCreateNew Then
593					&apos; Sourcedirectories must be existing, Targetdirectories may be created new
594					sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,&quot;%1&quot;)
595					Msgbox(sQueryMessage,16,sTitle)
596					CheckTextBoxPath() = False
597					Exit Function
598				Else
599					sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,&quot;%1&quot;)
600					sQueryMessage = sQueryMessage &amp; Chr(13) &amp; sQueryForNewCreation
601					iCreate = Msgbox (sQueryMessage, 36, sTitle)
602					If iCreate = 6 Then
603						On Local Error Goto NOVALIDPATH
604						CreateFolder(sUrlPath)
605						If Not oLocUcb.Exists(sUrlPath) Then
606							Goto NOVALIDPATH
607						End If
608					Else
609						CheckTextBoxPath() = False
610						Exit Function
611					End If
612				End If
613			End If
614			CheckTextBoxPath() = True
615		Else
616			CheckTextBoxPath() = False
617		End If
618	Else
619		CheckTextBoxPath() = True
620	End If
621	Exit Function
622NOVALIDPATH:
623	sMessageNoDir = ReplaceString(sNoDirCreation, sShowPath, &quot;%1&quot;)
624	Msgbox(sMessageNoDir, 16, sTitle)
625	CheckTextBoxPath() = False
626End Function
627
628
629Sub InitializeProgressPage(oDialog as Object)
630  oDialog.LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL
631  oDialog.LabelCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD
632End Sub
633
634
635Sub	SetProgressDisplay(AbsFound as Integer)
636	ImportDialog.LabelRetrieval.Label = sProgressPage_2 &amp;  &quot;  &quot; &amp; ReplaceString(sProgressPage_5, Str(AbsFound) &amp; &quot; &quot;, &quot;%1&quot;)
637	ImportDialog.LabelCurDocumentRetrieval.Label =  sProgressFound &amp; &quot; &quot; &amp; CStr(AbsDocuFound) &amp;  &quot; &quot; &amp; sProgressMoreDocs
638	ImportDialog.LabelCurTemplateRetrieval.Label = sProgressFound &amp; &quot; &quot; &amp; CStr(AbsTemplateFound) &amp; &quot; &quot; &amp; sProgressMoreTemplates
639End Sub
640
641Sub TakoverFolderName(aEvent as Object)
642Dim RefControlName as String
643Dim oRefControl
644	RefControlName = aEvent.Source.Model.Tag
645	oRefControl = ImportDialogArea.GetControl(RefControlName)
646	GetFolderName(oRefControl.Model)
647	ToggleNextButton()
648End Sub
649
650
651Sub FinalizeDialogButtons()
652	ImportDialog.cmdShowLogFile.Enabled = ((Isnull(oLogDocument) = False) And (ImportDialog.chkLogfile.State = 1))
653	ImportDialog.cmdCancel.Enabled = False
654	ImportDialog.cmdGoOn.Label = sCloseButton
655	ImportDialog.cmdGoOn.Enabled = True
656End Sub
657</script:module>