123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <!--
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- -->
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Main" script:language="StarBasic">Option Explicit
- REM ***** BASIC *****
- Public HeaderPreviews(4) as Object
- Public ImportDialog as Object
- Public ImportDialogArea as Object
- Public oFactoryKey as Object
- Public bShowLogFile as Boolean
- ' If the ProgressPage is already on Top The Dialog will be immediately closed when this flag is
- ' set to False
- Public bConversionIsRunning as Boolean
- Public RetValue as Integer
- Sub Main()
- Dim NoArgs() as New com.sun.star.beans.PropertyValue
- bShowLogFile=FALSE
- If Not bDebugWizard Then
- On Local Error Goto RTError
- End If
- BasicLibraries.LoadLibrary("Tools")
- RetValue = 10
- bIsFirstLogTable = True
- bConversionIsRunning = False
- sCRLF = CHR(13) & CHR(10)
- oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
- oFactoryKey = GetRegistryKeyContent("org.openoffice.Setup/Office/Factories")
- If GetImportWizardPaths() = False Then
- Exit Sub
- End If
- bCancelTask = False
- bDoKeepApplValues = False
- CurOffice = 0
- ImportDialogArea = LoadDialog("ImportWizard","ImportDialog")
- ImportDialog = ImportDialogArea.Model
- LoadLanguage()
- WizardMode = SBMICROSOFTMODE
- MaxApplCount = 3
- FillStep_Welcome()
- RepaintHeaderPreview()
- ImportDialog.ImportPreview.BackGroundColor = RGB(0,60,126)
- ImportDialog.cmdGoOn.DefaultButton = True
- ImportDialogArea.GetControl("optMSDocuments").SetFocus()
- ToggleCheckboxesWithBoolean(True)
- RetValue = ImportDialogArea.Execute()
- If bShowLogFile=TRUE Then
- OpenDocument(sLogUrl, NoArgs())
- End if
- If RetValue = 0 Then
- CancelTask()
- End If
- ImportDialogArea.Dispose()
- End
- Exit Sub
- RTError:
- Msgbox sRTErrorDesc, 16, sRTErrorHeader
- End Sub
- Sub NextStep()
- Dim iCurStep as Integer
- If Not bDebugWizard Then
- On Error Goto RTError
- End If
- bConversionIsRunning = False
- iCurStep = ImportDialog.Step
- Select Case iCurStep
- Case 1
- FillStep_InputPaths(0, True)
- Case 2
- If CheckInputPaths Then
- SaveStep_InputPath
- If CurOffice < ApplCount - 1 Then
- CurOffice = CurOffice + 1
- TakeOverPathSettings()
- FillStep_InputPaths(CurOffice, False)
- Else
- FillStep_Summary()
- End If
- End If
- Case 3
- FillStep_Progress()
- Select Case WizardMode
- Case SBMICROSOFTMODE
- Call ConvertAllDocuments(MSFilterName())
- End Select
- Case 4
- CancelTask(True)
- End Select
- If ((ImportDialog.chkLogfile.State <> 1) OR (iCurStep <> 3)) Then
- ImportDialog.cmdGoOn.DefaultButton = True
- End If
- RepaintHeaderPreview()
- Exit Sub
- RTError:
- Msgbox sRTErrorDesc, 16, sRTErrorHeader
- End Sub
- Sub PrevStep()
- Dim iCurStep as Integer
- If Not bDebugWizard Then
- On Error Goto RTError
- End If
- bConversionIsRunning = False
- iCurStep = ImportDialog.Step
- Select Case iCurStep
- Case 4
- ImportDialog.cmdCancel.Label = sCancelButton
- FillStep_Summary()
- Case 3
- FillStep_InputPaths(Applcount-1, False)
- Case 2
- SaveStep_InputPath
- If CurOffice > 0 Then
- CurOffice = CurOffice - 1
- FillStep_InputPaths(CurOffice, False)
- Else
- FillStep_Welcome()
- ToggleCheckboxesWithBoolean(True)
- bDoKeepApplValues = True
- End If
- End Select
- ImportDialog.cmdGoOn.DefaultButton = True
- RepaintHeaderPreview()
- Exit Sub
- RTError:
- Msgbox sRTErrorDesc, 16, sRTErrorHeader
- End Sub
- Sub CancelTask()
- If bConversionIsRunning Then
- If Msgbox(sConvertError1, 36, sConvertError2) = 6 Then
- bCancelTask = True
- bInterruptSearch = True
- Else
- bCancelTask = False
- ImportDialog.cmdCancel.Enabled = True
- End If
- Else
- ImportDialogArea.EndExecute()
- End If
- End Sub
- Sub TemplateDirSearchDialog()
- CallDirSearchDialog(ImportDialog.TemplateImportPath)
- End Sub
- Sub RepaintHeaderPreview()
- Dim Bitmap As Object
- Dim CurStep as Integer
- Dim sBitmapPath as String
- Dim LocPrefix as String
- CurStep = ImportDialog.Step
- LocPrefix = WizardMode
- LocPrefix = ReplaceString(LocPrefix,"XML", "SO")
- If CurStep = 2 Then
- sBitmapPath = SOBitmapPath & LocPrefix & "-Import_" & CurStep & "-" & Applications(CurOffice,SBAPPLKEY) + 1 & ".png"
- Else
- sBitmapPath = SOBitmapPath & "Import_" & CurStep & ".png"
- End If
- ImportDialog.ImportPreview.ImageURL = sBitmapPath
- End Sub
- Sub CheckModuleInstallation()
- Dim i as Integer
- For i = 1 To MaxApplCount
- ImportDialogArea.GetControl("chk" & WizardMode & "Application" & i).Model.Enabled = Abs(CheckInstalledModule(i-1))
- Next i
- End Sub
- Function CheckInstalledModule(Index as Integer) as Boolean
- Dim ModuleName as String
- Dim NameList() as String
- Dim MaxIndex as Integer
- Dim i as Integer
- ModuleName = ModuleList(Index)
- If Instr(1,ModuleName,"/") <> 0 Then
- CheckInstalledModule() = False
- NameList() = ArrayoutOfString(ModuleName,"/", MaxIndex)
- For i = 0 To MaxIndex
- If oFactoryKey.HasByName(NameList(i)) Then
- CheckInstalledModule() = True
- End If
- Next i
- Else
- CheckInstalledModule() = oFactoryKey.HasByName(ModuleName)
- End If
- End Function
- Sub ToggleCheckboxes(oEvent as Object)
- Dim bMSEnable as Boolean
- WizardMode = oEvent.Source.Model.Tag
- bMSEnable = WizardMode = "MS"
- ToggleCheckboxesWithBoolean(bMSEnable)
- End Sub
- Sub ToggleCheckboxesWithBoolean(bMSEnable as Boolean)
- If bMSEnable = True Then
- WizardMode = SBMICROSOFTMODE
- MaxApplCount = 3
- Else
- 'Not supposed to happen - is there an assert in BASIC...
- End If
- With ImportDialogArea
- .GetControl("chkMSApplication1").Model.Enabled = bMSEnable
- .GetControl("chkMSApplication2").Model.Enabled = bMSEnable
- .GetControl("chkMSApplication3").Model.Enabled = bMSEnable
- End With
- CheckModuleInstallation()
- bDoKeepApplValues = False
- ToggleNextButton()
- End Sub
- Sub ToggleNextButton()
- Dim iCurStep as Integer
- Dim bDoEnable as Boolean
- Dim i as Integer
- iCurStep = ImportDialog.Step
- Select Case iCurStep
- Case 1
- With ImportDialog
- If .optMSDocuments.State = 1 Then
- bDoEnable = .chkMSApplication1.State = 1 Or .chkMSApplication2.State = 1 Or .chkMSApplication3.State = 1
- End If
- End With
- bDoKeepApplValues = False
- Case 2
- bDoEnable = CheckControlPath(ImportDialog.chkTemplatePath, ImportDialog.txtTemplateImportPath, True)
- bDoEnable = CheckControlPath(ImportDialog.chkDocumentPath, ImportDialog.txtDocumentImportPath, bDoEnable)
- End Select
- ImportDialog.cmdGoOn.Enabled = bDoEnable
- End Sub
- Sub TakeOverPathSettings()
- 'Takes over the Pathsettings from the first selected application to the next applications
- If Applications(CurOffice,SBDOCSOURCE) = "" Then
- Applications(CurOffice,SBDOCSOURCE) = Applications(0,SBDOCSOURCE)
- Applications(CurOffice,SBDOCTARGET) = Applications(0,SBDOCTARGET)
- Applications(CurOffice,SBTEMPLSOURCE) = Applications(0,SBTEMPLSOURCE)
- Applications(CurOffice,SBTEMPLTARGET) = Applications(0,SBTEMPLTARGET)
- End If
- End Sub
- Function GetImportWizardPaths() as Boolean
- SOBitmapPath = GetOfficeSubPath("Template", "../wizard/bitmap")
- If SOBitmapPath <> "" Then
- SOWorkPath = GetPathSettings("Work", False)
- If SOWorkPath <> "" Then
- SOTemplatePath = GetPathSettings("Template_writable",False,0)
- If SOTemplatePath <> "" Then
- GetImportWizardPaths() = True
- Exit Function
- End If
- End If
- End If
- GetImportWizardPaths() = False
- End Function
- </script:module>
|