home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / LibreOffice / LibreOffice_4.3.5_Win_x86.msi / Main.xba < prev    next >
Extensible Markup Language  |  2014-05-25  |  9KB  |  295 lines

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