diff options
Diffstat (limited to 'wizards/source/formwizard/develop.xba')
-rw-r--r-- | wizards/source/formwizard/develop.xba | 533 |
1 files changed, 0 insertions, 533 deletions
diff --git a/wizards/source/formwizard/develop.xba b/wizards/source/formwizard/develop.xba deleted file mode 100644 index a12d1af37..000000000 --- a/wizards/source/formwizard/develop.xba +++ /dev/null @@ -1,533 +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="develop" script:language="StarBasic">REM ***** BASIC ***** -Option Explicit - -Public oDBShapeList() as Object -Public oTCShapeList() as Object -Public oDBModelList() as Object -Public oGroupShapeList() as Object - -Public oGridShape as Object -Public a as Integer -Public StartA as Integer -Public bIsFirstRun as Boolean -Public bIsVeryFirstRun as Boolean -Public bControlsareCreated as Boolean -Public nDBRefHeight as Long -Public nXTCPos&, nYTCPos&, nXDBPos&, nYDBPos&, nTCHeight&, nTCWidth&, nDBHeight&, nDBWidth& - -Dim iReduceWidth as Integer - -Function PositionControls(Maxindex as Integer) -Dim oTCModel as Object -Dim oDBModel as Object -Dim i as Integer - InitializePosSizes() - bIsFirstRun = True - bIsVeryFirstRun = True - a = 0 - StartA = 0 - nMaxRowY = 0 - nSecMaxRowY = 0 - If CurArrangement = cLeftJustified Or cTopJustified Then - DialogModel.optAlign0.State = 1 - End If - For i = 0 To MaxIndex - GetCurrentMetaValues(i) - oTCModel = InsertTextControl(i) - If CurFieldType = com.sun.star.sdbc.DataType.TIMESTAMP Then - InsertTimeStampShape(i) - Else - InsertDBControl(i) - bIsVeryFirstRun = False - oDBModelList(i).LabelControl = oTCModel - End If - GetLabelDiffHeight(i+1) - ResetPosSizes(i) - oProgressbar.Value = i - Next i - ControlCaptionstoStandardLayout() - bControlsareCreated = True -End Function - - -Sub ResetPosSizes(LastIndex as Integer) - Select Case CurArrangement - Case cColumnarLeft - nYDBPos = nYDBPos + nDBHeight + cVertDistance - If (nYDBPos > cYOffset + nFormHeight) Or (LastIndex = MaxIndex) Then - RepositionColumnarLeftControls(LastIndex) - nXTCPos = nMaxColRightX + 2 * cHoriDistance - nXDBPos = nXTCPos + cHoriDistance + nMaxTCWidth - nYDBPos = cYOffset - bIsFirstRun = True - StartA = LastIndex + 1 - a = 0 - Else - a = a + 1 - End If - nYTCPos = nYDBPos + LABELDIFFHEIGHT - Case cColumnarTop - nYTCPos = nYDBPos + nDBHeight + cVertDistance - If nYTCPos > cYOffset + nFormHeight Then - nXDBPos = nMaxColRightX + cHoriDistance - nXTCPos = nXDBPos - nYDBPos = cYOffset + nTCHeight + cVertDistance - nYTCPos = cYOffset - bIsFirstRun = True - StartA = LastIndex + 1 - a = 0 - Else - a = a + 1 - End If - Case cLeftJustified,cTopJustified - If nMaxColRightX > cXOffset + nFormWidth Then - Dim nOldYTCPos as Long - nOldYTCPos = nYTCPos - CheckJustifiedPosition() - Else - nXTCPos = nMaxColRightX + CHoriDistance - If CurArrangement = cLeftJustified Then - nYTCPos = nYDBPos + LabelDiffHeight - End If - End If - a = a + 1 - End Select -End Sub - - -Sub RepositionColumnarLeftControls(LastIndex as Integer) -Dim aSize As New com.sun.star.awt.Size -Dim aPoint As New com.sun.star.awt.Point -Dim i as Integer - aSize = GetSize(nMaxTCWidth, nTCHeight) - bIsFirstRun = True - For i = StartA To LastIndex - If i = StartA Then - nXTCPos = oTCShapeList(i).Position.X - nXDBPos = nXTCPos + nMaxTCWidth + cHoriDistance - End If - ResetDBShape(oDBShapeList(i), nXDBPos) - CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True) - Next i -End Sub - - -Sub ResetDBShape(oLocDBShape as Object, iXPos as Long) -Dim aSize As New com.sun.star.awt.Size -Dim aPoint As New com.sun.star.awt.Point - nYDBPos = oLocDBShape.Position.Y - nDBWidth = oLocDBShape.Size.Width - nDBHeight = oLocDBShape.Size.Height - aPoint = GetPoint(iXPos,nYDBPos) - oLocDBShape.SetPosition(aPoint) -End Sub - - -Sub InitializePosSizes() - nXTCPos = cXOffset - nTCWidth = 2000 - nDBWidth = 2000 - nDBHeight = nDBRefHeight - iReduceWidth = 0 - Select Case CurArrangement - Case cColumnarLeft, cLeftJustified - GetLabelDiffHeight(0) - nYTCPos = cYOffset + LABELDIFFHEIGHT - nXDBPos = cXOffset + 3050 - nYDBPos = cYOffset - Case cColumnarTop, cTopJustified - nXDBPos = cXOffset - nYTCPos = cYOffset - End Select -End Sub - - -Function InsertTextControl(i as Integer) as Object -Dim oShape as Object -Dim oModel as Object -Dim aPoint as New com.sun.star.awt.Point -Dim aSize As New com.sun.star.awt.Size - If bControlsareCreated Then - Set oShape = oTCShapeList(i) - Set oModel = oShape.GetControl - If CurArrangement = cLeftJustified Then - nTCWidth = GetPreferredWidth(oModel, True, CurFieldname) - Else - nTCWidth = oShape.Size.Width - End If - oShape.Position = GetPoint(nXTCPos, nYTCPos) - If CurArrangement = cColumnarTop Then - oModel.Align = com.sun.star.awt.TextAlign.LEFT - End If - Else - oModel = CreateUnoService(oModelService(cLabel)) - aPoint = GetPoint(nXTCPos, nYTCPos) - aSize = GetSize(nTCWidth,nTCHeight) - Set oShape = InsertControl(oDrawPage, oModel, aPoint, aSize) - Set oTCShapeList(i)= oShape - If bIsVeryFirstRun Then - If CurArrangement = cColumnarTop Then - nYDBPos = nYTCPos + nTCHeight - End If - End If - nTCWidth = GetPreferredWidth(oModel, True, CurFieldName) - End If - If CurArrangement = cColumnarLeft Then - ' Note This If Sequence must be called before retrieving the outer Points - If bIsFirstRun Then - nMaxTCWidth = nTCWidth - bIsFirstRun = False - ElseIf nTCWidth > nMaxTCWidth Then - nMaxTCWidth = nTCWidth - End If - End If - CheckOuterPoints(oShape.Position.X, nTCWidth, nYTCPos, nTCHeight, False) - Select Case CurArrangement - Case cLeftJustified - nXDBPos = nMaxColRightX - Case cColumnarTop,cTopJustified - oModel.Align = com.sun.star.awt.TextAlign.LEFT - nXDBPos = nXTCPos - nYDBPos = nYTCPos + nTCHeight - If CurFieldLength = 20 And nDBWidth > 2 * nTCWidth Then - iReduceWidth = iReduceWidth + 1 - End If - End Select - oShape.SetSize(GetSize(nTCWidth,nTCHeight)) - If CurHelpText <> "" Then - oModel.HelpText = CurHelptext - End If - InsertTextControl = oModel -End Function - - -Sub InsertDBControl(i as Integer) -Dim aPoint as New com.sun.star.awt.Point -Dim aSize As New com.sun.star.awt.Size -Dim oControl as Object -Dim iColRightX as Long - - aPoint = GetPoint(nXDBPos, nYDBPos) - If bControlsAreCreated Then - oDBShapeList(i).Position = aPoint - Else - oDBModelList(i) = CreateUnoService(oModelService(CurControlType)) - oDBShapeList(i) = InsertControl(oDrawPage, oDBModelList(i), aPoint, aSize) - SetNumerics(oDBModelList(i), CurFieldType) - If CurControlType = cCheckBox Then - oDBModelList(i).Label = "" - End If - oDBModelList(i).DataField = CurFieldName - End If - nDBHeight = GetDBHeight(oDBModelList(i)) - nDBWidth = GetPreferredWidth(oDBModelList(i),True) - aSize = GetSize(nDBWidth,nDBHeight) - oDBShapeList(i).SetSize(aSize) - CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True) -End Sub - - -Function InsertTimeStampShape(i as Integer) as Object -Dim oDateModel as Object -Dim oTimeModel as Object -Dim oDateShape as Object -Dim oTimeShape as Object -Dim oDateTimeShape as Object -Dim aPoint as New com.sun.star.awt.Point -Dim aSize as New com.sun.star.awt.Size -Dim nDateWidth as Long -Dim nTimeWidth as Long -Dim oGroupShape as Object - aPoint = GetPoint(nXDBPos, nYDBPos) - If bControlsAreCreated Then - oDBShapeList(i).Position = aPoint - nDBWidth = oDBShapeList(i).Size.Width - nDBHeight = oDBShapeList(i).Size.Height - Else - oGroupShape = oDocument.CreateInstance("com.sun.star.drawing.GroupShape") - oGroupShape.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH - oDrawPage.Add(oGroupShape) - CurFieldType = com.sun.star.sdbc.DataType.DATE - oDateModel = CreateUnoService("com.sun.star.form.component.DateField") - oDateModel.DataField = CurFieldName - oDateShape = InsertControl(oGroupShape, oDateModel, aPoint, aSize) - SetNumerics(oDateModel, CurFieldType) - nDBHeight = GetDBHeight(oDateModel) - nDateWidth = GetPreferredWidth(oDateModel,True) - aSize = GetSize(nDateWidth,nDBHeight) - oDateShape.SetSize(aSize) - - CurFieldType = com.sun.star.sdbc.DataType.TIME - oTimeModel = CreateUnoService("com.sun.star.form.component.TimeField") - oTimeModel.DataField = CurFieldName - oTimeShape = InsertControl(oGroupShape, oTimeModel, aPoint, aSize) - oTimeShape.Position = GetPoint(nXDBPos + 10 + nDateWidth,nYDBPos) - nTimeWidth = GetPreferredWidth(oTimeModel) - aSize = GetSize(nTimeWidth,nDBHeight) - oTimeShape.SetSize(aSize) - nDBWidth = nDateWidth + nTimeWidth + 10 - oGroupShape.Position = aPoint - oGroupShape.Size = GetSize(nDBWidth, nDBHeight) - Set oDBShapeList(i)= oGroupShape - End If - CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True) - InsertTimeStampShape() = oDBShapeList(i) -End Function - - -' Note: on all Controls except for the checkbox the Label has to be set -' a bit under the DBControl because its Height is also smaller -Sub GetLabelDiffHeight(Index as Integer) - If (CurArrangement = cLeftJustified) Or (CurArrangement = cColumnarLeft) Then - If Index <= Ubound(FieldMetaValues()) Then - If FieldMetaValues(Index,2) = cCheckBox Then - LabelDiffHeight = 0 - Else - LabelDiffHeight = BasicLabelDiffHeight - End If - End If - End If -End Sub - - -Sub CheckJustifiedPosition() -Dim nLeftDist as Long -Dim nRightDist as Long -Dim oLocDBShape as Object -Dim oLocTextShape as Object -Dim nBaseWidth as Long - nBaseWidth = nFormWidth + cXOffset - nLeftDist = nMaxColRightX - nBaseWidth - nRightDist = nBaseWidth - nXTCPos + cHoriDistance - If nLeftDist < 0.5 * nRightDist and iReduceWidth > 2 Then - ' Fieldwidths in the line can be made smaller - AdjustLineWidth(StartA, a, nLeftDist, - 1) - If CurArrangement = cLeftjustified Then - nYDBPos = nMaxRowY + cVertDistance - nYTCPos = nYDBPos + LABELDIFFHEIGHT - nXTCPos = cXOffset - Else - nYTCPos = nMaxRowY + cVertDistance - nYDBPos = nYTCPos + nTCHeight - nXTCPos = cXOffset - nXDBPos = cXOffset - End If - bIsFirstRun = True - StartA = a + 1 - Else - Set oLocDBShape = oDBShapeList(a) - Set oLocTextShape = oTCShapeList(a) - If CurArrangement = cLeftJustified Then - If nYDBPos + nDBHeight = nMaxRowY Then - ' The last Control was the highes in the row - nYDBPos = nSecMaxRowY + cVertDistance - Else - nYDBPos = nMaxRowY + cVertDistance - End If - nYTCPos = nYDBPos + LABELDIFFHEIGHT - nXDBPos = cXOffset + nTCWidth - oLocTextShape.Position = GetPoint(cXOffset, nYTCPos) - oLocDBShape.Position = GetPoint(nXDBPos, nYDBPos) - ' PosSizes for the next two Controls - nXTCPos = oLocDBShape.Position.X + oLocDBShape.Size.Width + cHoriDistance - bIsFirstRun = True - CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True) - nXDBPos = nMaxColRightX + cHoriDistance - Else ' cTopJustified - If nYDBPos + nDBHeight = nMaxRowY Then - ' The last Control was the highest in the row - nYTCPos = nSecMaxRowY + cVertDistance - Else - nYTCPos = nMaxRowY + cVertDistance - End If - nYDBPos = nYTCPOS + nTCHeight - nXDBPos = cXOffset - nXTCPos = cXOffset - oLocTextShape.Position = GetPoint(cXOffset, nYTCPos) - oLocDBShape.Position = GetPoint(cXOffset, nYDBPos) - bIsFirstRun = True - If nDBWidth > nTCWidth Then - CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True) - Else - CheckOuterPoints(nXDBPos, nTCWidth, nYDBPos, nDBHeight, True) - End If - nXTCPos = nMaxColRightX + cHoriDistance - nXDBPos = nXTCPos - End If - AdjustLineWidth(StartA, a-1, nRightDist, 1) - StartA = a - End If - iReduceWidth = 0 -End Sub - - - -Function GetCorrWidth(StartIndex as Integer, EndIndex as Integer, nDist as Long, Widthfactor as Integer) as Integer -Dim ShapeCount as Integer - If WidthFactor > 0 Then - ShapeCount = EndIndex-StartIndex + 1 - Else - ShapeCount = iReduceWidth - End If - GetCorrWidth() = (nDist)/ShapeCount -End Function - - -Sub AdjustLineWidth(StartIndex as Integer, EndIndex as Integer, nDist as Long, Widthfactor as Integer) -Dim i as Integer -Dim oLocDBShape as Object -Dim oLocTCShape as Object -Dim CorrWidth as Integer -Dim bAdjustPos as Boolean -Dim iLocTCPosX as Long -Dim iLocDBPosX as Long - CorrWidth = GetCorrWidth(StartIndex, EndIndex, nDist, Widthfactor) - bAdjustPos = False - iLocTCPosX = cXOffset - For i = StartIndex To EndIndex - Set oLocDBShape = oDBShapeList(i) - Set oLocTCShape = oTCShapeList(i) - If bAdjustPos Then - oLocTCShape.Position = GetPoint(iLocTCPosX, oLocTCShape.Position.Y) - If CurArrangement = cLeftJustified Then - iLocDBPosX = oLocTCShape.Position.X + oLocTCShape.Size.Width - oLocDBShape.Position = GetPoint(iLocDBPosX, oLocDBShape.Position.Y) - Else - oLocDBShape.Position = GetPoint(iLocTCPosX, oLocTCShape.Position.Y + nTCHeight) - End If - Else - bAdjustPos = True - End If - If CDbl(FieldMetaValues(i,1)) > 20 or WidthFactor > 0 Then - If (CurArrangement = cTopJustified) And (oLocTCShape.Size.Width > oLocDBShape.Size.Width) Then - oLocDBShape.Size = GetSize(oLocTCShape.Size.Width + WidthFactor * CorrWidth, oLocDBShape.Size.Height) - Else - oLocDBShape.Size = GetSize(oLocDBShape.Size.Width + WidthFactor * CorrWidth, oLocDBShape.Size.Height) - End If - End If - iLocTCPosX = oLocDBShape.Position.X + oLocDBShape.Size.Width + cHoriDistance - If CurArrangement = cTopJustified Then - If oLocTCShape.Size.Width > oLocDBShape.Size.Width Then - iLocTCPosX = oLocDBShape.Position.X + oLocTCShape.Size.Width + cHoriDistance - End If - End If - Next i -End Sub - - -Sub CheckOuterPoints(nXPos, nWidth, nYPos, nHeight, bIsDBField as Boolean) -Dim nColRightX as Long -Dim nRowY as Long -Dim nOldMaxRowY as Long - If CurArrangement = cLeftJustified Or CurArrangement = cTopJustified Then - If bIsDBField Then - ' Only at DBControls you can measure the Value of nMaxRowY - If bIsFirstRun Then - nMaxRowY = nYPos + nHeight - nSecMaxRowY = nMaxRowY - Else - nRowY = nYPos + nHeight - If nRowY >= nMaxRowY Then - nOldMaxRowY = nMaxRowY - nSecMaxRowY = nOldMaxRowY - nMaxRowY = nRowY - End If - End If - End If - End If - ' Find the outer right point - If bIsFirstRun Then - nMaxColRightX = nXPos + nWidth - bIsFirstRun = False - Else - nColRightX = nXPos + nWidth - If nColRightX > nMaxColRightX Then - nMaxColRightX = nColRightX - End If - End If -End Sub - - -Function PositionGridControl(MaxIndex as Integer) -Dim oControl as Object -Dim n as Integer -Dim oColumn as Object -Dim aPoint as New com.sun.star.awt.Point -Dim aSize as New com.sun.star.awt.Size - If bControlsareCreated Then - ShapesToNirwana() - End If - oGridModel = CreateUnoService(oModelService(cGridControl)) - oGridModel.Name = "Grid1" - aPoint = GetPoint(cXOffset, cYOffset) - aSize = GetSize(nFormWidth, nFormHeight) - oDBForm.InsertByName (oGridModel.Name, oGridModel) - oGridShape = InsertControl(oDrawPage, oGridModel, aPoint, aSize) - For n = 0 to MaxIndex - GetCurrentMetaValues(n) - If CurFieldType = com.sun.star.sdbc.DataType.TIMESTAMP Then - oColumn = SetupGridColumn(oGridModel,"DateField", False, com.sun.star.sdbc.DataType.DATE, CurFieldName & " " & sDateAppendix) - oColumn = SetupGridColumn(oGridModel,"TimeField", False, com.sun.star.sdbc.DataType.TIME, CurFieldName & " " & sTimeAppendix) - Else - If CurControlType = cImageControl Then - oColumn = SetupGridColumn(oGridModel,"TextField", True, CurFieldType, CurFieldName) - Else - oColumn = SetupGridColumn(oGridModel, CurControlName, False, CurFieldType, CurFieldName) - End If - End If - oProgressbar.Value = n - next n -End Function - - -Function SetupGridColumn(oGridModel as Object, ControlName as String, bHidden as Boolean, iLocFieldType as Integer, ColName as String) as Object -Dim oColumn as Object - CurControlName = ControlName - oColumn = oGridModel.CreateColumn(CurControlName) - oColumn.Name = CalcUniqueContentName(oGridModel, CurControlName) - oColumn.Hidden = bHidden - SetNumerics(oColumn, iLocFieldType) - oColumn.DataField = CurFieldName - oColumn.Label = ColName - oColumn.Width = 0 ' Width of column is adjusted to Columname - oGridModel.insertByName(oColumn.Name, oColumn) -End Function - - -Sub ControlCaptionstoStandardLayout() -Dim i as Integer -Dim iBorderType as Integer -Dim oCurModel as Object -Dim oStyle as Object -Dim iStandardColor as Long - If CurArrangement <> cTabled Then - oStyle = oDocument.StyleFamilies.GetByName("ParagraphStyles").GetByName("Standard") - iStandardColor = oStyle.CharColor - For i = 0 To MaxIndex - oCurModel = oTCShapeList(i).GetControl - If i = 0 Then - If oCurModel.TextColor = iStandardColor Then - Exit Sub - End If - End If - oCurModel.TextColor = iStandardColor - Next i - End If -End Sub - - -Sub GroupShapesTogether() -Dim i as Integer - If CurArrangement <> cTabled Then - For i = 0 To MaxIndex - oGroupShapeList(i) = CreateUnoService("com.sun.star.drawing.ShapeCollection") - oGroupShapeList(i).Add(oTCShapeList(i)) - oGroupShapeList(i).Add(oDBShapeList(i)) - oDrawPage.Group(oGroupShapeList(i)) - Next i - Else - RemoveNirwanaShapes() - End If -End Sub</script:module>
\ No newline at end of file |