summaryrefslogtreecommitdiff
path: root/wizards/source/gimmicks/ReadDir.xba
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
commit2e626373db2412ac22e8c5c27a60d11cd29e875b (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /wizards/source/gimmicks/ReadDir.xba
parentf7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'wizards/source/gimmicks/ReadDir.xba')
-rw-r--r--wizards/source/gimmicks/ReadDir.xba305
1 files changed, 0 insertions, 305 deletions
diff --git a/wizards/source/gimmicks/ReadDir.xba b/wizards/source/gimmicks/ReadDir.xba
deleted file mode 100644
index 370f8cbc1..000000000
--- a/wizards/source/gimmicks/ReadDir.xba
+++ /dev/null
@@ -1,305 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
-<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ReadDir" script:language="StarBasic">Option Explicit
-Public Const SBPAGEX = 800
-Public Const SBPAGEY = 800
-Public Const SBRELDIST = 1.3
-
-&apos; Names of the second Dimension of the Array iLevelPos
-Public Const SBBASEX = 0
-Public Const SBBASEY = 1
-
-Public Const SBOLDSTARTX = 2
-Public Const SBOLDSTARTY = 3
-
-Public Const SBOLDENDX = 4
-Public Const SBOLDENDY = 5
-
-Public Const SBNEWSTARTX = 6
-Public Const SBNEWSTARTY = 7
-
-Public Const SBNEWENDX = 8
-Public Const SBNEWENDY = 9
-
-Public ConnectLevel As Integer
-Public iLevelPos(1,9) As Long
-Public Source as String
-Public iCurLevel as Integer
-Public nConnectLevel as Integer
-Public nOldWidth, nOldHeight As Long
-Public nOldX, nOldY, nOldLevel As Integer
-Public oOldLeavingLine As Object
-Public oOldArrivingLine As Object
-Public DlgReadDir as Object
-Dim oProgressBar as Object
-Dim oDocument As Object
-Dim oPage As Object
-
-
-Sub Main()
-Dim oStandardTemplate as Object
- BasicLibraries.LoadLibrary(&quot;Tools&quot;)
- oDocument = CreateNewDocument(&quot;sdraw&quot;)
- If Not IsNull(oDocument) Then
- oPage = oDocument.DrawPages(0)
- oStandardTemplate = oDocument.StyleFamilies.GetByName(&quot;graphics&quot;).GetByName(&quot;standard&quot;)
- oStandardTemplate.CharHeight = 10
- oStandardTemplate.TextLeftDistance = 100
- oStandardTemplate.TextRightDistance = 100
- oStandardTemplate.TextUpperDistance = 50
- oStandardTemplate.TextLowerDistance = 50
- DlgReadDir = LoadDialog(&quot;Gimmicks&quot;,&quot;ReadFolderDlg&quot;)
- oProgressBar = DlgReadDir.Model.ProgressBar1
- DlgReadDir.Model.TextField1.Text = ConvertFromUrl(GetPathSettings(&quot;Work&quot;))
- DlgReadDir.Model.cmdGoOn.DefaultButton = True
- DlgReadDir.GetControl(&quot;TextField1&quot;).SetFocus()
- DlgReadDir.Execute
- End If
-End Sub
-
-
-Sub TreeInfo()
-Dim oCurTextShape As Object
-Dim i as Integer
-Dim bStartUpRun As Boolean
-Dim CurFilename as String
-Dim BaseLevel as Integer
-Dim oController as Object
-Dim MaxFileIndex as Integer
-Dim FileNames() as String
- ToggleDialogControls(False)
- oProgressBar.ProgressValueMin = 0
- oProgressBar.ProgressValueMax = 100
- bStartUpRun = True
- nOldHeight = 200
- nOldY = SBPAGEY
- nOldX = SBPAGEX
- nOldWidth = SBPAGEX
- oController = oDocument.GetCurrentController
- Source = ConvertToURL(DlgReadDir.Model.TextField1.Text)
- BaseLevel = CountCharsInString(Source, &quot;/&quot;, 1)
- oProgressBar.ProgressValue = 5
- DlgReadDir.Model.Label3.Enabled = True
- FileNames() = ReadSourceDirectory(Source)
- DlgReadDir.Model.Label4.Enabled = True
- DlgReadDir.Model.Label3.Enabled = False
- oProgressBar.ProgressValue = 12
- FileNames() = BubbleSortList(FileNames())
- DlgReadDir.Model.Label5.Enabled = True
- DlgReadDir.Model.Label4.Enabled = False
- oProgressBar.ProgressValue = 20
- MaxFileIndex = Ubound(FileNames(),1)
- For i = 0 To MaxFileIndex
- oProgressBar.ProgressValue = 20 + (i/MaxFileIndex * 80)
- CurFilename = FileNames(i,1)
- SetNewLevels(FileNames(i,0), BaseLevel)
- oCurTextShape = CreateTextShape(oPage, CurFilename)
- CheckPageWidth(oCurTextShape.Size.Width)
- iLevelPos(iCurLevel,SBBASEY) = oCurTextShape.Position.Y
- If i = 0 Then
- AdjustPageHeight(oCurTextShape.Size.Height, MaxFileIndex + 1)
- End If
- &apos; The Current TextShape has To be connected with a TextShape one Level higher
- &apos; except for a TextShape In Level 0:
- If Not bStartUpRun Then
- &apos; A leaving Line Is only drawn when level is not 0
- If iCurLevel&lt;&gt; 0 Then
- &apos; Determine the Coordinates of the arriving Line
- iLevelPos(iCurLevel,SBOLDSTARTX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
- iLevelPos(iCurLevel,SBOLDSTARTY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
-
- iLevelPos(iCurLevel,SBOLDENDX) = iLevelPos(iCurLevel,SBBASEX)
- iLevelPos(iCurLevel,SBOLDENDY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
-
- oOldArrivingLine = DrawLine(iCurLevel, SBOLDSTARTX, SBOLDSTARTY, SBOLDENDX, SBOLDENDY, oPage)
-
- &apos; Determine the End-Coordinates of the last leaving Line
- iLevelPos(nConnectLevel,SBNEWENDX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
- iLevelPos(nConnectLevel,SBNEWENDY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
- Else
- &apos; On Level 0 the last Leaving Line&apos;s Endpoint is the upper edge of the TextShape
- iLevelPos(nConnectLevel,SBNEWENDY) = oCurTextShape.Position.Y
- iLevelPos(nConnectLevel,SBNEWENDX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
- End If
- &apos; Draw the Connectors To the previous TextShapes
- oOldLeavingLine = DrawLine(nConnectLevel, SBNEWSTARTX, SBNEWSTARTY, SBNEWENDX, SBNEWENDY, oPage)
- Else
- &apos; StartingPoint of the leaving Edge
- bStartUpRun = FALSE
- End If
-
- &apos; Determine the beginning Coordinates of the leaving Line
- iLevelPos(iCurLevel,SBNEWSTARTX) = iLevelPos(iCurLevel,SBBASEX) + 0.5 * oCurTextShape.Size.Width
- iLevelPos(iCurLevel,SBNEWSTARTY) = iLevelPos(iCurLevel,SBBASEY) + oCurTextShape.Size.Height
-
- &apos; Save the values For the Next run
- nOldHeight = oCurTextShape.Size.Height
- nOldX = oCurTextShape.Position.X
- nOldWidth = oCurTextShape.Size.Width
- nOldLevel = iCurLevel
- Next i
- ToggleDialogControls(True)
- DlgReadDir.Model.cmdGoOn.Enabled = False
-End Sub
-
-
-Function CreateTextShape(oPage as Object, Filename as String)
-Dim oTextShape As Object
-Dim aPoint As New com.sun.star.awt.Point
-
- aPoint.X = CalculateXPoint()
- aPoint.Y = nOldY + SBRELDIST * nOldHeight
- nOldY = aPoint.Y
-
- oTextShape = oDocument.createInstance(&quot;com.sun.star.drawing.TextShape&quot;)
- oTextShape.LineStyle = 1
- oTextShape.Position = aPoint
-
- oPage.add(oTextShape)
- oTextShape.TextAutoGrowWidth = TRUE
- oTextShape.TextAutoGrowHeight = TRUE
- oTextShape.String = FileName
-
- &apos; Configure Size And Position of the TextShape according to its Scripting
- aPoint.X = iLevelPos(iCurLevel,SBBASEX)
- oTextShape.Position = aPoint
- CreateTextShape() = oTextShape
-End Function
-
-
-Function CalculateXPoint()
- &apos; The current level Is lower than the Old one
- If (iCurLevel&lt; nOldLevel) And (iCurLevel&lt;&gt; 0) Then
- &apos; ClearArray(iLevelPos(),iCurLevel+1)
- Elseif iCurLevel= 0 Then
- iLevelPos(iCurLevel,SBBASEX) = SBPAGEX
- &apos; The current level Is higher than the old one
- Elseif iCurLevel&gt; nOldLevel Then
- iLevelPos(iCurLevel,SBBASEX) = iLevelPos(iCurLevel-1,SBBASEX) + nOldWidth + 100
- End If
- CalculateXPoint = iLevelPos(iCurLevel,SBBASEX)
-End Function
-
-
-Function DrawLine(nLevel, nStartX, nStartY, nEndX, nEndY As Integer, oPage as Object)
-Dim oConnect As Object
-Dim aPoint As New com.sun.star.awt.Point
-Dim aSize As New com.sun.star.awt.Size
- aPoint.X = iLevelPos(nLevel,nStartX)
- aPoint.Y = iLevelPos(nLevel,nStartY)
- aSize.Width = iLevelPos(nLevel,nEndX) - iLevelPos(nLevel,nStartX)
- aSize.Height = iLevelPos(nLevel,nEndY) - iLevelPos(nLevel,nStartY)
- oConnect = oDocument.createInstance(&quot;com.sun.star.drawing.LineShape&quot;)
- oConnect.Position = aPoint
- oConnect.Size = aSize
- oPage.Add(oConnect)
- DrawLine() = oConnect
-End Function
-
-
-Sub GetSourceDirectory()
- GetFolderName(DlgReadDir.Model.TextField1)
-End Sub
-
-
-Function ReadSourceDirectory(ByVal Source As String)
-Dim i as Integer
-Dim m as Integer
-Dim n as Integer
-Dim s as integer
-Dim FileName as string
-Dim FileNameList(100,1) as String
-Dim DirList(0) as String
-Dim oUCBobject as Object
-Dim DirContent() as String
-Dim SystemPath as String
-Dim PathSeparator as String
-Dim MaxFileIndex as Integer
- PathSeparator = GetPathSeparator()
- oUcbobject = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
- m = 0
- s = 0
- DirList(0) = Source
- FileNameList(n,0) = Source
- SystemPath = ConvertFromUrl(Source)
- FileNameList(n,1) = FileNameoutofPath(SystemPath, PathSeparator)
- n = 1
- Do
- Source = DirList(m)
- m = m + 1
- DirContent() = oUcbObject.GetFolderContents(Source,True)
- If Ubound(DirContent()) &lt;&gt; -1 Then
- MaxFileIndex = Ubound(DirContent())
- For i = 0 to MaxFileIndex
- FileName = DirContent(i)
- FileNameList(n,0) = FileName
- SystemPath = ConvertFromUrl(FileName)
- FileNameList(n,1) = FileNameOutofPath(SystemPath, PathSeparator)
- n = n + 1
- If n &gt; Ubound(FileNameList(),1) Then
- ReDim Preserve FileNameList(n + 10,1) as String
- End If
- If oUcbObject.IsFolder(FileName) Then
- s = s + 1
- ReDim Preserve DirList(s) as String
- DirList(s) = FileName
- End If
- Next i
- End If
- Loop Until m &gt; Ubound(DirList()
- ReDim Preserve FileNameList(n-1,1) as String
- ReadSourceDirectory() = FileNameList()
-End Function
-
-
-Sub CloseDialog
- DlgReadDir.EndExecute
-End Sub
-
-
-Sub AdjustPageHeight(lShapeHeight, FileCount)
-Dim lNecHeight as Long
-Dim lBorders as Long
- oDocument.LockControllers
- lBorders = oPage.BorderTop + oPage.BorderBottom
- lNecHeight = SBPAGEY + (FileCount * SBRELDIST * lShapeHeight)
- If lNecHeight &gt; (oPage.Height - lBorders) Then
- oPage.Height = lNecHeight + lBorders + 500
- End If
- oDocument.UnlockControllers
-End Sub
-
-
-Sub SetNewLevels(FileName as String, BaseLevel as Integer)
- iCurLevel= CountCharsInString(FileName, &quot;/&quot;, 1) - BaseLevel
- If iCurLevel &lt;&gt; 0 Then
- nConnectLevel = iCurLevel- 1
- Else
- nConnectLevel = iCurLevel
- End If
- If iCurLevel &gt; Ubound(iLevelPos(),1) Then
- ReDim Preserve iLevelPos(iCurLevel,9) as Long
- End If
-End Sub
-
-
-Sub CheckPageWidth(TextWidth as Long)
-Dim PageWidth as Long
-Dim BaseX as Long
- PageWidth = oPage.Width
- BaseX = iLevelPos(iCurLevel,SBBASEX)
- If BaseX + TextWidth &gt; PageWidth - 1000 Then
- oPage.Width = 1000 + BaseX + TextWidth
- End If
-End Sub
-
-
-Sub ToggleDialogControls(bDoEnable as Boolean)
- With DlgReadDir.Model
- .cmdGoOn.Enabled = bDoEnable
- .cmdGetDir.Enabled = bDoEnable
- .Label1.Enabled = bDoEnable
- .Label2.Enabled = bDoEnable
- .TextField1.Enabled = bDoEnable
- End With
-End Sub</script:module> \ No newline at end of file