Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  AutoPilotRun.xba   Sprache: unbekannt

 
<?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="AutoPilotRun" script:language="StarBasic">Option Explicit

Public SourceDir as String
Public TargetDir as String
Public TargetStemDir as String
Public SourceFile as String
Public TargetFile as String
Public Source as String
Public SubstFile as String
Public SubstDir as String
Public NoArgs()
Public TypeList(6) as String
Public GoOn as Boolean
Public DoUnprotect as Integer
Public Password as String
Public DocIndex as Integer
Public oPathSettings as Object
Public oUcb as Object
Public TotDocCount as Integer
Public sTotDocCount as String
Public OpenProperties(1) as New com.sun.star.beans.PropertyValue


Sub StartAutoPilot()
Dim i As Integer
Dim oFactoryKey as Object
 BasicLibraries.LoadLibrary("Tools")
 BasicLibraries.LoadLibrary("ImportWizard")
 If InitResources("Euro Converter") Then
  oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
  oLocale = GetStarOfficeLocale()
  InitializeConverter(oLocale, 2)
  ToggleGoOnButton()
  oFactoryKey = GetRegistryKeyContent("org.openoffice.Setup/Office/Factories")
  DialogModel.chkTextDocuments.Enabled = oFactoryKey.hasbyName("com.sun.star.text.TextDocument")
  DialogModel.cmdGoOn.DefaultButton = True
  DialogModel.lstCurrencies.TabIndex = 12
  DialogConvert.GetControl("optWholeDir").SetFocus()
  DialogConvert.Execute()
  DialogConvert.Dispose()
 End If
End Sub


Sub ConvertDocuments()
Dim FilesList()
Dim bDisposable as Boolean

 If Source <> "" And TargetDir <> "" Then
  If DialogModel.optSingleFile.State = 1 Then
   SourceFile = Source
   TotDocCount = 1
  Else
   SourceDir = Source
   TargetStemDir = TargetDir
   TypeList(0) = "calc8"
   TypeList(1) = "calc_StarOffice_XML_Calc"
   If DialogModel.chkTextDocuments.State = 1 Then
    ReDim Preserve TypeList(5) as String

    TypeList(2) = "writer8"
    TypeList(3) = "writerglobal8"
    TypeList(4) = "writer_StarOffice_XML_Writer"
    TypeList(5) = "writer_globaldocument_StarOffice_XML_Writer_GlobalDocument"
   End If
   FilesList() = ReadDirectories(SourceDir, bRecursive, True, False, TypeList())
   TotDocCount = Ubound(FilesList(),1) + 1
  End If
  InitializeProgressPage(DialogModel)
'  ChangeToNextProgressStep()
  sTotDocCount = CStr(TotDocCount)
  OpenProperties(0).Name = "Hidden"
  OpenProperties(0).Value = True
  OpenProperties(1).Name = "AsTemplate"
  OpenProperties(1).Value = False
  For DocIndex = 0 To TotDocCount - 1
   If InitializeDocument(FilesList(), bDisposable) Then
    If StoreDocument() Then
     ConvertDocument()
     oDocument.Store
    End If
    If bDisposable Then
     oDocument.Dispose()
    End If
   End If
  Next DocIndex
  DialogModel.cmdBack.Enabled = True
  DialogModel.cmdGoOn.Enabled = True
  DialogModel.cmdGoOn.Label = sReady
  DialogModel.cmdCancel.Label = sEnd
 End If
End Sub


Function InitializeDocument(FilesList(), bDisposable as Boolean) as Boolean
' The Autopilot is started from step No. 2
Dim sViewPath as String
Dim bIsReadOnly as Boolean
Dim sExtension as String
 On Local Error Goto NEXTFILE
 If Not bCancelTask Then
  If DialogModel.optWholeDir.State = 1 Then
   SourceFile = FilesList(DocIndex,0)
   TargetFile = ReplaceString(SourceFile,TargetStemDir,SourceDir)
   TargetDir = DirectorynameoutofPath(TargetFile, "/")
  Else
   SourceFile = Source
   TargetFile = TargetDir & "/" & FileNameoutofPath(SourceFile, "/")
  End If
  If CreateFolder(TargetDir) Then
   sExtension = GetFileNameExtension(SourceFile, "/")
    oDocument = OpenDocument(SourceFile, OpenProperties(), bDisposable)
   If (oDocument.IsReadOnly) AND (UCase(SourceFile) = UCase(TargetFile)) Then
    bIsReadOnly = True
    Msgbox(sMsgDOCISREADONLY, 16, GetProductName())
   Else
    bIsReadOnly = False
    RetrieveDocumentObjects()
    sViewPath = CutPathView(SourceFile, 60)
    DialogModel.lblCurDocument.Label = Str(DocIndex+1) & "/" & sTotDocCount & " (" & sViewPath & ")"
   End If
   InitializeDocument() = Not bIsReadOnly
  Else
   InitializeDocument() = False
  End If
 Else
  InitializeDocument() = False
 End If
NEXTFILE:
 If Err <> 0 Then
  InitializeDocument() = False
  Resume LETSGO
LETSGO:
 End If
End Function


Sub ChangeToNextProgressStep()
 DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.NORMAL
 DialogConvert.GetControl("lblCurProgress").Visible = True
End Sub


Function StoreDocument() as Boolean
Dim sCurFileExists as String
Dim iOverWrite as Integer
 If (TargetFile <> "") And (Not bCancelTask) Then
  On Local Error Goto NOSAVING
  If oUcb.Exists(TargetFile) Then
   sCurFileExists = ReplaceString(sMsgFileExists, ConvertFromUrl(TargetFile), "<1>")
   sCurFileExists = ReplaceString(sCurFileExists, chr(13), "<CR>")
   iOverWrite = Msgbox (sCurFileExists, 32 + 3, sMsgDLGTITLE)
   Select Case iOverWrite
    Case 1 ' OK
    Case 2  ' Abort
     bCancelTask = True
     StoreDocument() = False
     Exit Function
    Case 7  ' No
     StoreDocument() = False
     Exit Function
   End Select
  End If
  If TargetFile <> SourceFile Then
   oDocument.StoreAsUrl(TargetFile,NoArgs)
  Else
   oDocument.Store
  End If
  StoreDocument() = True
  NOSAVING:
  If Err <> 0 Then
   StoreDocument() = False
   Resume CLERROR
  End If
  CLERROR:
 End If
End Function


Sub SwapExtent()
 DialogModel.chkRecursive.Enabled = DialogModel.optWholeDir.State = 1
 If DialogModel.optWholeDir.State = 1 Then
  DialogModel.lblSource.Label = sSOURCEDIR
  If Not IsNull(SubstFile) Then
   SubstFile = DialogModel.txtSource.Text
   DialogModel.txtSource.Text = SubstDir
  End If
 Else
  DialogModel.LblSource.Label = sSOURCEFILE
  If Not IsNull(SubstDir) Then
   SubstDir = DialogModel.txtSource.Text
   DialogModel.txtSource.Text = SubstFile
  End If
 End If
 ToggleGoOnButton()
End Sub


Function InitializeThirdStep() as Boolean
Dim TextBoxText as String
 Source = AssignFileName(DialogModel.txtSource.Text, DialogModel.lblSource.Label, True)
 If CheckTextBoxPath(DialogModel.txtTarget, True, True, sMsgDLGTITLE, True) Then
  TargetDir = AssignFileName(DialogModel.txtTarget.Text, DialogModel.lblTarget.Label, False)
 Else
  TargetDir = ""
 End If
 If Source <> "" And TargetDir <> "" Then
  bRecursive = DialogModel.chkRecursive.State = 1
  bDoUnprotect = DialogModel.chkProtect.State = 1
  DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD
  DialogModel.lblRetrieval.Label = sPrgsRETRIEVAL
  DialogModel.lblCurProgress.Label = sPrgsCONVERTING
  If DialogModel.optWholeDir.State = 1 Then
   TextBoxText = sSOURCEDIR & " " & ConvertFromUrl(Source) & chr(13)
   If DialogModel.chkRecursive.State = 1 Then
    TextBoxText = TextBoxText & DeleteStr(sInclusiveSubDir,"~") & chr(13)
   End If
  Else
   TextBoxText = sSOURCEFILE & " " & ConvertFromUrl(Source) & chr(13)
  End If
  TextBoxText = TextBoxText & sTARGETDIR & " " & ConvertFromUrl(TargetDir) & chr(13)
  If DialogModel.chkProtect.State = 1 Then
   TextBoxText = TextboxText & sPrgsUNPROTECT
  End If
  DialogModel.txtConfig.Text = TextBoxText
   ToggleProgressStep()
  DialogModel.cmdGoOn.Enabled = False
  InitializeThirdStep() = True
 Else
  InitializeThirdStep() = False
 End If
End Function


Sub ToggleProgressStep(Optional aEvent as Object)
Dim bMakeVisible as Boolean
Dim LocStep as Integer
 ' If the Sub is call by the 'cmdBack' Button then set the 'bMakeVisible' variable accordingly
 bMakeVisible = IsMissing(aEvent)
 If bMakeVisible Then
  DialogModel.Step = 3
 Else
  DialogModel.Step = 2
 End If
  DialogConvert.GetControl("lblCurrencies").Visible = Not bMakeVisible
  DialogConvert.GetControl("lstCurrencies").Visible = Not bMakeVisible
 DialogConvert.GetControl("cmdBack").Visible = bMakeVisible
  DialogConvert.GetControl("cmdGoOn").Visible = bMakeVisible
 DialogModel.imgPreview.ImageUrl = BitmapDir & "euro_" & DialogModel.Step & ".png"
End Sub


Sub EnableStep2DialogControls(OnValue as Boolean)
 With DialogModel
  .hlnExtent.Enabled = OnValue
  .optWholeDir.Enabled = OnValue
  .optSingleFile.Enabled = OnValue
  .chkProtect.Enabled = OnValue
  .cmdCallSourceDialog.Enabled = OnValue
  .cmdCallTargetDialog.Enabled = OnValue
  .lblSource.Enabled = OnValue
  .lblTarget.Enabled = OnValue
  .txtSource.Enabled = OnValue
  .txtTarget.Enabled = OnValue
  .imgPreview.Enabled = OnValue
  .lstCurrencies.Enabled = OnValue
  .lblCurrencies.Enabled = OnValue
  If OnValue Then
   ToggleGoOnButton()
   .chkRecursive.Enabled = .optWholeDir.State = 1
  Else
   .cmdGoOn.Enabled = False
   .chkRecursive.Enabled = False
  End If
 End With
End Sub


Sub InitializeProgressPage()
 DialogConvert.GetControl("lblRetrieval").Visible = False
 DialogConvert.GetControl("lblCurProgress").Visible = False
 DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL
 DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD
 DialogConvert.GetControl("lblRetrieval").Visible = True
 DialogConvert.GetControl("lblCurProgress").Visible = True
End Sub


Function AssignFileName(sPath as String, ByVal HeaderString, bCheckFileType as Boolean) as String
Dim bIsValid as Boolean
Dim sLocMimeType as String
Dim sNoDirMessage as String
 HeaderString = DeleteStr(HeaderString, ":")
 sPath = ConvertToUrl(Trim(sPath))
 bIsValid = oUcb.Exists(sPath)
 If bIsValid Then
  If DialogModel.optSingleFile.State = 1 Then
   If bCheckFileType Then
    sLocMimeType = GetRealFileContent(sPath)
    If DialogModel.chkTextDocuments.State = 1 Then
     If (Instr(1, sLocMimeType, "text") = 0) And (Instr(1, sLocMimeType, "calc") = 0) Then
      Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
      bIsValid = False
     End If
    Else
     If (Instr(1, sLocMimeType, "spreadsheet") = 0) And (Instr(1, sLocMimeType, "calc")) = 0 Then
      Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
      bIsValid = False
     End If
    End If
   End If
  Else
   If Not oUcb.IsFolder(sPath) Then
    sNoDirMessage = ReplaceString(sMsgNODIRECTORY,sPath,"<1>")
    Msgbox(sNoDirMessage,48, sMsgDLGTITLE)
    bIsValid = False
   Else
    sPath = RTrimStr(sPath,"/")
    sPath = sPath & "/"
   End If
  End if
 Else
  Msgbox(HeaderString & " '" & ConvertFromUrl(sPath) & "' " & sMsgNOTTHERE,48, sMsgDLGTITLE)
 End If
 If bIsValid Then
  AssignFileName() = sPath
 Else
  AssignFilename() = ""
 End If
End Function


Sub ToggleGoOnButton()
Dim bDoEnable as Boolean
Dim sLocMimeType as String
Dim sPath as String
 bDoEnable = Ubound(DialogModel.lstCurrencies.SelectedItems()) > -1
 If bDoEnable Then
  ' Check if Source is set correctly
  sPath = ConvertToUrl(Trim(DialogModel.txtSource.Text))
  bDoEnable = oUcb.Exists(sPath)
 End If
 DialogModel.cmdGoOn.Enabled = bDoEnable
End Sub


Sub CallFolderPicker()
 GetFolderName(DialogModel.txtTarget)
 ToggleGoOnButton()
End Sub


Sub CallFilePicker()
 If DialogModel.optSingleFile.State = 1 Then
  Dim oMasterKey as Object
  Dim oTypes() as Object
  Dim oUIKey() as Object

  oMasterKey = GetRegistryKeyContent("org.openoffice.TypeDetection.Types")
  oTypes() = oMasterKey.Types
  oUIKey = GetRegistryKeyContent("org.openoffice.Office.UI/FilterClassification/LocalFilters")
  If DialogModel.chkTextDocuments.State = 1 Then
   Dim FilterNames(7,1) as String
   FilterNames(4,0) = oTypes.GetByName("writer_StarOffice_XML_Writer").UIName
   FilterNames(4,1) = "*.sxw"
   FilterNames(5,0) = oTypes.GetByName("writer_StarOffice_XML_Writer_Template").UIName
   FilterNames(5,1) = "*.stw"
   FilterNames(6,0) = oTypes.GetByName("writer8").UIName
   FilterNames(6,1) = "*.odt"
   FilterNames(7,0) = oTypes.GetByName("writer8_template").UIName
   FilterNames(7,1) = "*.ott"
  Else
   ReDim FilterNames(3,1) as String
  End If
  FilterNames(0,0) = oTypes.GetByName("calc8").UIName
  Filternames(0,1) = "*.ods"
  FilterNames(1,0) = oTypes.GetByName("calc8_template").UIName
  Filternames(1,1) = "*.ots"
  FilterNames(2,0) = oTypes.GetByName("calc_StarOffice_XML_Calc").UIName
  Filternames(2,1) = "*.sxc"
  FilterNames(3,0) = oTypes.GetByName("calc_StarOffice_XML_Calc_Template").UIName
  Filternames(3,1) = "*.stc"
  GetFileName(DialogModel.txtSource, Filternames())
 Else
  GetFolderName(DialogModel.txtSource)
 End If
 ToggleGoOnButton()
End Sub


Sub PreviousStep()
 DialogModel.Step = 2
 DialogModel.cmdGoOn.Label = sGOON
 DialogModel.cmdCancel.Label = sCANCEL
End Sub
</script:module>

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge