1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3*b1cdbd2cSJim Jagielski<!--***********************************************************
4*b1cdbd2cSJim Jagielski *
5*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
6*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
7*b1cdbd2cSJim Jagielski * distributed with this work for additional information
8*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
9*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
10*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
11*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
14*b1cdbd2cSJim Jagielski *
15*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
16*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
17*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
19*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
20*b1cdbd2cSJim Jagielski * under the License.
21*b1cdbd2cSJim Jagielski *
22*b1cdbd2cSJim Jagielski ***********************************************************-->
23*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="AutoPilotRun" script:language="StarBasic">Option Explicit
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim JagielskiPublic SourceDir as String
26*b1cdbd2cSJim JagielskiPublic TargetDir as String
27*b1cdbd2cSJim JagielskiPublic TargetStemDir as String
28*b1cdbd2cSJim JagielskiPublic SourceFile as String
29*b1cdbd2cSJim JagielskiPublic TargetFile as String
30*b1cdbd2cSJim JagielskiPublic Source as String
31*b1cdbd2cSJim JagielskiPublic SubstFile as String
32*b1cdbd2cSJim JagielskiPublic SubstDir as String
33*b1cdbd2cSJim JagielskiPublic NoArgs()
34*b1cdbd2cSJim JagielskiPublic TypeList(14) as String
35*b1cdbd2cSJim JagielskiPublic GoOn as Boolean
36*b1cdbd2cSJim JagielskiPublic DoUnprotect as Integer
37*b1cdbd2cSJim JagielskiPublic Password as String
38*b1cdbd2cSJim JagielskiPublic DocIndex as Integer
39*b1cdbd2cSJim JagielskiPublic oPathSettings as Object
40*b1cdbd2cSJim JagielskiPublic oUcb as Object
41*b1cdbd2cSJim JagielskiPublic TotDocCount as Integer
42*b1cdbd2cSJim JagielskiPublic sTotDocCount as String
43*b1cdbd2cSJim JagielskiPublic OpenProperties(1) as New com.sun.star.beans.PropertyValue
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim JagielskiSub StartAutoPilot()
47*b1cdbd2cSJim JagielskiDim i As Integer
48*b1cdbd2cSJim JagielskiDim oFactoryKey as Object
49*b1cdbd2cSJim Jagielski	BasicLibraries.LoadLibrary(&quot;Tools&quot;)
50*b1cdbd2cSJim Jagielski	BasicLibraries.LoadLibrary(&quot;ImportWizard&quot;)
51*b1cdbd2cSJim Jagielski	If InitResources(&quot;Euro Converter&quot;, &quot;eur&quot;) Then
52*b1cdbd2cSJim Jagielski		oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
53*b1cdbd2cSJim Jagielski		oLocale = GetStarOfficeLocale()
54*b1cdbd2cSJim Jagielski		InitializeConverter(oLocale, 2)
55*b1cdbd2cSJim Jagielski		ToggleGoOnButton()
56*b1cdbd2cSJim Jagielski		oFactoryKey = GetRegistryKeyContent(&quot;org.openoffice.Setup/Office/Factories&quot;)
57*b1cdbd2cSJim Jagielski		DialogModel.chkTextDocuments.Enabled =  oFactoryKey.hasbyName(&quot;com.sun.star.text.TextDocument&quot;)
58*b1cdbd2cSJim Jagielski		DialogModel.cmdGoOn.DefaultButton = True
59*b1cdbd2cSJim Jagielski		DialogModel.lstCurrencies.TabIndex = 12
60*b1cdbd2cSJim Jagielski		DialogConvert.GetControl(&quot;optWholeDir&quot;).SetFocus()
61*b1cdbd2cSJim Jagielski		DialogConvert.Execute()
62*b1cdbd2cSJim Jagielski		DialogConvert.Dispose()
63*b1cdbd2cSJim Jagielski	End If
64*b1cdbd2cSJim JagielskiEnd Sub
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim JagielskiSub ConvertDocuments()
68*b1cdbd2cSJim JagielskiDim FilesList()
69*b1cdbd2cSJim JagielskiDim bDisposable as Boolean
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski	If Source &lt;&gt; &quot;&quot; And TargetDir &lt;&gt; &quot;&quot; Then
72*b1cdbd2cSJim Jagielski		If DialogModel.optSingleFile.State = 1 Then
73*b1cdbd2cSJim Jagielski			SourceFile = Source
74*b1cdbd2cSJim Jagielski			TotDocCount = 1
75*b1cdbd2cSJim Jagielski		Else
76*b1cdbd2cSJim Jagielski			SourceDir = Source
77*b1cdbd2cSJim Jagielski			TargetStemDir = TargetDir
78*b1cdbd2cSJim Jagielski			TypeList(0) = &quot;calc8&quot;
79*b1cdbd2cSJim Jagielski			TypeList(1) = &quot;calc_StarOffice_XML_Calc&quot;
80*b1cdbd2cSJim Jagielski			TypeList(2) = &quot;calc_StarCalc_30&quot;
81*b1cdbd2cSJim Jagielski			TypeList(3) = &quot;calc_StarCalc_40&quot;
82*b1cdbd2cSJim Jagielski			TypeList(4) = &quot;calc_StarCalc_50&quot;
83*b1cdbd2cSJim Jagielski			If DialogModel.chkTextDocuments.State = 1 Then
84*b1cdbd2cSJim Jagielski				ReDim Preserve TypeList(13) as String
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski				TypeList(5) = &quot;writer8&quot;
87*b1cdbd2cSJim Jagielski				TypeList(6) = &quot;writerglobal8&quot;
88*b1cdbd2cSJim Jagielski				TypeList(7) = &quot;writer_StarOffice_XML_Writer&quot;
89*b1cdbd2cSJim Jagielski				TypeList(8) = &quot;writer_globaldocument_StarOffice_XML_Writer_GlobalDocument&quot;
90*b1cdbd2cSJim Jagielski				TypeList(9) = &quot;writer_StarWriter_30&quot;
91*b1cdbd2cSJim Jagielski				TypeList(10) = &quot;writer_StarWriter_40&quot;
92*b1cdbd2cSJim Jagielski				TypeList(11) = &quot;writer_globaldocument_StarWriter_40GlobalDocument&quot;
93*b1cdbd2cSJim Jagielski				TypeList(12) = &quot;writer_StarWriter_50&quot;
94*b1cdbd2cSJim Jagielski				TypeList(13) = &quot;writer_globaldocument_StarWriter_50GlobalDocument&quot;
95*b1cdbd2cSJim Jagielski			End If
96*b1cdbd2cSJim Jagielski			FilesList() = ReadDirectories(SourceDir, bRecursive, True, False, TypeList())
97*b1cdbd2cSJim Jagielski			TotDocCount = Ubound(FilesList(),1) + 1
98*b1cdbd2cSJim Jagielski		End If
99*b1cdbd2cSJim Jagielski		InitializeProgressPage(DialogModel)
100*b1cdbd2cSJim Jagielski&apos;		ChangeToNextProgressStep()
101*b1cdbd2cSJim Jagielski		sTotDocCount = CStr(TotDocCount)
102*b1cdbd2cSJim Jagielski		OpenProperties(0).Name = &quot;Hidden&quot;
103*b1cdbd2cSJim Jagielski		OpenProperties(0).Value = True
104*b1cdbd2cSJim Jagielski		OpenProperties(1).Name = &quot;AsTemplate&quot;
105*b1cdbd2cSJim Jagielski		OpenProperties(1).Value = False
106*b1cdbd2cSJim Jagielski		For DocIndex = 0 To TotDocCount - 1
107*b1cdbd2cSJim Jagielski			If InitializeDocument(FilesList(), bDisposable) Then
108*b1cdbd2cSJim Jagielski				If StoreDocument() Then
109*b1cdbd2cSJim Jagielski					ConvertDocument()
110*b1cdbd2cSJim Jagielski					oDocument.Store
111*b1cdbd2cSJim Jagielski				End If
112*b1cdbd2cSJim Jagielski				If bDisposable Then
113*b1cdbd2cSJim Jagielski					oDocument.Dispose()
114*b1cdbd2cSJim Jagielski				End If
115*b1cdbd2cSJim Jagielski			End If
116*b1cdbd2cSJim Jagielski		Next DocIndex
117*b1cdbd2cSJim Jagielski		DialogModel.cmdBack.Enabled = True
118*b1cdbd2cSJim Jagielski		DialogModel.cmdGoOn.Enabled = True
119*b1cdbd2cSJim Jagielski		DialogModel.cmdGoOn.Label = sReady
120*b1cdbd2cSJim Jagielski		DialogModel.cmdCancel.Label = sEnd
121*b1cdbd2cSJim Jagielski	End If
122*b1cdbd2cSJim JagielskiEnd Sub
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim JagielskiFunction InitializeDocument(FilesList(), bDisposable as Boolean) as Boolean
126*b1cdbd2cSJim Jagielski&apos; The Autopilot is started from step No. 2
127*b1cdbd2cSJim JagielskiDim sViewPath as String
128*b1cdbd2cSJim JagielskiDim bIsReadOnly as Boolean
129*b1cdbd2cSJim JagielskiDim sExtension as String
130*b1cdbd2cSJim Jagielski	On Local Error Goto NEXTFILE
131*b1cdbd2cSJim Jagielski	If Not bCancelTask Then
132*b1cdbd2cSJim Jagielski		If DialogModel.optWholeDir.State = 1 Then
133*b1cdbd2cSJim Jagielski			SourceFile = FilesList(DocIndex,0)
134*b1cdbd2cSJim Jagielski			TargetFile = ReplaceString(SourceFile,TargetStemDir,SourceDir)
135*b1cdbd2cSJim Jagielski			TargetDir = DirectorynameoutofPath(TargetFile, &quot;/&quot;)
136*b1cdbd2cSJim Jagielski		Else
137*b1cdbd2cSJim Jagielski			SourceFile = Source
138*b1cdbd2cSJim Jagielski			TargetFile = TargetDir &amp; &quot;/&quot; &amp; FileNameoutofPath(SourceFile, &quot;/&quot;)
139*b1cdbd2cSJim Jagielski		End If
140*b1cdbd2cSJim Jagielski		If CreateFolder(TargetDir) Then
141*b1cdbd2cSJim Jagielski			sExtension = GetFileNameExtension(SourceFile, &quot;/&quot;)
142*b1cdbd2cSJim Jagielski 			oDocument = OpenDocument(SourceFile, OpenProperties(), bDisposable)
143*b1cdbd2cSJim Jagielski			If (oDocument.IsReadOnly) AND (UCase(SourceFile) = UCase(TargetFile)) Then
144*b1cdbd2cSJim Jagielski				bIsReadOnly = True
145*b1cdbd2cSJim Jagielski				Msgbox(sMsgDOCISREADONLY, 16, GetProductName())
146*b1cdbd2cSJim Jagielski			Else
147*b1cdbd2cSJim Jagielski				bIsReadOnly = False
148*b1cdbd2cSJim Jagielski				RetrieveDocumentObjects()
149*b1cdbd2cSJim Jagielski				sViewPath = CutPathView(SourceFile, 60)
150*b1cdbd2cSJim Jagielski				DialogModel.lblCurDocument.Label = Str(DocIndex+1) &amp; &quot;/&quot; &amp; sTotDocCount &amp; &quot;  (&quot; &amp; sViewPath &amp; &quot;)&quot;
151*b1cdbd2cSJim Jagielski			End If
152*b1cdbd2cSJim Jagielski			InitializeDocument() = Not bIsReadOnly
153*b1cdbd2cSJim Jagielski		Else
154*b1cdbd2cSJim Jagielski			InitializeDocument() = False
155*b1cdbd2cSJim Jagielski		End If
156*b1cdbd2cSJim Jagielski	Else
157*b1cdbd2cSJim Jagielski		InitializeDocument() = False
158*b1cdbd2cSJim Jagielski	End If
159*b1cdbd2cSJim JagielskiNEXTFILE:
160*b1cdbd2cSJim Jagielski	If Err &lt;&gt; 0 Then
161*b1cdbd2cSJim Jagielski		InitializeDocument() = False
162*b1cdbd2cSJim Jagielski		Resume LETSGO
163*b1cdbd2cSJim JagielskiLETSGO:
164*b1cdbd2cSJim Jagielski	End If
165*b1cdbd2cSJim JagielskiEnd Function
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski
168*b1cdbd2cSJim JagielskiSub ChangeToNextProgressStep()
169*b1cdbd2cSJim Jagielski	DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.NORMAL
170*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = True
171*b1cdbd2cSJim JagielskiEnd Sub
172*b1cdbd2cSJim Jagielski
173*b1cdbd2cSJim Jagielski
174*b1cdbd2cSJim JagielskiFunction StoreDocument() as Boolean
175*b1cdbd2cSJim JagielskiDim sCurFileExists as String
176*b1cdbd2cSJim JagielskiDim iOverWrite as Integer
177*b1cdbd2cSJim Jagielski	If (TargetFile &lt;&gt; &quot;&quot;) And (Not bCancelTask) Then
178*b1cdbd2cSJim Jagielski		On Local Error Goto NOSAVING
179*b1cdbd2cSJim Jagielski		If oUcb.Exists(TargetFile) Then
180*b1cdbd2cSJim Jagielski			sCurFileExists = ReplaceString(sMsgFileExists, ConvertFromUrl(TargetFile), &quot;&lt;1&gt;&quot;)
181*b1cdbd2cSJim Jagielski			sCurFileExists = ReplaceString(sCurFileExists, chr(13), &quot;&lt;CR&gt;&quot;)
182*b1cdbd2cSJim Jagielski			iOverWrite = Msgbox (sCurFileExists, 32 + 3, sMsgDLGTITLE)
183*b1cdbd2cSJim Jagielski			Select Case iOverWrite
184*b1cdbd2cSJim Jagielski				Case 1	&apos; OK
185*b1cdbd2cSJim Jagielski				Case 2 	&apos; Abort
186*b1cdbd2cSJim Jagielski					bCancelTask = True
187*b1cdbd2cSJim Jagielski					StoreDocument() = False
188*b1cdbd2cSJim Jagielski					Exit Function
189*b1cdbd2cSJim Jagielski				Case 7 	&apos; No
190*b1cdbd2cSJim Jagielski					StoreDocument() = False
191*b1cdbd2cSJim Jagielski					Exit Function
192*b1cdbd2cSJim Jagielski			End Select
193*b1cdbd2cSJim Jagielski		End If
194*b1cdbd2cSJim Jagielski		If TargetFile &lt;&gt; SourceFile Then
195*b1cdbd2cSJim Jagielski			oDocument.StoreAsUrl(TargetFile,NoArgs)
196*b1cdbd2cSJim Jagielski		Else
197*b1cdbd2cSJim Jagielski			oDocument.Store
198*b1cdbd2cSJim Jagielski		End If
199*b1cdbd2cSJim Jagielski		StoreDocument() = True
200*b1cdbd2cSJim Jagielski		NOSAVING:
201*b1cdbd2cSJim Jagielski		If Err &lt;&gt; 0 Then
202*b1cdbd2cSJim Jagielski			StoreDocument() = False
203*b1cdbd2cSJim Jagielski			Resume CLERROR
204*b1cdbd2cSJim Jagielski		End If
205*b1cdbd2cSJim Jagielski		CLERROR:
206*b1cdbd2cSJim Jagielski	End If
207*b1cdbd2cSJim JagielskiEnd Function
208*b1cdbd2cSJim Jagielski
209*b1cdbd2cSJim Jagielski
210*b1cdbd2cSJim JagielskiSub SwapExtent()
211*b1cdbd2cSJim Jagielski	DialogModel.chkRecursive.Enabled = DialogModel.optWholeDir.State = 1
212*b1cdbd2cSJim Jagielski	If DialogModel.optWholeDir.State = 1 Then
213*b1cdbd2cSJim Jagielski		DialogModel.lblSource.Label = sSOURCEDIR
214*b1cdbd2cSJim Jagielski		If Not IsNull(SubstFile) Then
215*b1cdbd2cSJim Jagielski			SubstFile = DialogModel.txtSource.Text
216*b1cdbd2cSJim Jagielski			DialogModel.txtSource.Text = SubstDir
217*b1cdbd2cSJim Jagielski		End If
218*b1cdbd2cSJim Jagielski	Else
219*b1cdbd2cSJim Jagielski		DialogModel.LblSource.Label = sSOURCEFILE
220*b1cdbd2cSJim Jagielski		If Not IsNull(SubstDir) Then
221*b1cdbd2cSJim Jagielski			SubstDir = DialogModel.txtSource.Text
222*b1cdbd2cSJim Jagielski			DialogModel.txtSource.Text = SubstFile
223*b1cdbd2cSJim Jagielski		End If
224*b1cdbd2cSJim Jagielski	End If
225*b1cdbd2cSJim Jagielski	ToggleGoOnButton()
226*b1cdbd2cSJim JagielskiEnd Sub
227*b1cdbd2cSJim Jagielski
228*b1cdbd2cSJim Jagielski
229*b1cdbd2cSJim JagielskiFunction InitializeThirdStep() as Boolean
230*b1cdbd2cSJim JagielskiDim TextBoxText as String
231*b1cdbd2cSJim Jagielski	Source = AssignFileName(DialogModel.txtSource.Text, DialogModel.lblSource.Label, True)
232*b1cdbd2cSJim Jagielski	If CheckTextBoxPath(DialogModel.txtTarget, True, True, sMsgDLGTITLE, True) Then
233*b1cdbd2cSJim Jagielski		TargetDir = AssignFileName(DialogModel.txtTarget.Text, DialogModel.lblTarget.Label, False)
234*b1cdbd2cSJim Jagielski	Else
235*b1cdbd2cSJim Jagielski		TargetDir = &quot;&quot;
236*b1cdbd2cSJim Jagielski	End If
237*b1cdbd2cSJim Jagielski	If Source &lt;&gt; &quot;&quot; And TargetDir &lt;&gt; &quot;&quot; Then
238*b1cdbd2cSJim Jagielski		bRecursive = DialogModel.chkRecursive.State = 1
239*b1cdbd2cSJim Jagielski		bDoUnprotect = DialogModel.chkProtect.State = 1
240*b1cdbd2cSJim Jagielski		DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD
241*b1cdbd2cSJim Jagielski		DialogModel.lblRetrieval.Label = sPrgsRETRIEVAL
242*b1cdbd2cSJim Jagielski		DialogModel.lblCurProgress.Label = sPrgsCONVERTING
243*b1cdbd2cSJim Jagielski		If DialogModel.optWholeDir.State = 1 Then
244*b1cdbd2cSJim Jagielski			TextBoxText = sSOURCEDIR &amp; &quot; &quot; &amp; ConvertFromUrl(Source) &amp; chr(13)
245*b1cdbd2cSJim Jagielski			If DialogModel.chkRecursive.State = 1 Then
246*b1cdbd2cSJim Jagielski				TextBoxText = TextBoxText &amp; DeleteStr(sInclusiveSubDir,&quot;~&quot;) &amp; chr(13)
247*b1cdbd2cSJim Jagielski			End If
248*b1cdbd2cSJim Jagielski		Else
249*b1cdbd2cSJim Jagielski			TextBoxText = sSOURCEFILE &amp; &quot; &quot; &amp; ConvertFromUrl(Source) &amp; chr(13)
250*b1cdbd2cSJim Jagielski		End If
251*b1cdbd2cSJim Jagielski		TextBoxText = TextBoxText &amp; sTARGETDIR &amp; &quot; &quot; &amp; ConvertFromUrl(TargetDir) &amp; chr(13)
252*b1cdbd2cSJim Jagielski		If DialogModel.chkProtect.State = 1 Then
253*b1cdbd2cSJim Jagielski			TextBoxText = TextboxText &amp; sPrgsUNPROTECT
254*b1cdbd2cSJim Jagielski		End If
255*b1cdbd2cSJim Jagielski		DialogModel.txtConfig.Text = TextBoxText
256*b1cdbd2cSJim Jagielski	 	ToggleProgressStep()
257*b1cdbd2cSJim Jagielski		DialogModel.cmdGoOn.Enabled = False
258*b1cdbd2cSJim Jagielski		InitializeThirdStep() = True
259*b1cdbd2cSJim Jagielski	Else
260*b1cdbd2cSJim Jagielski		InitializeThirdStep() = False
261*b1cdbd2cSJim Jagielski	End If
262*b1cdbd2cSJim JagielskiEnd Function
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski
265*b1cdbd2cSJim JagielskiSub ToggleProgressStep(Optional aEvent as Object)
266*b1cdbd2cSJim JagielskiDim bMakeVisible as Boolean
267*b1cdbd2cSJim JagielskiDim LocStep as Integer
268*b1cdbd2cSJim Jagielski	&apos; If the Sub is call by the &apos;cmdBack&apos; Button then set the &apos;bMakeVisible&apos; variable accordingly
269*b1cdbd2cSJim Jagielski	bMakeVisible = IsMissing(aEvent)
270*b1cdbd2cSJim Jagielski	If bMakeVisible Then
271*b1cdbd2cSJim Jagielski		DialogModel.Step = 3
272*b1cdbd2cSJim Jagielski	Else
273*b1cdbd2cSJim Jagielski		DialogModel.Step = 2
274*b1cdbd2cSJim Jagielski	End If
275*b1cdbd2cSJim Jagielski 	DialogConvert.GetControl(&quot;lblCurrencies&quot;).Visible = Not bMakeVisible
276*b1cdbd2cSJim Jagielski 	DialogConvert.GetControl(&quot;lstCurrencies&quot;).Visible = Not bMakeVisible
277*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;cmdBack&quot;).Visible = bMakeVisible
278*b1cdbd2cSJim Jagielski 	DialogConvert.GetControl(&quot;cmdGoOn&quot;).Visible = bMakeVisible
279*b1cdbd2cSJim Jagielski	DialogModel.imgPreview.ImageUrl = BitmapDir &amp; &quot;euro_&quot; &amp; DialogModel.Step &amp; &quot;.bmp&quot;
280*b1cdbd2cSJim JagielskiEnd Sub
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski
283*b1cdbd2cSJim JagielskiSub EnableStep2DialogControls(OnValue as Boolean)
284*b1cdbd2cSJim Jagielski	With DialogModel
285*b1cdbd2cSJim Jagielski		.hlnExtent.Enabled = OnValue
286*b1cdbd2cSJim Jagielski		.optWholeDir.Enabled = OnValue
287*b1cdbd2cSJim Jagielski		.optSingleFile.Enabled = OnValue
288*b1cdbd2cSJim Jagielski		.chkProtect.Enabled = OnValue
289*b1cdbd2cSJim Jagielski		.cmdCallSourceDialog.Enabled = OnValue
290*b1cdbd2cSJim Jagielski		.cmdCallTargetDialog.Enabled = OnValue
291*b1cdbd2cSJim Jagielski		.lblSource.Enabled = OnValue
292*b1cdbd2cSJim Jagielski		.lblTarget.Enabled = OnValue
293*b1cdbd2cSJim Jagielski		.txtSource.Enabled = OnValue
294*b1cdbd2cSJim Jagielski		.txtTarget.Enabled = OnValue
295*b1cdbd2cSJim Jagielski		.imgPreview.Enabled = OnValue
296*b1cdbd2cSJim Jagielski		.lstCurrencies.Enabled = OnValue
297*b1cdbd2cSJim Jagielski		.lblCurrencies.Enabled = OnValue
298*b1cdbd2cSJim Jagielski		If OnValue Then
299*b1cdbd2cSJim Jagielski			ToggleGoOnButton()
300*b1cdbd2cSJim Jagielski			.chkRecursive.Enabled = .optWholeDir.State = 1
301*b1cdbd2cSJim Jagielski		Else
302*b1cdbd2cSJim Jagielski			.cmdGoOn.Enabled = False
303*b1cdbd2cSJim Jagielski			.chkRecursive.Enabled = False
304*b1cdbd2cSJim Jagielski		End If
305*b1cdbd2cSJim Jagielski	End With
306*b1cdbd2cSJim JagielskiEnd Sub
307*b1cdbd2cSJim Jagielski
308*b1cdbd2cSJim Jagielski
309*b1cdbd2cSJim JagielskiSub InitializeProgressPage()
310*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;lblRetrieval&quot;).Visible = False
311*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = False
312*b1cdbd2cSJim Jagielski	DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL
313*b1cdbd2cSJim Jagielski	DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD
314*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;lblRetrieval&quot;).Visible = True
315*b1cdbd2cSJim Jagielski	DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = True
316*b1cdbd2cSJim JagielskiEnd Sub
317*b1cdbd2cSJim Jagielski
318*b1cdbd2cSJim Jagielski
319*b1cdbd2cSJim JagielskiFunction AssignFileName(sPath as String, ByVal HeaderString, bCheckFileType as Boolean) as String
320*b1cdbd2cSJim JagielskiDim bIsValid as Boolean
321*b1cdbd2cSJim JagielskiDim sLocMimeType as String
322*b1cdbd2cSJim JagielskiDim sNoDirMessage as String
323*b1cdbd2cSJim Jagielski	HeaderString = DeleteStr(HeaderString, &quot;:&quot;)
324*b1cdbd2cSJim Jagielski	sPath = ConvertToUrl(Trim(sPath))
325*b1cdbd2cSJim Jagielski	bIsValid = oUcb.Exists(sPath)
326*b1cdbd2cSJim Jagielski	If bIsValid Then
327*b1cdbd2cSJim Jagielski		If DialogModel.optSingleFile.State = 1 Then
328*b1cdbd2cSJim Jagielski			If bCheckFileType Then
329*b1cdbd2cSJim Jagielski				sLocMimeType = GetRealFileContent(sPath)
330*b1cdbd2cSJim Jagielski				If DialogModel.chkTextDocuments.State = 1 Then
331*b1cdbd2cSJim Jagielski					If (Instr(1, sLocMimeType, &quot;text&quot;) = 0) And (Instr(1, sLocMimeType, &quot;calc&quot;) = 0) Then
332*b1cdbd2cSJim Jagielski						Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
333*b1cdbd2cSJim Jagielski						bIsValid = False
334*b1cdbd2cSJim Jagielski					End If
335*b1cdbd2cSJim Jagielski				Else
336*b1cdbd2cSJim Jagielski					If (Instr(1, sLocMimeType, &quot;spreadsheet&quot;) = 0) And (Instr(1, sLocMimeType, &quot;calc&quot;)) = 0 Then
337*b1cdbd2cSJim Jagielski						Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
338*b1cdbd2cSJim Jagielski						bIsValid = False
339*b1cdbd2cSJim Jagielski					End If
340*b1cdbd2cSJim Jagielski				End If
341*b1cdbd2cSJim Jagielski			End If
342*b1cdbd2cSJim Jagielski		Else
343*b1cdbd2cSJim Jagielski			If Not oUcb.IsFolder(sPath) Then
344*b1cdbd2cSJim Jagielski				sNoDirMessage = ReplaceString(sMsgNODIRECTORY,sPath,&quot;&lt;1&gt;&quot;)
345*b1cdbd2cSJim Jagielski				Msgbox(sNoDirMessage,48, sMsgDLGTITLE)
346*b1cdbd2cSJim Jagielski				bIsValid = False
347*b1cdbd2cSJim Jagielski			Else
348*b1cdbd2cSJim Jagielski				sPath = RTrimStr(sPath,&quot;/&quot;)
349*b1cdbd2cSJim Jagielski				sPath = sPath &amp; &quot;/&quot;
350*b1cdbd2cSJim Jagielski			End If
351*b1cdbd2cSJim Jagielski		End if
352*b1cdbd2cSJim Jagielski	Else
353*b1cdbd2cSJim Jagielski		Msgbox(HeaderString &amp; &quot; &apos;&quot; &amp; ConvertFromUrl(sPath) &amp; &quot;&apos; &quot; &amp;  sMsgNOTTHERE,48, sMsgDLGTITLE)
354*b1cdbd2cSJim Jagielski	End If
355*b1cdbd2cSJim Jagielski	If bIsValid Then
356*b1cdbd2cSJim Jagielski		AssignFileName() = sPath
357*b1cdbd2cSJim Jagielski	Else
358*b1cdbd2cSJim Jagielski		AssignFilename() = &quot;&quot;
359*b1cdbd2cSJim Jagielski	End If
360*b1cdbd2cSJim JagielskiEnd Function
361*b1cdbd2cSJim Jagielski
362*b1cdbd2cSJim Jagielski
363*b1cdbd2cSJim JagielskiSub ToggleGoOnButton()
364*b1cdbd2cSJim JagielskiDim bDoEnable as Boolean
365*b1cdbd2cSJim JagielskiDim sLocMimeType as String
366*b1cdbd2cSJim JagielskiDim sPath as String
367*b1cdbd2cSJim Jagielski	bDoEnable = Ubound(DialogModel.lstCurrencies.SelectedItems()) &gt; -1
368*b1cdbd2cSJim Jagielski	If bDoEnable Then
369*b1cdbd2cSJim Jagielski		&apos; Check if Source is set correctly
370*b1cdbd2cSJim Jagielski		sPath = ConvertToUrl(Trim(DialogModel.txtSource.Text))
371*b1cdbd2cSJim Jagielski		bDoEnable = oUcb.Exists(sPath)
372*b1cdbd2cSJim Jagielski	End If
373*b1cdbd2cSJim Jagielski	DialogModel.cmdGoOn.Enabled = bDoEnable
374*b1cdbd2cSJim JagielskiEnd Sub
375*b1cdbd2cSJim Jagielski
376*b1cdbd2cSJim Jagielski
377*b1cdbd2cSJim JagielskiSub CallFolderPicker()
378*b1cdbd2cSJim Jagielski	GetFolderName(DialogModel.txtTarget)
379*b1cdbd2cSJim Jagielski	ToggleGoOnButton()
380*b1cdbd2cSJim JagielskiEnd Sub
381*b1cdbd2cSJim Jagielski
382*b1cdbd2cSJim Jagielski
383*b1cdbd2cSJim JagielskiSub CallFilePicker()
384*b1cdbd2cSJim Jagielski	If DialogModel.optSingleFile.State = 1 Then
385*b1cdbd2cSJim Jagielski		Dim oMasterKey as Object
386*b1cdbd2cSJim Jagielski		Dim oTypes() as Object
387*b1cdbd2cSJim Jagielski		Dim oUIKey() as Object
388*b1cdbd2cSJim Jagielski
389*b1cdbd2cSJim Jagielski		oMasterKey = GetRegistryKeyContent(&quot;org.openoffice.TypeDetection.Types&quot;)
390*b1cdbd2cSJim Jagielski		oTypes() = oMasterKey.Types
391*b1cdbd2cSJim Jagielski		oUIKey = GetRegistryKeyContent(&quot;org.openoffice.Office.UI/FilterClassification/LocalFilters&quot;)
392*b1cdbd2cSJim Jagielski		If DialogModel.chkTextDocuments.State = 1 Then
393*b1cdbd2cSJim Jagielski			Dim FilterNames(11,1) as String
394*b1cdbd2cSJim Jagielski			FilterNames(6,0) = oTypes.GetByName(&quot;writer_StarOffice_XML_Writer&quot;).UIName
395*b1cdbd2cSJim Jagielski			FilterNames(6,1) = &quot;*.sxw&quot;
396*b1cdbd2cSJim Jagielski			FilterNames(7,0) = oTypes.GetByName(&quot;writer_StarOffice_XML_Writer_Template&quot;).UIName
397*b1cdbd2cSJim Jagielski			FilterNames(7,1) = &quot;*.stw&quot;
398*b1cdbd2cSJim Jagielski			FilterNames(8,0) = oUIKey.Classes.GetByName(&quot;sw3to5&quot;).DisplayName
399*b1cdbd2cSJim Jagielski			FilterNames(8,1) = &quot;*.sdw&quot;
400*b1cdbd2cSJim Jagielski			FilterNames(9,0) = oUIKey.Classes.GetByName(&quot;sw3to5templ&quot;).DisplayName
401*b1cdbd2cSJim Jagielski			Filternames(9,1) = &quot;*.vor&quot;
402*b1cdbd2cSJim Jagielski			FilterNames(10,0) = oTypes.GetByName(&quot;writer8&quot;).UIName
403*b1cdbd2cSJim Jagielski			FilterNames(10,1) = &quot;*.odt&quot;
404*b1cdbd2cSJim Jagielski			FilterNames(11,0) = oTypes.GetByName(&quot;writer8_template&quot;).UIName
405*b1cdbd2cSJim Jagielski			FilterNames(11,1) = &quot;*.ott&quot;
406*b1cdbd2cSJim Jagielski		Else
407*b1cdbd2cSJim Jagielski			ReDim FilterNames(5,1) as String
408*b1cdbd2cSJim Jagielski		End If
409*b1cdbd2cSJim Jagielski		FilterNames(0,0) = oTypes.GetByName(&quot;calc_StarOffice_XML_Calc&quot;).UIName
410*b1cdbd2cSJim Jagielski		Filternames(0,1) = &quot;*.sxc&quot;
411*b1cdbd2cSJim Jagielski		FilterNames(1,0) = oTypes.GetByName(&quot;calc_StarOffice_XML_Calc_Template&quot;).UIName
412*b1cdbd2cSJim Jagielski		Filternames(1,1) = &quot;*.stc&quot;
413*b1cdbd2cSJim Jagielski		FilterNames(2,0) = oUIKey.Classes.GetByName(&quot;sc345&quot;).DisplayName
414*b1cdbd2cSJim Jagielski		FilterNames(2,1) = &quot;*.sdc&quot;
415*b1cdbd2cSJim Jagielski		FilterNames(3,0) = oUIKey.Classes.GetByName(&quot;sc345templ&quot;).DisplayName
416*b1cdbd2cSJim Jagielski		Filternames(3,1) = &quot;*.vor&quot;
417*b1cdbd2cSJim Jagielski		FilterNames(4,0) = oTypes.GetByName(&quot;calc8&quot;).UIName
418*b1cdbd2cSJim Jagielski		Filternames(4,1) = &quot;*.ods&quot;
419*b1cdbd2cSJim Jagielski		FilterNames(5,0) = oTypes.GetByName(&quot;calc8_template&quot;).UIName
420*b1cdbd2cSJim Jagielski		Filternames(5,1) = &quot;*.ots&quot;
421*b1cdbd2cSJim Jagielski		GetFileName(DialogModel.txtSource, Filternames())
422*b1cdbd2cSJim Jagielski	Else
423*b1cdbd2cSJim Jagielski		GetFolderName(DialogModel.txtSource)
424*b1cdbd2cSJim Jagielski	End If
425*b1cdbd2cSJim Jagielski	ToggleGoOnButton()
426*b1cdbd2cSJim JagielskiEnd Sub
427*b1cdbd2cSJim Jagielski
428*b1cdbd2cSJim Jagielski
429*b1cdbd2cSJim JagielskiSub PreviousStep()
430*b1cdbd2cSJim Jagielski	DialogModel.Step = 2
431*b1cdbd2cSJim Jagielski	DialogModel.cmdGoOn.Label =  sGOON
432*b1cdbd2cSJim Jagielski	DialogModel.cmdCancel.Label = sCANCEL
433*b1cdbd2cSJim JagielskiEnd Sub
434*b1cdbd2cSJim Jagielski</script:module>
435