xref: /trunk/main/wizards/source/importwizard/Main.xba (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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="Main" script:language="StarBasic">Option Explicit
4
5&apos;  *****  BASIC  *****
6Public HeaderPreviews(4) as Object
7Public ImportDialog as Object
8Public ImportDialogArea as Object
9Public oFactoryKey as Object
10Public bShowLogFile as Boolean
11
12&apos; If the ProgressPage ist already on Top The Dialog will be immediately closed when this flag is
13&apos; set to False
14Public bConversionIsRunning as Boolean
15Public RetValue as Integer
16
17Sub Main()
18    Dim NoArgs() as New com.sun.star.beans.PropertyValue
19    bShowLogFile=FALSE
20    If Not bDebugWizard Then
21        On Local Error Goto RTError
22    End If
23    BasicLibraries.LoadLibrary(&quot;Tools&quot;)
24    RetValue = 10
25    bIsFirstLogTable = True
26    bConversionIsRunning = False
27    sCRLF = CHR(13) &amp; CHR(10)
28    oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
29    oFactoryKey = GetRegistryKeyContent(&quot;org.openoffice.Setup/Office/Factories&quot;)
30    If GetImportWizardPaths() = False Then
31        Exit Sub
32    End If
33    bCancelTask = False
34    bDoKeepApplValues = False
35    CurOffice = 0
36    ImportDialogArea = LoadDialog(&quot;ImportWizard&quot;,&quot;ImportDialog&quot;)
37    ImportDialog = ImportDialogArea.Model
38    LoadLanguage()
39    WizardMode = SBXMLMODE
40    MaxApplCount = 4
41    FillStep_Welcome()
42    RepaintHeaderPreview()
43    ImportDialog.ImportPreview.BackGroundColor = RGB(0,60,126)
44    ImportDialog.cmdGoOn.DefaultButton = True
45    ImportDialogArea.GetControl(&quot;optSODocuments&quot;).SetFocus()
46    ToggleCheckboxesWithBoolean(False)
47    RetValue = ImportDialogArea.Execute()
48    If bShowLogFile=TRUE Then
49        OpenDocument(sLogUrl, NoArgs())
50    End if
51    If RetValue = 0 Then
52        CancelTask()
53    End If
54    ImportDialogArea.Dispose()
55    End
56    Exit Sub
57RTError:
58    Msgbox sRTErrorDesc, 16, sRTErrorHeader
59End Sub
60
61
62
63Sub NextStep()
64Dim iCurStep as Integer
65    If Not bDebugWizard Then
66        On Error Goto RTError
67    End If
68    bConversionIsRunning = False
69    iCurStep = ImportDialog.Step
70    Select Case iCurStep
71        Case 1
72            FillStep_InputPaths(0, True)
73        Case 2
74            If CheckInputPaths Then
75                SaveStep_InputPath
76                If CurOffice &lt; ApplCount - 1 Then
77                    CurOffice = CurOffice + 1
78                    TakeOverPathSettings()
79                    FillStep_InputPaths(CurOffice, False)
80                Else
81                    FillStep_Summary()
82                End If
83            End If
84        Case 3
85            FillStep_Progress()
86            Select Case WizardMode
87                Case SBMICROSOFTMODE
88                    Call ConvertAllDocuments(MSFilterName())
89                CASE SBXMLMODE
90                    Call ConvertAllDocuments(XMLFilterName())
91            End Select
92        Case 4
93            CancelTask(True)
94    End Select
95
96    If ((ImportDialog.chkLogfile.State &lt;&gt; 1) OR (iCurStep &lt;&gt; 3)) Then
97        ImportDialog.cmdGoOn.DefaultButton = True
98    End If
99
100    RepaintHeaderPreview()
101    Exit Sub
102RTError:
103    Msgbox sRTErrorDesc, 16, sRTErrorHeader
104End Sub
105
106
107
108Sub PrevStep()
109Dim iCurStep as Integer
110    If Not bDebugWizard Then
111        On Error Goto RTError
112    End If
113    bConversionIsRunning = False
114    iCurStep = ImportDialog.Step
115    Select Case iCurStep
116        Case 4
117            ImportDialog.cmdCancel.Label = sCancelButton
118            FillStep_Summary()
119        Case 3
120            FillStep_InputPaths(Applcount-1, False)
121        Case 2
122            SaveStep_InputPath
123            If CurOffice &gt; 0 Then
124                CurOffice = CurOffice - 1
125                FillStep_InputPaths(CurOffice, False)
126            Else
127                FillStep_Welcome()
128                bDoKeepApplValues = True
129            End If
130    End Select
131    ImportDialog.cmdGoOn.DefaultButton = True
132    RepaintHeaderPreview()
133    Exit Sub
134RTError:
135    Msgbox sRTErrorDesc, 16, sRTErrorHeader
136End Sub
137
138
139
140Sub CancelTask()
141    If bConversionIsRunning Then
142        If Msgbox(sConvertError1, 36, sConvertError2) = 6 Then
143            bCancelTask = True
144            bInterruptSearch = True
145        Else
146            bCancelTask = False
147            ImportDialog.cmdCancel.Enabled = True
148        End If
149    Else
150        ImportDialogArea.EndExecute()
151    End If
152End Sub
153
154
155Sub TemplateDirSearchDialog()
156    CallDirSearchDialog(ImportDialog.TemplateImportPath)
157End Sub
158
159
160Sub RepaintHeaderPreview()
161Dim Bitmap As Object
162Dim CurStep as Integer
163Dim sBitmapPath as String
164Dim LocPrefix as String
165    CurStep = ImportDialog.Step
166    LocPrefix = WizardMode
167    LocPrefix = ReplaceString(LocPrefix,&quot;XML&quot;, &quot;SO&quot;)
168    If CurStep = 2 Then
169        sBitmapPath = SOBitmapPath &amp; LocPrefix &amp; &quot;-Import_&quot; &amp; CurStep &amp; &quot;-&quot; &amp; Applications(CurOffice,SBAPPLKEY) + 1 &amp; &quot;.bmp&quot;
170    Else
171        sBitmapPath = SOBitmapPath &amp; &quot;Import_&quot; &amp; CurStep &amp; &quot;.bmp&quot;
172    End If
173    ImportDialog.ImportPreview.ImageURL = sBitmapPath
174End Sub
175
176
177Sub CheckModuleInstallation()
178Dim i as Integer
179    For i = 1 To MaxApplCount
180        ImportDialogArea.GetControl(&quot;chk&quot; &amp; WizardMode &amp; &quot;Application&quot; &amp; i).Model.Enabled = Abs(CheckInstalledModule(i-1))
181    Next i
182End Sub
183
184
185Function CheckInstalledModule(Index as Integer) as Boolean
186Dim ModuleName as String
187Dim NameList() as String
188Dim MaxIndex as Integer
189Dim i as Integer
190    ModuleName = ModuleList(Index)
191    If Instr(1,ModuleName,&quot;/&quot;) &lt;&gt; 0 Then
192        CheckInstalledModule() = False
193        NameList() = ArrayoutOfString(ModuleName,&quot;/&quot;, MaxIndex)
194        For i = 0 To MaxIndex
195            If oFactoryKey.HasByName(NameList(i)) Then
196                CheckInstalledModule() = True
197            End If
198        Next i
199    Else
200        CheckInstalledModule() = oFactoryKey.HasByName(ModuleName)
201    End If
202End Function
203
204
205Sub ToggleCheckboxes(oEvent as Object)
206Dim bMSEnable as Boolean
207    WizardMode = oEvent.Source.Model.Tag
208    bMSEnable = WizardMode = &quot;MS&quot;
209    ToggleCheckBoxesWithBoolean(bMSEnable)
210End Sub
211
212
213Sub ToggleCheckboxesWithBoolean(bMSEnable as Boolean)
214    If bMSEnable = True Then
215        WizardMode = SBMICROSOFTMODE
216        MaxApplCount = 3
217    Else
218        WizardMode = SBXMLMODE
219        MaxApplCount = 4
220    End If
221    With ImportDialogArea
222        .GetControl(&quot;chkSOApplication1&quot;).Model.Enabled = Not bMSEnable
223        .GetControl(&quot;chkSOApplication2&quot;).Model.Enabled = Not bMSEnable
224        .GetControl(&quot;chkSOApplication3&quot;).Model.Enabled = Not bMSEnable
225        .GetControl(&quot;chkSOApplication4&quot;).Model.Enabled = Not bMSEnable
226        .GetControl(&quot;chkMSApplication1&quot;).Model.Enabled = bMSEnable
227        .GetControl(&quot;chkMSApplication2&quot;).Model.Enabled = bMSEnable
228        .GetControl(&quot;chkMSApplication3&quot;).Model.Enabled = bMSEnable
229    End With
230    CheckModuleInstallation()
231    ImportDialog.WelcomeTextLabel2.Enabled = bMSEnable
232    bDoKeepApplValues = False
233    ToggleNextButton()
234End Sub
235
236
237Sub ToggleNextButton()
238Dim iCurStep as Integer
239Dim bDoEnable as Boolean
240Dim i as Integer
241    iCurStep = ImportDialog.Step
242    Select Case iCurStep
243        Case 1
244            With ImportDialog
245                If .optMSDocuments.State = 1 Then
246                    bDoEnable = .chkMSApplication1.State = 1 Or .chkMSApplication2.State = 1 Or .chkMSApplication3.State = 1
247                Else
248                    bDoEnable = .chkSOApplication1.State = 1 Or .chkSOApplication2.State = 1 Or .chkSOApplication3.State = 1 Or .chkSOApplication4.State = 1
249                End If
250            End With
251            bDoKeepApplValues = False
252        Case 2
253            bDoEnable = CheckControlPath(ImportDialog.chkTemplatePath, ImportDialog.txtTemplateImportPath, True)
254            bDoEnable = CheckControlPath(ImportDialog.chkDocumentPath, ImportDialog.txtDocumentImportPath, bDoEnable)
255    End Select
256    ImportDialog.cmdGoOn.Enabled = bDoEnable
257End Sub
258
259
260Sub TakeOverPathSettings()
261&apos;Takes over the Pathsettings from the first selected application to the next applications
262    If Applications(CurOffice,SBDOCSOURCE) = &quot;&quot; Then
263        Applications(CurOffice,SBDOCSOURCE) = Applications(0,SBDOCSOURCE)
264        Applications(CurOffice,SBDOCTARGET) = Applications(0,SBDOCTARGET)
265        If WizardMode = SBXMLMODE AND Applications(CurOffice,SBAPPLKEY) = 3 Then
266            Applications(CurOffice,SBTEMPLSOURCE) = Applications(CurOffice,SBDOCSOURCE)
267            Applications(CurOffice,SBTEMPLTARGET) = Applications(CurOffice,SBDOCTARGET)
268        Else
269            Applications(CurOffice,SBTEMPLSOURCE) = Applications(0,SBTEMPLSOURCE)
270            Applications(CurOffice,SBTEMPLTARGET) = Applications(0,SBTEMPLTARGET)
271        End If
272    End If
273End Sub
274
275
276Function GetImportWizardPaths() as Boolean
277    SOBitmapPath = GetOfficeSubPath(&quot;Template&quot;, &quot;../wizard/bitmap&quot;)
278    If SOBitmapPath &lt;&gt; &quot;&quot; Then
279        SOWorkPath = GetPathSettings(&quot;Work&quot;, False)
280        If SOWorkPath &lt;&gt; &quot;&quot; Then
281            SOTemplatePath = GetPathSettings(&quot;Template_writable&quot;,False,0)
282            If SOTemplatePath &lt;&gt; &quot;&quot; Then
283                GetImportWizardPaths() = True
284                Exit Function
285            End If
286        End If
287    End  If
288    GetImportWizardPaths() = False
289End Function
290</script:module>