| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> |
| <!--*********************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| ***********************************************************--> |
| <script:module xmlns:script="http://openoffice.org/2000/script" script:name="DialogModul" script:language="StarBasic">Option Explicit |
| |
| Public Const bDebugWizard = True |
| |
| Public Const SBFIRSTAPPLCHECKED = 0 |
| Public Const SBSECONDAPPLCHECKED = 1 |
| Public Const SBTHIRDAPPLCHECKED = 2 |
| Public Const SBFOURTHAPPLCHECKED = 3 |
| Public bFilterTracingAvailable as Boolean |
| Public WizardMode as String |
| Public Const SBMICROSOFTMODE = "MS" |
| Public Const SBXMLMODE = "SO" |
| ' The absolute maximal Number of possible Applications |
| Public Const Twip = 425 |
| Public Const SBMAXAPPLCOUNT = 4 |
| Public MaxApplCount as Integer |
| Public CurOffice As Integer |
| Public SOBitmapPath As String |
| Public SOWorkPath As String |
| Public SOTemplatePath as String |
| Public bCancelTask As Boolean |
| Public bDoKeepApplValues as Boolean |
| Public iApplSection as Integer |
| Public oUcb as Object |
| Public PathSeparator as String |
| |
| Public ApplCount as Integer |
| Public sKeyName(SBMAXAPPLCOUNT-1) as String |
| Public sValueName(SBMAXAPPLCOUNT-1) as String |
| Public sCRLF as String |
| Public MSFilterName(5,4) as String |
| Public XMLFilterName(7,3) as String 'Number of different formats |
| Public FilterTracingLogPath(2) as String |
| Public bMSApplFilterTracingAvailable(2) as String |
| Public bTakeOverTargetName(2) as Boolean |
| Public bTakeOverPathName(2) as Boolean |
| |
| ' e.g.: |
| ' XMLFilterName(x,0) = "sdw" ' in documents we take the extensions; in SO-templates the appropriate Filtername |
| ' XMLFilterName(x,1) = "swriter: StarWriter 5.0" ' the filtername of the target-format |
| ' XMLFilterName(x,2) = "sxw" ' the target extension |
| |
| Public Applications(SBMAXAPPLCOUNT-1,9) |
| |
| Public Const SBAPPLCONVERT = 0 |
| Public Const SBDOCCONVERT = 1 |
| Public Const SBDOCRECURSIVE = 2 |
| Public Const SBDOCSOURCE = 3 |
| Public Const SBDOCTARGET = 4 |
| Public Const SBTEMPLCONVERT = 5 |
| Public Const SBTEMPLRECURSIVE = 6 |
| Public Const SBTEMPLSOURCE = 7 |
| Public Const SBTEMPLTARGET = 8 |
| Public Const SBAPPLKEY = 9 |
| Public XMLTemplateList() |
| |
| ' Application-relating Data are stored in this Array |
| ' according to the following structure: |
| ' Applications(X,0) = True/False (Application is to be converted) |
| ' Applications(X,1) = True/False (Documents are to be converted) |
| ' Applications(X,2) = True/False (Including Subdirectories) |
| ' Applications(X,3) = "File:///..." (SourceUrl of the documents) |
| ' Applications(X,4) = "File///:..." (TargetUrl of the documents) |
| ' Applications(X,5) = True/False (Templates are to be converted) |
| ' Applications(X,6) = True/False (Including Subdirectories) |
| ' Applications(X,7) = "File:///..." (SourceUrl of the templates) |
| ' Applications(X,8) = "File:///..." (TargetUrl of the templates) |
| ' Applications(X,9) = 0 (Key to the original Index of the Applications) |
| |
| Public Const SBMAXEXTENSIONLENGTH = 17 |
| |
| |
| Sub FillStep_Welcome() |
| Dim i as Integer |
| ' bDoKeepApplValues = False |
| ImportDialogArea.Title = sTitle |
| With ImportDialog |
| .cmdHelp.Label = sHelpButton |
| .cmdCancel.Label = sCancelButton |
| .cmdBack.Label = sBackButton |
| .cmdGoOn.Label = sNextButton |
| .WelcomeTextLabel.Label = sWelcomeTextLabel1 |
| .WelcomeTextLabel2.Label = sWelcomeTextLabel2 |
| .WelcomeTextLabel3.Label = sWelcomeTextLabel3 |
| |
| .optMSDocuments.Label = sContainerName(0) |
| .chkMSApplication1.Label = sMsDocumentCheckbox(0) |
| .chkMSApplication2.Label = sMsDocumentCheckbox(1) |
| .chkMSApplication3.Label = sMsDocumentCheckbox(2) |
| |
| .optSODocuments.Label = sContainerName(1) |
| .chkSOApplication1.Label = sSODocumentCheckbox(0) |
| .chkSOApplication2.Label = sSODocumentCheckbox(1) |
| .chkSOApplication3.Label = sSODocumentCheckbox(2) |
| .chkSOApplication4.Label = sSODocumentCheckbox(3) |
| .cmdBack.Enabled = False |
| .Step = 1 |
| |
| If Not oFactoryKey.hasbyName("com.sun.star.text.TextDocument") Then |
| .chkLogfile.State = 0 |
| .chkLogfile.Enabled = False |
| End If |
| End With |
| CheckModuleInstallation() |
| ToggleNextButton() |
| End Sub |
| |
| |
| Sub FillStep_InputPaths(OfficeIndex as Integer, bStartup as Boolean) |
| Dim Index as Integer |
| Dim oNullObject as Object |
| If bStartup And Not bDoKeepApplValues Then |
| If ImportDialog.optMSDocuments.State = 1 Then |
| SetupMSConfiguration() |
| Else |
| SetupXMLConfiguration() |
| End If |
| FillUpApplicationList() |
| End If |
| CurOffice = OfficeIndex |
| Index = Applications(CurOffice,SBAPPLKEY) |
| InitializePathsforCurrentApplication(Index) |
| With ImportDialog |
| .chkTemplatePath.Label = sTemplateCheckbox(Index) |
| .chkDocumentPath.State = Abs(Applications(CurOffice,SBDOCCONVERT)) |
| .chkDocumentSearchSubDir.State = Abs(Applications(CurOffice,SBDOCRECURSIVE)) |
| .txtDocumentImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCSOURCE)) |
| .txtDocumentExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCTARGET)) |
| .hlnDocuments.Label = sProgressMoreDocs |
| If WizardMode = SBXMLMODE Then |
| ImportDialogArea.Title = sTitle & " - " & sSODocumentCheckBox(Index) |
| Else |
| ImportDialogArea.Title = sTitle & " - " & sMSDocumentCheckBox(Index) |
| End If |
| If WizardMode = SBXMLMODE AND Index = 3 Then |
| ' Note: SO-Helper Applications are partly treated like templates although they only have documents |
| .hlnTemplates.Label = sProgressMoreDocs |
| .chkTemplatePath.Label = sSOHelperDocuments(0,0) |
| .chkTemplatePath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(0,1)) |
| .chkDocumentPath.Label = sSOHelperDocuments(1,0) |
| .chkDocumentPath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(1,1)) |
| Else |
| .chkTemplatePath.Enabled = True |
| .chkDocumentPath.Enabled = True |
| .chkTemplatePath.Label = sTemplateCheckbox(Index) |
| .chkDocumentPath.Label = sDocumentCheckbox(Index) |
| .hlnTemplates.Label = sProgressMoreTemplates |
| End If |
| .chkTemplatePath.State = Abs(Applications(CurOffice,SBTEMPLCONVERT)) |
| ToggleInputPaths(oNullObject,"Template") |
| ToggleInputPaths(oNullObject,"Document") |
| .chkTemplateSearchSubDir.State = Abs(Applications(CurOffice,SBTEMPLRECURSIVE)) |
| .txtTemplateImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLSOURCE)) |
| .txtTemplateExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLTARGET)) |
| .cmdGoOn.Label = sNextButton |
| .cmdBack.Enabled = True |
| ImportDialog.Step = 2 |
| End With |
| ImportDialogArea.GetControl("chkTemplatePath").SetFocus() |
| ToggleNextButton() |
| End Sub |
| |
| |
| Sub FillUpApplicationList() |
| Dim i as Integer |
| Dim a as Integer |
| Dim BoolValue as Boolean |
| If Not bDoKeepApplValues Then |
| a = 0 |
| For i = 1 To ApplCount |
| If ImportDialog.optMSDocuments.State = 1 Then |
| BoolValue = ImportDialogArea.GetControl("chkMSApplication" & i).Model.State = 1 |
| Else |
| BoolValue = ImportDialogArea.GetControl("chkSOApplication" & i).Model.State = 1 |
| End If |
| Applications(a,SBAPPLCONVERT) = BoolValue |
| Applications(a,SBDOCCONVERT) = BoolValue |
| Applications(a,SBDOCRECURSIVE) = BoolValue |
| Applications(a,SBDOCSOURCE) = "" ' GetDefaultPath(i) |
| Applications(a,SBDOCTARGET) = "" ' SOWorkPath |
| Applications(a,SBTEMPLCONVERT) = BoolValue |
| Applications(a,SBTEMPLRECURSIVE) = BoolValue |
| Applications(a,SBTEMPLSOURCE) = "" ' GetTemplateDefaultPath(i) |
| Applications(a,SBTEMPLTARGET) = "" ' GetTargetTemplatePath(i) |
| Applications(a,SBAPPLKEY) = i-1 |
| If BoolValue Then |
| a = a + 1 |
| End If |
| Next i |
| ApplCount = a |
| End If |
| End Sub |
| |
| |
| Sub InitializePathsforCurrentApplication(i as Integer) |
| AssignPathToCurrentApplication(SBDOCSOURCE, GetDefaultPath(i)) |
| AssignPathToCurrentApplication(SBDOCTARGET, SOWorkPath) |
| AssignPathToCurrentApplication(SBTEMPLSOURCE, GetTemplateDefaultPath(i)) |
| AssignPathToCurrentApplication(SBTEMPLTARGET, GetTargetTemplatePath(i)) |
| End Sub |
| |
| |
| Sub AssignPathToCurrentApplication(Index as Integer, NewPath as String) |
| If Applications(CurOffice,Index) = "" Then |
| If CurOffice > 0 Then |
| Applications(CurOffice,Index) = Applications(CurOffice-1,Index) |
| Else |
| Applications(CurOffice,Index) = NewPath |
| End If |
| End If |
| End Sub |
| |
| |
| Sub SaveStep_InputPath() |
| Applications(CurOffice,SBDOCCONVERT) = ImportDialog.chkDocumentPath.State = 1 |
| Applications(CurOffice,SBDOCRECURSIVE) = ImportDialog.chkDocumentSearchSubDir.State = 1 |
| Applications(CurOffice,SBDOCSOURCE) = ConvertToURL(ImportDialog.txtDocumentImportPath.Text) |
| Applications(CurOffice,SBDOCTARGET) = ConvertToUrl(ImportDialog.txtDocumentExportPath.Text) |
| Applications(CurOffice,SBTEMPLCONVERT) = ImportDialog.chkTemplatePath.State = 1 |
| Applications(CurOffice,SBTEMPLRECURSIVE) = ImportDialog.chkTemplateSearchSubDir.State = 1 |
| Applications(CurOffice,SBTEMPLSOURCE) = ConvertToURL(ImportDialog.txtTemplateImportPath.Text) |
| Applications(CurOffice,SBTEMPLTARGET) = ConvertToURL(ImportDialog.txtTemplateExportPath.Text) |
| End Sub |
| |
| |
| Sub ToggleInputPaths(aEvent as Object, Optional sDocType) |
| Dim bDoEnable as Boolean |
| Dim sLocDocType as String |
| Dim oCheckBox as Object |
| If Not IsNull(aEvent) Then |
| sLocDocType = aEvent.Source.Model.Tag |
| Else |
| sLocDocType = sDocType |
| End If |
| With ImportDialogArea |
| oCheckBox = .GetControl("chk" & sLocDocType & "Path").Model |
| bDoEnable = oCheckBox.State = 1 And oCheckBox.Enabled |
| .GetControl("lbl" & sLocDocType & "Import").Model.Enabled = bDoEnable |
| .GetControl("lbl" & sLocDocType & "Export").Model.Enabled = bDoEnable |
| .GetControl("txt" & sLocDocType & "ImportPath").Model.Enabled = bDoEnable |
| .GetControl("txt" & sLocDocType & "ExportPath").Model.Enabled = bDoEnable |
| .GetControl("chk" & sLocDocType & "SearchSubDir").Model.Enabled = bDoEnable |
| .GetControl("cmd" & sLocDocType & "Import").Model.Enabled = bDoEnable |
| .GetControl("cmd" & sLocDocType & "Export").Model.Enabled = bDoEnable |
| End With |
| ToggleNextButton() |
| End Sub |
| |
| |
| Function MakeSummaryString() |
| Dim sTmpText As String |
| Dim i as Integer |
| Dim Index as Integer |
| Dim sAddText as String |
| For i = 0 To ApplCount -1 |
| Index = Applications(i,SBAPPLKEY) |
| GetFilterTracingLogPath(i, Index) |
| If Applications(i,SBTEMPLCONVERT) Then |
| ' Templates are to be converted |
| sAddText = "" |
| If WizardMode = SBMICROSOFTMODE Then |
| sAddText = sSumMSTemplates(Index) & sCRLF |
| Else |
| sAddText = sSumSOTemplates(Index) & sCRLF |
| End If |
| sTmpText = sTmpText & sAddText & ConvertFromUrl(Applications(i,SBTEMPLSOURCE)) & sCRLF |
| If Applications(i,SBTEMPLRECURSIVE) Then |
| ' Including Subdirectories |
| sTmpText = sTmpText & sSumInclusiveSubDir & sCRLF |
| End If |
| sTmpText = sTmpText & sSumSaveDocuments & sCRLF |
| sTmpText = sTmpText & ConvertFromUrl(Applications(i,SBTEMPLTARGET)) & sCRLF |
| sTmpText = sTmpText & sCRLF |
| End If |
| |
| If Applications(i,SBDOCCONVERT) Then |
| ' Documents are to be converted |
| If WizardMode = SBMICROSOFTMODE Then |
| sAddText = sSumMSDocuments(Index) & sCRLF |
| Else |
| sAddText = sSumSODocuments(Index) & sCRLF |
| End If |
| sTmpText = sTmpText & sAddText & ConvertFromUrl(Applications(i,SBDOCSOURCE)) & sCRLF |
| |
| If Applications(i,SBDOCRECURSIVE) Then |
| ' Including Subdirectories |
| sTmpText = sTmpText & sSumInclusiveSubDir & sCRLF |
| End If |
| |
| sTmpText = sTmpText & sSumSaveDocuments & sCRLF |
| sTmpText = sTmpText & ConvertFromUrl(Applications(i,SBDOCTARGET)) & sCRLF |
| sTmpText = sTmpText & sCRLF |
| End If |
| Next i |
| MakeSummaryString = sTmpText |
| End Function |
| |
| |
| Sub FillStep_Summary() |
| ImportDialogArea.Title = sTitle |
| With ImportDialog |
| .SummaryTextbox.Text = MakeSummaryString() |
| .cmdGoOn.Enabled = .SummaryTextbox.Text <> "" |
| .cmdGoOn.Label = sBeginButton |
| .SummaryHeaderLabel.Label = sSummaryHeader |
| .Step = 3 |
| End With |
| ImportDialogArea.GetControl("SummaryHeaderLabel").SetFocus() |
| End Sub |
| |
| |
| Sub FillStep_Progress() |
| With ImportDialog |
| .cmdBack.Enabled = False |
| .cmdGoOn.Enabled = False |
| .hlnProgress.Label = sProgressPage_1 |
| .LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD |
| .LabelRetrieval.Label = sProgressPage_2 |
| .LabelCurProgress.Label = sProgressPage_3 |
| .LabelCurDocumentRetrieval.Label = "" |
| .LabelCurTemplateRetrieval.Label = "" |
| .LabelCurDocument.Label = "" |
| .Step = 4 |
| End With |
| ImportDialogArea.GetControl("LabelRetrieval").SetFocus() |
| If ImportDialog.chkLogfile.State = 1 Then |
| ImportDialog.cmdShowLogFile.DefaultButton = True |
| End If |
| End Sub |
| |
| |
| Sub GetFilterTracingLogPath(i as Integer, Index as Integer) |
| Dim aNodePath(0) as new com.sun.star.beans.PropertyValue |
| Dim oMasterKey |
| Dim oImportKey |
| Dim oWordKey |
| Dim oExcelkey |
| Dim oPowerpointKey |
| Dim oFilterService |
| aNodePath(0).Name = "nodepath" |
| aNodePath(0).Value = "org.openoffice.Office.Tracing" |
| oFilterService = createUnoService("com.sun.star.util.FilterTracer") |
| bFilterTracingAvailable = Not IsNull(oFilterService) |
| If bFilterTracingAvailable Then |
| oMasterkey = GetRegistryKeyContent("org.openoffice.Office.Tracing/") |
| If oMasterKey.hasbyName("Import") Then |
| oImportKey = GetRegistryKeyContent("org.openoffice.Office.Tracing/Import") |
| bMSApplFilterTracingAvailable(i) = CheckMSImportAvailability(oImportkey, MSFiltername(Index, 4), FilterTracingLogPath(i), bTakeOverTargetName(i), bTakeOverPathName(i)) |
| End If |
| End If |
| End Sub |
| |
| |
| Function CheckMSImportAvailability(oImportkey, MSApplName as String, MSLogPath as String, bTakeOverTargetname as String, bTakeOverpathName as String) as Boolean |
| Dim bApplIsAvailable as Boolean |
| Dim oApplKey |
| Dim LocApplName as String |
| Dim LocApplPath as String |
| bApplIsAvailable = oImportKey.hasbyName(MSApplName) |
| If bApplIsAvailable Then |
| oApplKey = oImportKey.getByName(MSApplName) |
| bApplIsAvailable = oApplKey.On |
| LocApplName = oApplKey.Name |
| LocApplPath = oApplKey.Path |
| bTakeOverTargetName = (LocApplName = "") |
| bTakeOverPathName = (LocApplPath = "") |
| MSLogPath = LocApplPath & "/" & LocApplName & ".log" |
| End If |
| CheckMSImportAvailability() = bApplIsAvailable |
| End Function |
| |
| |
| |
| Sub SetupMSConfiguration() |
| iApplSection = 0 |
| Wizardmode = SBMICROSOFTMODE |
| MaxApplCount = 3 |
| ApplCount = 3 |
| ' chkTemplatePath-Captions |
| GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox()) |
| ' DocumentCheckbox- Captions |
| GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox()) |
| |
| sKeyName(0) = "Software\Microsoft\Office\8.0\Word\Options" |
| sKeyName(1) = "Software\Microsoft\Office\8.0\Excel\Microsoft Excel" |
| sKeyName(2) = "Software\Microsoft\Office\8.0\PowerPoint\Recent Folder List\Default" |
| |
| sValueName(0) = "DOC-PATH" |
| sValueName(1) = "DefaultPath" |
| sValueName(2) = "" |
| |
| ' See definition of Filtername-Array about meaning of fields |
| MSFilterName(0,0) = "doc|docx|docm" |
| MSFilterName(0,1) = "writer8|writer8|writer8" |
| MSFilterName(0,2) = "odt|odt|odt" |
| MSFilterName(0,3) = sMSDocumentCheckBox(0) |
| MSFilterName(0,4) = "Word" |
| |
| |
| MSFilterName(1,0) = "xls|xlsx|xlsm" |
| MSFilterName(1,1) = "calc8|calc8|calc8" |
| MSFilterName(1,2) = "ods|ods|ods" |
| MSFilterName(1,3) = sMSDocumentCheckBox(1) |
| MSFilterName(1,4) = "Excel" |
| |
| MSFilterName(2,0) = "ppt|pps|pptx|pptm" |
| MSFilterName(2,1) = "impress8|impress8|impress8|impress8" |
| MSFilterName(2,2) = "odp|odp|odp|odp" |
| MSFilterName(2,3) = sMSDocumentCheckBox(2) |
| MSFilterName(2,4) = "PowerPoint" |
| |
| MSFilterName(3,0) = "dot|dotx|dotm" |
| MSFilterName(3,1) = "writer8_template|writer8_template|writer8_template" |
| MSFilterName(3,2) = "ott|ott|ott" |
| MSFilterName(3,3) = sMSTemplateCheckBox(0) |
| MSFilterName(3,4) = "Word" |
| |
| MSFilterName(4,0) = "xlt|xltx|xltm" |
| MSFilterName(4,1) = "calc8_template|calc8_template|calc8_template" |
| MSFilterName(4,2) = "ots|ots|ots" |
| MSFilterName(4,3) = sMSTemplateCheckBox(1) |
| MSFilterName(4,4) = "Excel" |
| |
| MSFilterName(5,0) = "pot|potx|potm" |
| MSFilterName(5,1) = "impress8_template|impress8_template|impress8_template" |
| MSFilterName(5,2) = "otp|otp|otp" |
| MSFilterName(5,3) = sMSTemplateCheckBox(2) |
| MSFilterName(5,4) = "PowerPoint" |
| End Sub |
| |
| |
| |
| ' This is an extract from "http://util.openoffice.org/source/browse/util/sot/source/base/exchange.cxx?rev=1.25&content-type=text/x-cvsweb-markup" |
| ' about the listed defined mimetypes that are required to define binary StarOffice templates that have for all applications the same extension ".vor" |
| |
| ' 26 SOT_FORMATSTR_ID_STARWRITER_30*/ { "application/x-openoffice-starwriter-30;windows_formatname=\"StarWriter 3.0\"", "StarWriter 3.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 27 SOT_FORMATSTR_ID_STARWRITER_40*/ { "application/x-openoffice-starwriter-40;windows_formatname=\"StarWriter 4.0\"", "StarWriter 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 28 SOT_FORMATSTR_ID_STARWRITER_50*/ { "application/x-openoffice-starwriter-50;windows_formatname=\"StarWriter 5.0\"", "StarWriter 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 29 SOT_FORMATSTR_ID_STARWRITERWEB_40*/ { "application/x-openoffice-starwriterweb-40;windows_formatname=\"StarWriter/Web 4.0\"", "StarWriter/Web 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 30 SOT_FORMATSTR_ID_STARWRITERWEB_50*/ { "application/x-openoffice-starwriterweb-50;windows_formatname=\"StarWriter/Web 5.0\"", "StarWriter/Web 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 31 SOT_FORMATSTR_ID_STARWRITERGLOB_40*/ { "application/x-openoffice-starwriterglob-40;windows_formatname=\"StarWriter/Global 4.0\"", "StarWriter/Global 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 32 SOT_FORMATSTR_ID_STARWRITERGLOB_50*/ { "application/x-openoffice-starwriterglob-50;windows_formatname=\"StarWriter/Global 5.0\"", "StarWriter/Global 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 33 SOT_FORMATSTR_ID_STARDRAW*/ { "application/x-openoffice-stardraw;windows_formatname=\"StarDrawDocument\"", "StarDrawDocument", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 34 SOT_FORMATSTR_ID_STARDRAW_40*/ { "application/x-openoffice-stardraw-40;windows_formatname=\"StarDrawDocument 4.0\"", "StarDrawDocument 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 36 SOT_FORMATSTR_ID_STARDRAW_50*/ { "application/x-openoffice-stardraw-50;windows_formatname=\"StarDraw 5.0\"", "StarDraw 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 35 SOT_FORMATSTR_ID_STARIMPRESS_50*/ { "application/x-openoffice-starimpress-50;windows_formatname=\"StarImpress 5.0\"", "StarImpress 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 37 SOT_FORMATSTR_ID_STARCALC*/ { "application/x-openoffice-starcalc;windows_formatname=\"StarCalcDocument\"", "StarCalcDocument", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 38 SOT_FORMATSTR_ID_STARCALC_40*/ { "application/x-openoffice-starcalc-40;windows_formatname=\"StarCalc 4.0\"", "StarCalc 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 39 SOT_FORMATSTR_ID_STARCALC_50*/ { "application/x-openoffice-starcalc-50;windows_formatname=\"StarCalc 5.0\"", "StarCalc 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 40 SOT_FORMATSTR_ID_STARCHART*/ { "application/x-openoffice-starchart;windows_formatname=\"StarChartDocument\"", "StarChartDocument", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 41 SOT_FORMATSTR_ID_STARCHART_40*/ { "application/x-openoffice-starchart-40;windows_formatname=\"StarChartDocument 4.0\"", "StarChartDocument 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 42 SOT_FORMATSTR_ID_STARCHART_50*/ { "application/x-openoffice-starchart-50;windows_formatname=\"StarChart 5.0\"", "StarChart 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| ' 46 SOT_FORMATSTR_ID_STARMATH*/ { "application/x-openoffice-starmath;windows_formatname=\"StarMath\"", "StarMath", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 47 SOT_FORMATSTR_ID_STARMATH_40*/ { "application/x-openoffice-starmath-40;windows_formatname=\"StarMathDocument 4.0\"", "StarMathDocument 4.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| ' 48 SOT_FORMATSTR_ID_STARMATH_50*/ { "application/x-openoffice-starmath-50;windows_formatname=\"StarMath 5.0\"", "StarMath 5.0", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, |
| |
| |
| Sub SetupXMLConfiguration() |
| iApplSection = 1000 |
| Wizardmode = SBXMLMODE |
| ApplCount = 4 |
| MaxApplCount = 4 |
| XMLTemplateList = Array("vor", "sti", "stw" , "stc" , "std") |
| ' chkTemplatePath-Captions |
| GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox()) |
| ' DocumentCheckbox- Captions |
| GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox()) |
| |
| XMLFilterName(0,0) = "sdw|sxw" |
| XMLFilterName(0,1) = "writer8|writer8" |
| XMLFilterName(0,2) = "odt|odt" |
| XMLFilterName(0,3) = sDocumentCheckBox(0) |
| |
| XMLFilterName(1,0) = "sdc|sxc" |
| XMLFilterName(1,1) = "calc8|calc8" |
| XMLFilterName(1,2) = "ods|ods" |
| XMLFilterName(1,3) = sDocumentCheckBox(1) |
| |
| If oFactoryKey.HasByName("com.sun.star.drawing.DrawingDocument") and oFactoryKey.HasByName("com.sun.star.presentation.PresentationDocument") Then |
| XMLFilterName(2,0) = "sdd|sda|sxi|sxd" |
| XMLFilterName(2,1) = "impress8|draw8|impress8|draw8" |
| XMLFilterName(2,2) = "odp|odg|odp|odg" |
| Elseif oFactoryKey.HasByName("com.sun.star.drawing.DrawingDocument") Then |
| XMLFilterName(2,0) = "sda|sxd" |
| XMLFilterName(2,1) = "draw8|draw8" |
| XMLFilterName(2,2) = "odg|odg" |
| Elseif oFactoryKey.HasByName("com.sun.star.presentation.PresentationDocument") Then |
| XMLFilterName(2,0) = "sdd|sxi" |
| XMLFilterName(2,1) = "impress8|impress8" |
| XMLFilterName(2,2) = "odp|odp" |
| End If |
| XMLFilterName(2,3) = sDocumentCheckBox(2) |
| |
| |
| XMLFilterName(3,0) = "smf|sxm" |
| XMLFilterName(3,1) = "math8|math8" |
| XMLFilterName(3,2) = "odf|odf" |
| XMLFilterName(3,3) = sDocumentCheckBox(3) |
| |
| XMLFilterName(4,0) = "application/x-openoffice-starwriter|application/vnd.stardivision.writer/web|application/vnd.sun.xml.writer|application/vnd.sun.xml.writerweb" |
| XMLFilterName(4,1) = "writer8_template|writerweb8_writer_template|writer8_template|writerweb8_writer_template" |
| XMLFilterName(4,2) = "ott|oth|ott|oth" |
| XMLFilterName(4,3) = sTemplateCheckBox(0) |
| |
| |
| XMLFilterName(5,0) = "application/x-openoffice-starcalc|application/vnd.sun.xml.calc" |
| XMLFilterName(5,1) = "calc8_template|calc8_template" |
| XMLFilterName(5,2) = "ots|ots" |
| XMLFilterName(5,3) = sTemplateCheckBox(1) |
| |
| ' due to bug #108942# impress templates of the version 4.0 have to be handled in a special way because their mimetype |
| ' falsely points to the draw application. |
| If oFactoryKey.HasByName("com.sun.star.drawing.DrawingDocument") and oFactoryKey.HasByName("com.sun.star.presentation.PresentationDocument") Then |
| XMLFilterName(6,0) = "application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/x-openoffice-stardraw|application/vnd.sun.xml.impress|application/vnd.sun.xml.draw" |
| XMLFilterName(6,1) = "impress8_template|impress8_template|draw8_template|impress8_template|draw8_template" |
| XMLFilterName(6,2) = "otp|otp|otg|otp|otg" |
| Elseif oFactoryKey.HasByName("com.sun.star.drawing.DrawingDocument") Then |
| XMLFilterName(6,0) = "application/x-openoffice-stardraw|application/vnd.sun.xml.draw" |
| XMLFilterName(6,1) = "draw8_template|draw8_template" |
| XMLFilterName(6,2) = "otg|otg" |
| Elseif oFactoryKey.HasByName("com.sun.star.presentation.PresentationDocument") Then |
| XMLFilterName(6,0) = "application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/vnd.sun.xml.impress" |
| XMLFilterName(6,1) = "impress8_template|impress8_template|impress8_template" |
| XMLFilterName(6,2) = "otp|otp|otp" |
| End If |
| XMLFilterName(6,3) = sTemplateCheckBox(2) |
| |
| If oFactoryKey.HasByName("com.sun.star.text.GlobalDocument") Then |
| XMLFilterName(7,0) = "sgl|sxg" |
| XMLFilterName(7,1) = "writerglobal8|writerglobal8" |
| XMLFilterName(7,2) = "odm|odm" |
| XMLFilterName(7,3) = sTemplateCheckBox(3) |
| End If |
| End Sub |
| |
| |
| Function CheckControlPath(oCheckbox as Object, oTextBox as Object, ByVal bDoEnable as Boolean) |
| Dim sPath as String |
| If Not bDoEnable Then |
| CheckControlPath = False |
| ElseIf oCheckbox.State = 0 Then |
| CheckControlPath = True |
| Else |
| sPath = ConvertToUrl(Trim(oTextBox.Text) |
| CheckControlPath = oUcb.Exists(sPath) |
| End If |
| End Function |
| |
| |
| Function CheckInputPaths() as Boolean |
| Dim bChangePage as Boolean |
| bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateImportPath, True, False, sTitle, False) |
| bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateExportPath, bChangePage, True, sTitle, False) |
| bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentImportPath, bChangePage, False, sTitle, False) |
| bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentExportPath, bChangePage, True, sTitle, False) |
| CheckInputPaths = bChangePage |
| End Function |
| |
| |
| Function CheckTextBoxPath(oTextBox as Object, ByVal bCheck as Boolean, bCreateNew as Boolean, sTitle as String, bgetResources as Boolean) as Boolean |
| Dim iCreate as Integer |
| Dim sQueryMessage as String |
| Dim sUrlPath as String |
| Dim sMessageNoDir as String |
| Dim sShowPath as String |
| Dim oLocUcb as Object |
| oLocUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess") |
| If bGetResources Then |
| If InitResources("ImportWizard","imp") then |
| sNoDirCreation = GetResText(1050) |
| sMsgDirNotThere = GetResText(1051) |
| sQueryForNewCreation = GetResText(1052) |
| Else |
| CheckTextBoxPath() = False |
| Exit Function |
| End If |
| End If |
| If oTextBox.Enabled Then |
| If bCheck Then |
| sShowPath = oTextBox.Text |
| sUrlPath = ConvertToUrl(sShowPath) |
| If Not oLocUcb.Exists(sUrlPath) Then |
| If Not bCreateNew Then |
| ' Sourcedirectories must be existing, Targetdirectories may be created new |
| sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,"%1") |
| Msgbox(sQueryMessage,16,sTitle) |
| CheckTextBoxPath() = False |
| Exit Function |
| Else |
| sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,"%1") |
| sQueryMessage = sQueryMessage & Chr(13) & sQueryForNewCreation |
| iCreate = Msgbox (sQueryMessage, 36, sTitle) |
| If iCreate = 6 Then |
| On Local Error Goto NOVALIDPATH |
| CreateFolder(sUrlPath) |
| If Not oLocUcb.Exists(sUrlPath) Then |
| Goto NOVALIDPATH |
| End If |
| Else |
| CheckTextBoxPath() = False |
| Exit Function |
| End If |
| End If |
| End If |
| CheckTextBoxPath() = True |
| Else |
| CheckTextBoxPath() = False |
| End If |
| Else |
| CheckTextBoxPath() = True |
| End If |
| Exit Function |
| NOVALIDPATH: |
| sMessageNoDir = ReplaceString(sNoDirCreation, sShowPath, "%1") |
| Msgbox(sMessageNoDir, 16, sTitle) |
| CheckTextBoxPath() = False |
| End Function |
| |
| |
| Sub InitializeProgressPage(oDialog as Object) |
| oDialog.LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL |
| oDialog.LabelCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD |
| End Sub |
| |
| |
| Sub SetProgressDisplay(AbsFound as Integer) |
| ImportDialog.LabelRetrieval.Label = sProgressPage_2 & " " & ReplaceString(sProgressPage_5, Str(AbsFound) & " ", "%1") |
| ImportDialog.LabelCurDocumentRetrieval.Label = sProgressFound & " " & CStr(AbsDocuFound) & " " & sProgressMoreDocs |
| ImportDialog.LabelCurTemplateRetrieval.Label = sProgressFound & " " & CStr(AbsTemplateFound) & " " & sProgressMoreTemplates |
| End Sub |
| |
| Sub TakoverFolderName(aEvent as Object) |
| Dim RefControlName as String |
| Dim oRefControl |
| RefControlName = aEvent.Source.Model.Tag |
| oRefControl = ImportDialogArea.GetControl(RefControlName) |
| GetFolderName(oRefControl.Model) |
| ToggleNextButton() |
| End Sub |
| |
| |
| Sub FinalizeDialogButtons() |
| ImportDialog.cmdShowLogFile.Enabled = ((Isnull(oLogDocument) = False) And (ImportDialog.chkLogfile.State = 1)) |
| ImportDialog.cmdCancel.Enabled = False |
| ImportDialog.cmdGoOn.Label = sCloseButton |
| ImportDialog.cmdGoOn.Enabled = True |
| End Sub |
| </script:module> |