1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3*b1cdbd2cSJim Jagielski<!--***********************************************************
4*b1cdbd2cSJim Jagielski *
5*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
6*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
7*b1cdbd2cSJim Jagielski * distributed with this work for additional information
8*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
9*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
10*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
11*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
14*b1cdbd2cSJim Jagielski *
15*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
16*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
17*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
19*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
20*b1cdbd2cSJim Jagielski * under the License.
21*b1cdbd2cSJim Jagielski *
22*b1cdbd2cSJim Jagielski ***********************************************************-->
23*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="tools" script:language="StarBasic">REM  *****  BASIC  *****
24*b1cdbd2cSJim JagielskiOption Explicit
25*b1cdbd2cSJim JagielskiPublic Const SBMAXTEXTSIZE = 50
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim JagielskiFunction SetProgressValue(iValue as Integer)
29*b1cdbd2cSJim Jagielski	If iValue = 0 Then
30*b1cdbd2cSJim Jagielski		oProgressbar.End
31*b1cdbd2cSJim Jagielski	End If
32*b1cdbd2cSJim Jagielski	ProgressValue = iValue
33*b1cdbd2cSJim Jagielski	oProgressbar.Value = iValue
34*b1cdbd2cSJim JagielskiEnd Function
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim JagielskiFunction GetPreferredWidth(oModel as Object, bGetMaxWidth as Boolean, Optional LocText)
38*b1cdbd2cSJim JagielskiDim aPeerSize as new com.sun.star.awt.Size
39*b1cdbd2cSJim JagielskiDim nWidth as Integer
40*b1cdbd2cSJim JagielskiDim oControl as Object
41*b1cdbd2cSJim Jagielski	If Not IsMissing(LocText) Then
42*b1cdbd2cSJim Jagielski		&apos; Label
43*b1cdbd2cSJim Jagielski		aPeerSize = GetPeerSize(oModel, oControl, LocText)
44*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cImageControl Then
45*b1cdbd2cSJim Jagielski		GetPreferredWidth() = 2000
46*b1cdbd2cSJim Jagielski		Exit Function
47*b1cdbd2cSJim Jagielski	Else
48*b1cdbd2cSJim Jagielski		aPeerSize = GetPeerSize(oModel, oControl)
49*b1cdbd2cSJim Jagielski	End If
50*b1cdbd2cSJim Jagielski	nWidth = aPeerSize.Width
51*b1cdbd2cSJim Jagielski	&apos; We increase the preferred Width a bit so that the control does not become too small
52*b1cdbd2cSJim Jagielski	&apos; when we change the border from &quot;3D&quot; to &quot;Flat&quot;
53*b1cdbd2cSJim Jagielski	GetPreferredWidth = (nWidth + 10) * XPixelFactor	&apos; PixelTo100thmm(nWidth)
54*b1cdbd2cSJim JagielskiEnd Function
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim JagielskiFunction GetPreferredHeight(oModel as Object, Optional LocText)
58*b1cdbd2cSJim JagielskiDim aPeerSize as new com.sun.star.awt.Size
59*b1cdbd2cSJim JagielskiDim nHeight as Integer
60*b1cdbd2cSJim JagielskiDim oControl as Object
61*b1cdbd2cSJim Jagielski	If Not IsMissing(LocText) Then
62*b1cdbd2cSJim Jagielski		&apos; Label
63*b1cdbd2cSJim Jagielski		aPeerSize = GetPeerSize(oModel, oControl, LocText)
64*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cImageControl Then
65*b1cdbd2cSJim Jagielski		GetPreferredHeight() = 2000
66*b1cdbd2cSJim Jagielski		Exit Function
67*b1cdbd2cSJim Jagielski	Else
68*b1cdbd2cSJim Jagielski		aPeerSize = GetPeerSize(oModel, oControl)
69*b1cdbd2cSJim Jagielski	End If
70*b1cdbd2cSJim Jagielski	nHeight = aPeerSize.Height
71*b1cdbd2cSJim Jagielski	&apos; We increase the preferred Height a bit so that the control does not become too small
72*b1cdbd2cSJim Jagielski	&apos; when we change the border from &quot;3D&quot; to &quot;Flat&quot;
73*b1cdbd2cSJim Jagielski	GetPreferredHeight = (nHeight+1) * YPixelFactor 	&apos; PixelTo100thmm(nHeight)
74*b1cdbd2cSJim JagielskiEnd Function
75*b1cdbd2cSJim Jagielski
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim JagielskiFunction GetPeerSize(oModel as Object, oControl as Object, Optional LocText)
78*b1cdbd2cSJim JagielskiDim oPeer as Object
79*b1cdbd2cSJim JagielskiDim aPeerSize as new com.sun.star.awt.Size
80*b1cdbd2cSJim JagielskiDim NullValue
81*b1cdbd2cSJim Jagielski	oControl = oController.GetControl(oModel)
82*b1cdbd2cSJim Jagielski	oPeer = oControl.GetPeer()
83*b1cdbd2cSJim Jagielski	If oControl.Model.PropertySetInfo.HasPropertybyName(&quot;EffectiveMax&quot;) Then
84*b1cdbd2cSJim Jagielski		If oControl.Model.EffectiveMax = 0 Then
85*b1cdbd2cSJim Jagielski			&apos; This is relevant for decimal fields
86*b1cdbd2cSJim Jagielski			oControl.Model.EffectiveValue = 999.9999
87*b1cdbd2cSJim Jagielski		Else
88*b1cdbd2cSJim Jagielski			oControl.Model.EffectiveValue = oControl.Model.EffectiveMax
89*b1cdbd2cSJim Jagielski		End If
90*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
91*b1cdbd2cSJim Jagielski		oControl.Model.EffectiveValue = NullValue
92*b1cdbd2cSJim Jagielski	ElseIf Not IsMissing(LocText) Then
93*b1cdbd2cSJim Jagielski		oControl.Text = LocText
94*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
95*b1cdbd2cSJim Jagielski	ElseIf CurFieldType = com.sun.star.sdbc.DataType.BIT Then
96*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
97*b1cdbd2cSJim Jagielski	ElseIf CurFieldType = com.sun.star.sdbc.DataType.BOOLEAN Then
98*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
99*b1cdbd2cSJim Jagielski	ElseIf CurFieldType = com.sun.star.sdbc.DataType.DATE Then
100*b1cdbd2cSJim Jagielski		oControl.Model.Date = Date
101*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
102*b1cdbd2cSJim Jagielski		oControl.Model.Date = NullValue
103*b1cdbd2cSJim Jagielski	ElseIf CurFieldType = com.sun.star.sdbc.DataType.TIME Then
104*b1cdbd2cSJim Jagielski		oControl.Time = Time
105*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
106*b1cdbd2cSJim Jagielski		oControl.Time = NullValue
107*b1cdbd2cSJim Jagielski	Else
108*b1cdbd2cSJim Jagielski		If oControl.MaxTextLen &gt; SBMAXTEXTSIZE Then
109*b1cdbd2cSJim Jagielski			oControl.Text = Mid(SBSIZETEXT,1, SBMAXTEXTSIZE)
110*b1cdbd2cSJim Jagielski		Else
111*b1cdbd2cSJim Jagielski			oControl.Text = Mid(SBSIZETEXT,1, oControl.MaxTextLen)
112*b1cdbd2cSJim Jagielski		End If
113*b1cdbd2cSJim Jagielski		GetPeerSize() = oPeer.PreferredSize()
114*b1cdbd2cSJim Jagielski		oControl.Text = &quot;&quot;
115*b1cdbd2cSJim Jagielski	End If
116*b1cdbd2cSJim JagielskiEnd Function
117*b1cdbd2cSJim Jagielski
118*b1cdbd2cSJim Jagielski
119*b1cdbd2cSJim JagielskiFunction TwipToCM(BYVAL nValue as long) as String
120*b1cdbd2cSJim Jagielski	TwipToCM = trim(str(nValue / 567)) + &quot;cm&quot;
121*b1cdbd2cSJim JagielskiEnd function
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim JagielskiFunction TwipTo100telMM(BYVAL nValue as long) as long
125*b1cdbd2cSJim Jagielski	 TwipTo100telMM = nValue / 0.567
126*b1cdbd2cSJim JagielskiEnd function
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim JagielskiFunction TwipToPixel(BYVAL nValue as long) as long &apos; not an exact calculation
130*b1cdbd2cSJim Jagielski	TwipToPixel = nValue / 15
131*b1cdbd2cSJim JagielskiEnd function
132*b1cdbd2cSJim Jagielski
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim JagielskiFunction PixelTo100thMMX(oControl as Object) as long
135*b1cdbd2cSJim Jagielski	oPeer = oControl.GetPeer()
136*b1cdbd2cSJim Jagielski	PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterX/100000)
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim Jagielski&apos;	 PixelTo100thMM = nValue * 28					&apos; not an exact calculation
139*b1cdbd2cSJim JagielskiEnd function
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim JagielskiFunction PixelTo100thMMY(oControl as Object) as long
143*b1cdbd2cSJim Jagielski	oPeer = oControl.GetPeer()
144*b1cdbd2cSJim Jagielski	PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterY/100000)
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski&apos;	 PixelTo100thMM = nValue * 28					&apos; not an exact calculation
147*b1cdbd2cSJim JagielskiEnd function
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielski
150*b1cdbd2cSJim JagielskiFunction GetPoint(xPos, YPos) as New com.sun.star.awt.Point
151*b1cdbd2cSJim JagielskiDim aPoint as New com.sun.star.awt.Point
152*b1cdbd2cSJim Jagielski	aPoint.X = xPos
153*b1cdbd2cSJim Jagielski	aPoint.Y = yPos
154*b1cdbd2cSJim Jagielski	GetPoint() = aPoint
155*b1cdbd2cSJim JagielskiEnd Function
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim JagielskiFunction GetSize(iWidth, iHeight) As New com.sun.star.awt.Size
159*b1cdbd2cSJim JagielskiDim aSize As New com.sun.star.awt.Size
160*b1cdbd2cSJim Jagielski	aSize.Width = iWidth
161*b1cdbd2cSJim Jagielski	aSize.Height = iHeight
162*b1cdbd2cSJim Jagielski	GetSize() = aSize
163*b1cdbd2cSJim JagielskiEnd Function
164*b1cdbd2cSJim Jagielski
165*b1cdbd2cSJim Jagielski
166*b1cdbd2cSJim JagielskiSub	ImportStyles()
167*b1cdbd2cSJim JagielskiDim OldIndex as Integer
168*b1cdbd2cSJim Jagielski	If Not bDebug Then
169*b1cdbd2cSJim Jagielski		On Local Error GoTo WIZARDERROR
170*b1cdbd2cSJim Jagielski	End If
171*b1cdbd2cSJim Jagielski	OldIndex = CurIndex
172*b1cdbd2cSJim Jagielski	CurIndex = GetCurIndex(DialogModel.lstStyles, Styles(),8)
173*b1cdbd2cSJim Jagielski	If CurIndex &lt;&gt; OldIndex Then
174*b1cdbd2cSJim Jagielski		ToggleLayoutPage(False)
175*b1cdbd2cSJim Jagielski		Dim sImportPath as String
176*b1cdbd2cSJim Jagielski		sImportPath = Styles(CurIndex, 8)
177*b1cdbd2cSJim Jagielski		bWithBackGraphic = LoadNewStyles(oDocument, DialogModel, CurIndex, sImportPath, Styles(), TexturePath)
178*b1cdbd2cSJim Jagielski		ControlCaptionsToStandardLayout()
179*b1cdbd2cSJim Jagielski		ToggleLayoutPage(True, &quot;lstStyles&quot;)
180*b1cdbd2cSJim Jagielski	End If
181*b1cdbd2cSJim JagielskiWIZARDERROR:
182*b1cdbd2cSJim Jagielski	If Err &lt;&gt; 0 Then
183*b1cdbd2cSJim Jagielski		Msgbox(sMsgErrMsg, 16, GetProductName())
184*b1cdbd2cSJim Jagielski		Resume LOCERROR
185*b1cdbd2cSJim Jagielski		LOCERROR:
186*b1cdbd2cSJim Jagielski	End If
187*b1cdbd2cSJim JagielskiEnd Sub
188*b1cdbd2cSJim Jagielski
189*b1cdbd2cSJim Jagielski
190*b1cdbd2cSJim Jagielski
191*b1cdbd2cSJim JagielskiFunction SetNumerics(ByVal oLocObject as Object, iLocFieldType as Integer) as Object
192*b1cdbd2cSJim Jagielski	If CurControlType = cNumericBox Then
193*b1cdbd2cSJim Jagielski		oLocObject.TreatAsNumber = True
194*b1cdbd2cSJim Jagielski		Select Case iLocFieldType
195*b1cdbd2cSJim Jagielski			Case com.sun.star.sdbc.DataType.BIGINT
196*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMax = 2147483647 * 2147483647
197*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMin = -(-2147483648 * -2147483648)
198*b1cdbd2cSJim Jagielski&apos;				oLocObject.DecimalAccuracy = 0
199*b1cdbd2cSJim Jagielski			Case com.sun.star.sdbc.DataType.INTEGER
200*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMax = 2147483647
201*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMin = -2147483648
202*b1cdbd2cSJim Jagielski			Case com.sun.star.sdbc.DataType.SMALLINT
203*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMax = 32767
204*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMin = -32768
205*b1cdbd2cSJim Jagielski			Case com.sun.star.sdbc.DataType.TINYINT
206*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMax = 127
207*b1cdbd2cSJim Jagielski				oLocObject.EffectiveMin = -128
208*b1cdbd2cSJim Jagielski			Case com.sun.star.sdbc.DataType.FLOAT, com.sun.star.sdbc.DataType.REAL, com.sun.star.sdbc.DataType.DOUBLE, com.sun.star.sdbc.DataType.DECIMAL, com.sun.star.sdbc.DataType.NUMERIC
209*b1cdbd2cSJim Jagielski&apos;Todo:			oLocObject.DecimalAccuracy = ...
210*b1cdbd2cSJim Jagielski	 			oLocObject.EffectiveDefault = CurDefaultValue
211*b1cdbd2cSJim Jagielski&apos; Todo: HelpText???
212*b1cdbd2cSJim Jagielski		End Select
213*b1cdbd2cSJim Jagielski		If oLocObject.PropertySetinfo.HasPropertyByName(&quot;Width&quot;)Then &apos; Note: an Access AutoincrementField does not provide this property Width
214*b1cdbd2cSJim Jagielski			oLocObject.Width = CurFieldLength + CurScale + 1
215*b1cdbd2cSJim Jagielski		End If
216*b1cdbd2cSJim Jagielski		If CurIsCurrency Then
217*b1cdbd2cSJim Jagielski&apos;Todo: How do you set currencies?
218*b1cdbd2cSJim Jagielski		End If
219*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cTextBox Then	&apos;com.sun.star.sdbc.DataType.CHAR, com.sun.star.sdbc.DataType.VARCHAR, com.sun.star.sdbc.DataType.LONGVARCHAR
220*b1cdbd2cSJim Jagielski		If CurFieldLength = 0 Then			 &apos;Or oLocObject.MaxTextLen &gt; SBMAXTEXTSIZE
221*b1cdbd2cSJim Jagielski			oLocObject.MaxTextLen = SBMAXTEXTSIZE
222*b1cdbd2cSJim Jagielski			CurFieldLength = SBMAXTEXTSIZE
223*b1cdbd2cSJim Jagielski		Else
224*b1cdbd2cSJim Jagielski			oLocObject.MaxTextLen = CurFieldLength
225*b1cdbd2cSJim Jagielski		End If
226*b1cdbd2cSJim Jagielski		oLocObject.DefaultText = CurDefaultValue
227*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cDateBox Then
228*b1cdbd2cSJim Jagielski&apos; Todo Why does this not work?:		oLocObject.DefaultDate = CurDefaultValue
229*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cTimeBox Then	&apos; com.sun.star.sdbc.DataType.DATE, com.sun.star.sdbc.DataType.TIME
230*b1cdbd2cSJim Jagielski		oLocObject.DefaultTime = CurDefaultValue
231*b1cdbd2cSJim Jagielski&apos; Todo: Property TimeFormat? frome where?
232*b1cdbd2cSJim Jagielski	ElseIf CurControlType = cCheckBox Then
233*b1cdbd2cSJim Jagielski&apos; Todo Why does this not work?:		oLocObject.DefautState = CurDefaultValue
234*b1cdbd2cSJim Jagielski	End If
235*b1cdbd2cSJim Jagielski	If oLocObject.PropertySetInfo.HasPropertybyName(&quot;FormatKey&quot;) Then
236*b1cdbd2cSJim Jagielski		On Local Error Resume Next
237*b1cdbd2cSJim Jagielski		oLocObject.FormatKey = CurFormatKey
238*b1cdbd2cSJim Jagielski	End If
239*b1cdbd2cSJim JagielskiEnd Function
240*b1cdbd2cSJim Jagielski
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski&apos; Destroy all Shapes in Nirwana
243*b1cdbd2cSJim JagielskiSub RemoveShapes()
244*b1cdbd2cSJim JagielskiDim n as Integer
245*b1cdbd2cSJim JagielskiDim oControl as Object
246*b1cdbd2cSJim JagielskiDim oShape as Object
247*b1cdbd2cSJim Jagielski	For n = oDrawPage.Count-1 To 0 Step -1
248*b1cdbd2cSJim Jagielski		oShape = oDrawPage(n)
249*b1cdbd2cSJim Jagielski		If oShape.Position.Y &gt; -2000 Then
250*b1cdbd2cSJim Jagielski			oDrawPage.Remove(oShape)
251*b1cdbd2cSJim Jagielski		End If
252*b1cdbd2cSJim Jagielski	Next n
253*b1cdbd2cSJim JagielskiEnd Sub
254*b1cdbd2cSJim Jagielski
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski&apos; Destroy all Shapes in Nirwana
257*b1cdbd2cSJim JagielskiSub RemoveNirwanaShapes()
258*b1cdbd2cSJim JagielskiDim n as Integer
259*b1cdbd2cSJim JagielskiDim oControl as Object
260*b1cdbd2cSJim JagielskiDim oShape as Object
261*b1cdbd2cSJim Jagielski	For n = oDrawPage.Count-1 To 0 Step -1
262*b1cdbd2cSJim Jagielski		oShape = oDrawPage(n)
263*b1cdbd2cSJim Jagielski		If oShape.Position.Y &lt; -2000 Then
264*b1cdbd2cSJim Jagielski			oDrawPage.Remove(oShape)
265*b1cdbd2cSJim Jagielski		End If
266*b1cdbd2cSJim Jagielski	Next n
267*b1cdbd2cSJim JagielskiEnd Sub
268*b1cdbd2cSJim Jagielski
269*b1cdbd2cSJim Jagielski
270*b1cdbd2cSJim Jagielski
271*b1cdbd2cSJim Jagielski&apos; Note: as Shapes cannot be removed from the DrawPage without destroying
272*b1cdbd2cSJim Jagielski&apos; the object we have to park them somewhere beyond the visible area of the page
273*b1cdbd2cSJim JagielskiSub ShapesToNirwana()
274*b1cdbd2cSJim JagielskiDim n as Integer
275*b1cdbd2cSJim JagielskiDim oControl as Object
276*b1cdbd2cSJim Jagielski	For n = 0 To oDrawPage.Count-1
277*b1cdbd2cSJim Jagielski		oDrawPage(n).Position = GetPoint(-20, -10000)
278*b1cdbd2cSJim Jagielski	Next n
279*b1cdbd2cSJim JagielskiEnd Sub
280*b1cdbd2cSJim Jagielski
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim JagielskiFunction CalcUniqueContentName(BYVAL oContainer as Object, sBaseName as String) as String
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim JagielskiDim nPostfix as Integer
285*b1cdbd2cSJim JagielskiDim sReturn as String
286*b1cdbd2cSJim Jagielski	nPostfix = 2
287*b1cdbd2cSJim Jagielski	sReturn = sBaseName
288*b1cdbd2cSJim Jagielski	while (oContainer.hasByName(sReturn))
289*b1cdbd2cSJim Jagielski		sReturn = sBaseName &amp; nPostfix
290*b1cdbd2cSJim Jagielski		nPostfix = nPostfix + 1
291*b1cdbd2cSJim Jagielski	Wend
292*b1cdbd2cSJim Jagielski	CalcUniqueContentName = sReturn
293*b1cdbd2cSJim JagielskiEnd Function
294*b1cdbd2cSJim Jagielski
295*b1cdbd2cSJim Jagielski
296*b1cdbd2cSJim JagielskiFunction CountItemsInArray(BigArray(), SearchItem)
297*b1cdbd2cSJim JagielskiDim i as Integer
298*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
299*b1cdbd2cSJim JagielskiDim ResCount as Integer
300*b1cdbd2cSJim Jagielski	ResCount = 0
301*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(BigArray())
302*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
303*b1cdbd2cSJim Jagielski		If SearchItem = BigArray(i) Then
304*b1cdbd2cSJim Jagielski			ResCount = ResCount + 1
305*b1cdbd2cSJim Jagielski		End If
306*b1cdbd2cSJim Jagielski	Next i
307*b1cdbd2cSJim Jagielski	CountItemsInArray() = ResCount
308*b1cdbd2cSJim JagielskiEnd Function
309*b1cdbd2cSJim Jagielski
310*b1cdbd2cSJim Jagielski
311*b1cdbd2cSJim JagielskiFunction GetDBHeight(oDBModel as Object)
312*b1cdbd2cSJim Jagielski	If CurControlType = cImageControl Then
313*b1cdbd2cSJim Jagielski		nDBHeight = 2000
314*b1cdbd2cSJim Jagielski	Else
315*b1cdbd2cSJim Jagielski		If CurFieldType = com.sun.star.sdbc.DataType.LONGVARCHAR Then
316*b1cdbd2cSJim Jagielski			oDBModel.MultiLine = True
317*b1cdbd2cSJim Jagielski			nDBHeight = nDBRefHeight * 4
318*b1cdbd2cSJim Jagielski		Else
319*b1cdbd2cSJim Jagielski			nDBHeight = nDBRefHeight
320*b1cdbd2cSJim Jagielski		End If
321*b1cdbd2cSJim Jagielski	End If
322*b1cdbd2cSJim Jagielski	GetDBHeight() = nDBHeight
323*b1cdbd2cSJim JagielskiEnd Function
324*b1cdbd2cSJim Jagielski
325*b1cdbd2cSJim Jagielski
326*b1cdbd2cSJim JagielskiFunction GetFormWizardPaths() as Boolean
327*b1cdbd2cSJim Jagielski	FormPath = GetOfficeSubPath(&quot;Template&quot;,&quot;../wizard/bitmap&quot;)
328*b1cdbd2cSJim Jagielski	If FormPath &lt;&gt; &quot;&quot; Then
329*b1cdbd2cSJim Jagielski		WebWizardPath = GetOfficeSubPath(&quot;Template&quot;,&quot;wizard/web&quot;)
330*b1cdbd2cSJim Jagielski		If WebWizardPath &lt;&gt; &quot;&quot; Then
331*b1cdbd2cSJim Jagielski			WizardPath = GetOfficeSubPath(&quot;Template&quot;,&quot;wizard/&quot;)
332*b1cdbd2cSJim Jagielski			If Wizardpath &lt;&gt; &quot;&quot; Then
333*b1cdbd2cSJim Jagielski				TexturePath = GetOfficeSubPath(&quot;Gallery&quot;, &quot;www-back/&quot;)
334*b1cdbd2cSJim Jagielski				If TexturePath &lt;&gt; &quot;&quot; Then
335*b1cdbd2cSJim Jagielski					WorkPath = GetPathSettings(&quot;Work&quot;)
336*b1cdbd2cSJim Jagielski					If WorkPath &lt;&gt; &quot;&quot; Then
337*b1cdbd2cSJim Jagielski						TempPath = GetPathSettings(&quot;Temp&quot;)
338*b1cdbd2cSJim Jagielski						If TempPath &lt;&gt; &quot;&quot; Then
339*b1cdbd2cSJim Jagielski							GetFormWizardPaths = True
340*b1cdbd2cSJim Jagielski							Exit Function
341*b1cdbd2cSJim Jagielski						End If
342*b1cdbd2cSJim Jagielski					End If
343*b1cdbd2cSJim Jagielski				End If
344*b1cdbd2cSJim Jagielski			End If
345*b1cdbd2cSJim Jagielski		End If
346*b1cdbd2cSJim Jagielski	End  If
347*b1cdbd2cSJim Jagielski	DisposeDocument(oDocument)
348*b1cdbd2cSJim Jagielski	GetFormWizardPaths() = False
349*b1cdbd2cSJim JagielskiEnd Function
350*b1cdbd2cSJim Jagielski
351*b1cdbd2cSJim Jagielski
352*b1cdbd2cSJim JagielskiFunction GetFilterName(sApplicationKey as String) as String
353*b1cdbd2cSJim JagielskiDim oArgs()
354*b1cdbd2cSJim JagielskiDim oFactory
355*b1cdbd2cSJim JagielskiDim i as Integer
356*b1cdbd2cSJim JagielskiDim Maxindex as Integer
357*b1cdbd2cSJim JagielskiDim UIName as String
358*b1cdbd2cSJim Jagielski	oFactory  = createUnoService(&quot;com.sun.star.document.FilterFactory&quot;)
359*b1cdbd2cSJim Jagielski	oArgs() = oFactory.getByName(sApplicationKey)
360*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(oArgs())
361*b1cdbd2cSJim Jagielski	For i = 0 to MaxIndex
362*b1cdbd2cSJim Jagielski		If (oArgs(i).Name=&quot;UIName&quot;) Then
363*b1cdbd2cSJim Jagielski		    UIName = oArgs(i).Value
364*b1cdbd2cSJim Jagielski		    Exit For
365*b1cdbd2cSJim Jagielski	  	End If
366*b1cdbd2cSJim Jagielski	next i
367*b1cdbd2cSJim Jagielski	GetFilterName() = UIName
368*b1cdbd2cSJim JagielskiEnd Function
369*b1cdbd2cSJim Jagielski</script:module>
370