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 = 15 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" MSFilterName(0,1) = "writer8" MSFilterName(0,2) = "odt" MSFilterName(0,3) = sMSDocumentCheckBox(0) MSFilterName(0,4) = "Word" MSFilterName(1,0) = "xls" MSFilterName(1,1) = "calc8" MSFilterName(1,2) = "ods" MSFilterName(1,3) = sMSDocumentCheckBox(1) MSFilterName(1,4) = "Excel" MSFilterName(2,0) = "ppt|pps" MSFilterName(2,1) = "impress8|impress8" MSFilterName(2,2) = "odp|odp" MSFilterName(2,3) = sMSDocumentCheckBox(2) MSFilterName(2,4) = "PowerPoint" MSFilterName(3,0) = "dot" MSFilterName(3,1) = "writer8_template" MSFilterName(3,2) = "ott" MSFilterName(3,3) = sMSTemplateCheckBox(0) MSFilterName(3,4) = "Word" MSFilterName(4,0) = "xlt" MSFilterName(4,1) = "calc8_template" MSFilterName(4,2) = "ots" MSFilterName(4,3) = sMSTemplateCheckBox(1) MSFilterName(4,4) = "Excel" MSFilterName(5,0) = "pot" MSFilterName(5,1) = "impress8_template" MSFilterName(5,2) = "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