xref: /aoo4110/main/wizards/source/tools/Listbox.xba (revision b1cdbd2c)
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="Listbox" script:language="StarBasic">Option Explicit
24*b1cdbd2cSJim JagielskiDim OriginalList()
25*b1cdbd2cSJim JagielskiDim oDialogModel as Object
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim JagielskiSub MergeList(SourceListBox() as Object, SecondList() as String)
29*b1cdbd2cSJim JagielskiDim i as Integer
30*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
31*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(SecondList())
32*b1cdbd2cSJim Jagielski	OriginalList() = AddListToList(OriginalList(), SecondList())
33*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
34*b1cdbd2cSJim Jagielski		SourceListbox = AddSingleItemToListbox(SourceListbox, SecondList(i))
35*b1cdbd2cSJim Jagielski	Next i
36*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
37*b1cdbd2cSJim JagielskiEnd Sub
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim JagielskiSub RemoveListItems(SourceListbox as Object, TargetListbox as Object, RemoveList() as String)
41*b1cdbd2cSJim JagielskiDim i as Integer
42*b1cdbd2cSJim JagielskiDim s as Integer
43*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
44*b1cdbd2cSJim JagielskiDim CopyList()
45*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(RemoveList())
46*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
47*b1cdbd2cSJim Jagielski		RemoveListboxItemByName(SourceListbox, RemoveList(i))
48*b1cdbd2cSJim Jagielski		RemoveListboxItemByName(TargetListbox, RemoveList(i))
49*b1cdbd2cSJim Jagielski	Next i
50*b1cdbd2cSJim Jagielski	CopyList() = OriginalList()
51*b1cdbd2cSJim Jagielski	s = 0
52*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(CopyList())
53*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
54*b1cdbd2cSJim Jagielski		If IndexInArray(CopyList(i),RemoveList())= -1 Then
55*b1cdbd2cSJim Jagielski			OriginalList(s) = CopyList(i)
56*b1cdbd2cSJim Jagielski			s = s + 1
57*b1cdbd2cSJim Jagielski		End If
58*b1cdbd2cSJim Jagielski	Next i
59*b1cdbd2cSJim Jagielski	ReDim Preserve OriginalList(s-1)
60*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
61*b1cdbd2cSJim JagielskiEnd Sub
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim Jagielski&apos; Note Boolean Parameter
65*b1cdbd2cSJim JagielskiSub InitializeListboxProcedures(oModel as Object, SourceListbox as Object, TargetListbox as Object)
66*b1cdbd2cSJim JagielskiDim EmptyList()
67*b1cdbd2cSJim Jagielski	Set oDialogModel = oModel
68*b1cdbd2cSJim Jagielski	OriginalList()= SourceListbox.StringItemList()
69*b1cdbd2cSJim Jagielski	TargetListbox.StringItemList() = EmptyList()
70*b1cdbd2cSJim JagielskiEnd Sub
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim JagielskiSub CopyListboxItems(SourceListbox as Object, TargetListbox As Object)
74*b1cdbd2cSJim JagielskiDim NullArray()
75*b1cdbd2cSJim Jagielski	TargetListbox.StringItemList() = OriginalList()
76*b1cdbd2cSJim Jagielski	SourceListbox.StringItemList() = NullArray()
77*b1cdbd2cSJim JagielskiEnd Sub
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim JagielskiSub FormMoveSelected()
81*b1cdbd2cSJim Jagielski	Call MoveSelectedListBox(oDialogModel.lstFields, oDialogModel.lstSelFields)
82*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
83*b1cdbd2cSJim Jagielski	oDialogModel.lstSelFields.Tag = True
84*b1cdbd2cSJim JagielskiEnd Sub
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim JagielskiSub FormMoveAll()
88*b1cdbd2cSJim Jagielski	Call CopyListboxItems(oDialogModel.lstFields, oDialogModel.lstSelFields)
89*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
90*b1cdbd2cSJim Jagielski	oDialogModel.lstSelFields.Tag = True
91*b1cdbd2cSJim JagielskiEnd Sub
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim JagielskiSub FormRemoveSelected()
95*b1cdbd2cSJim Jagielski	Call MoveOrderedSelectedListbox(oDialogModel.lstFields, oDialogModel.lstSelFields, False)
96*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
97*b1cdbd2cSJim Jagielski	oDialogModel.lstSelFields.Tag = True
98*b1cdbd2cSJim JagielskiEnd Sub
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim JagielskiSub FormRemoveAll()
102*b1cdbd2cSJim Jagielski	Call MoveOrderedSelectedListbox(oDialogModel.lstFields, oDialogModel.lstSelFields, True)
103*b1cdbd2cSJim Jagielski	Call FormSetMoveRights()
104*b1cdbd2cSJim Jagielski	oDialogModel.lstSelFields.Tag = 1
105*b1cdbd2cSJim JagielskiEnd Sub
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski
108*b1cdbd2cSJim JagielskiSub MoveSelectedListBox(SourceListbox as Object, TargetListbox as Object)
109*b1cdbd2cSJim JagielskiDim MaxCurTarget as Integer
110*b1cdbd2cSJim JagielskiDim MaxSourceSelected as Integer
111*b1cdbd2cSJim JagielskiDim n as Integer
112*b1cdbd2cSJim JagielskiDim m as Integer
113*b1cdbd2cSJim JagielskiDim CurIndex
114*b1cdbd2cSJim JagielskiDim iOldTargetSelect as Integer
115*b1cdbd2cSJim JagielskiDim iOldSourceSelect as Integer
116*b1cdbd2cSJim Jagielski	MaxCurTarget = Ubound(TargetListbox.StringItemList())
117*b1cdbd2cSJim Jagielski	MaxSourceSelected = Ubound(SourceListbox.SelectedItems())
118*b1cdbd2cSJim Jagielski	Dim TargetList(MaxCurTarget+MaxSourceSelected+1)
119*b1cdbd2cSJim Jagielski	If MaxSourceSelected &gt; -1 Then
120*b1cdbd2cSJim Jagielski		iOldSourceSelect = SourceListbox.SelectedItems(0)
121*b1cdbd2cSJim Jagielski		If Ubound(TargetListbox.SelectedItems()) &gt; -1 Then
122*b1cdbd2cSJim Jagielski			iOldTargetSelect = TargetListbox.SelectedItems(0)
123*b1cdbd2cSJim Jagielski		Else
124*b1cdbd2cSJim Jagielski			iOldTargetSelect = -1
125*b1cdbd2cSJim Jagielski		End If
126*b1cdbd2cSJim Jagielski		For n = 0 To MaxCurTarget
127*b1cdbd2cSJim Jagielski			TargetList(n) = TargetListbox.StringItemList(n)
128*b1cdbd2cSJim Jagielski		Next n
129*b1cdbd2cSJim Jagielski		For m = 0 To MaxSourceSelected
130*b1cdbd2cSJim Jagielski			CurIndex = SourceListbox.SelectedItems(m)
131*b1cdbd2cSJim Jagielski			TargetList(n) = SourceListbox.StringItemList(CurIndex)
132*b1cdbd2cSJim Jagielski			n = n + 1
133*b1cdbd2cSJim Jagielski		Next m
134*b1cdbd2cSJim Jagielski		TargetListBox.StringItemList() = TargetList()
135*b1cdbd2cSJim Jagielski		SourceListbox.StringItemList() = RemoveSelected (SourceListbox)
136*b1cdbd2cSJim Jagielski		SetNewSelection(SourceListbox, iOldSourceSelect)
137*b1cdbd2cSJim Jagielski		SetNewSelection(TargetListbox, iOldTargetSelect)
138*b1cdbd2cSJim Jagielski	End If
139*b1cdbd2cSJim JagielskiEnd Sub
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielski
143*b1cdbd2cSJim JagielskiSub MoveOrderedSelectedListbox(lstSource as Object, lstTarget as Object, bMoveAll as Boolean)
144*b1cdbd2cSJim JagielskiDim NullArray()
145*b1cdbd2cSJim JagielskiDim MaxSelected as Integer
146*b1cdbd2cSJim JagielskiDim MaxSourceIndex as Integer
147*b1cdbd2cSJim JagielskiDim MaxOriginalIndex as Integer
148*b1cdbd2cSJim JagielskiDim MaxNewIndex as Integer
149*b1cdbd2cSJim JagielskiDim n as Integer
150*b1cdbd2cSJim JagielskiDim m as Integer
151*b1cdbd2cSJim JagielskiDim CurIndex as Integer
152*b1cdbd2cSJim JagielskiDim SearchString as String
153*b1cdbd2cSJim JagielskiDim SourceList() as String
154*b1cdbd2cSJim JagielskiDim iOldTargetSelect as Integer
155*b1cdbd2cSJim JagielskiDim iOldSourceSelect as Integer
156*b1cdbd2cSJim Jagielski	If bMoveAll Then
157*b1cdbd2cSJim Jagielski		lstSource.StringItemList() = OriginalList()
158*b1cdbd2cSJim Jagielski		lstTarget.StringItemList() = NullArray()
159*b1cdbd2cSJim Jagielski	Else
160*b1cdbd2cSJim Jagielski		MaxOriginalIndex = Ubound(OriginalList())
161*b1cdbd2cSJim Jagielski		MaxSelected = Ubound(lstTarget.SelectedItems())
162*b1cdbd2cSJim Jagielski		iOldTargetSelect = lstTarget.SelectedItems(0)
163*b1cdbd2cSJim Jagielski		If Ubound(lstSource.SelectedItems()) &gt; -1 Then
164*b1cdbd2cSJim Jagielski			iOldSourceSelect = lstSource.SelectedItems(0)
165*b1cdbd2cSJim Jagielski		End If
166*b1cdbd2cSJim Jagielski		Dim SelList(MaxSelected)
167*b1cdbd2cSJim Jagielski		For n = 0 To MaxSelected
168*b1cdbd2cSJim Jagielski			CurIndex = lstTarget.SelectedItems(n)
169*b1cdbd2cSJim Jagielski			SelList(n) = lstTarget.StringItemList(CurIndex)
170*b1cdbd2cSJim Jagielski		Next n
171*b1cdbd2cSJim Jagielski		SourceList() = lstSource.StringItemList()
172*b1cdbd2cSJim Jagielski		MaxSourceIndex = Ubound(lstSource.StringItemList())
173*b1cdbd2cSJim Jagielski		MaxNewIndex = MaxSelected + MaxSourceIndex + 1
174*b1cdbd2cSJim Jagielski		Dim NewSourceList(MaxNewIndex)
175*b1cdbd2cSJim Jagielski		m = 0
176*b1cdbd2cSJim Jagielski		For n = 0 To MaxOriginalIndex
177*b1cdbd2cSJim Jagielski			SearchString = OriginalList(n)
178*b1cdbd2cSJim Jagielski			If IndexinArray(SearchString, SelList()) &lt;&gt; -1 Then
179*b1cdbd2cSJim Jagielski				NewSourceList(m) =  SearchString
180*b1cdbd2cSJim Jagielski				m = m + 1
181*b1cdbd2cSJim Jagielski			ElseIf IndexinArray(SearchString, SourceList()) &lt;&gt; -1 Then
182*b1cdbd2cSJim Jagielski				NewSourceList(m) =  SearchString
183*b1cdbd2cSJim Jagielski				m = m + 1
184*b1cdbd2cSJim Jagielski			End If
185*b1cdbd2cSJim Jagielski		Next n
186*b1cdbd2cSJim Jagielski		lstSource.StringItemList() = NewSourceList()
187*b1cdbd2cSJim Jagielski		lstTarget.StringItemList() = RemoveSelected(lstTarget)
188*b1cdbd2cSJim Jagielski	End If
189*b1cdbd2cSJim Jagielski	SetNewSelection(lstSource, iOldSourceSelect)
190*b1cdbd2cSJim Jagielski	SetNewSelection(lstTarget, iOldTargetSelect)
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim JagielskiEnd Sub
193*b1cdbd2cSJim Jagielski
194*b1cdbd2cSJim Jagielski
195*b1cdbd2cSJim JagielskiFunction RemoveSelected(oListbox as Object)
196*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
197*b1cdbd2cSJim JagielskiDim MaxSelected as Integer
198*b1cdbd2cSJim JagielskiDim n as Integer
199*b1cdbd2cSJim JagielskiDim m as Integer
200*b1cdbd2cSJim JagielskiDim CurIndex as Integer
201*b1cdbd2cSJim JagielskiDim CurItem as String
202*b1cdbd2cSJim JagielskiDim ResultArray()
203*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(oListbox.StringItemList())
204*b1cdbd2cSJim Jagielski	MaxSelected = Ubound(oListbox.SelectedItems())
205*b1cdbd2cSJim Jagielski	Dim LocItemList(MaxIndex)
206*b1cdbd2cSJim Jagielski	LocItemList() = oListbox.StringItemList()
207*b1cdbd2cSJim Jagielski	If MaxSelected &gt; -1 Then
208*b1cdbd2cSJim Jagielski		For n = 0 To MaxSelected
209*b1cdbd2cSJim Jagielski			CurIndex = oListbox.SelectedItems(n)
210*b1cdbd2cSJim Jagielski			LocItemList(CurIndex) = &quot;&quot;
211*b1cdbd2cSJim Jagielski		Next n
212*b1cdbd2cSJim Jagielski		If MaxIndex &gt; 0 Then
213*b1cdbd2cSJim Jagielski			ReDim ResultArray(MaxIndex - MaxSelected - 1)
214*b1cdbd2cSJim Jagielski			m = 0
215*b1cdbd2cSJim Jagielski			For n = 0 To MaxIndex
216*b1cdbd2cSJim Jagielski				CurItem = LocItemList(n)
217*b1cdbd2cSJim Jagielski				If CurItem &lt;&gt; &quot;&quot; Then
218*b1cdbd2cSJim Jagielski					ResultArray(m) = CurItem
219*b1cdbd2cSJim Jagielski					m = m + 1
220*b1cdbd2cSJim Jagielski				End If
221*b1cdbd2cSJim Jagielski			Next n
222*b1cdbd2cSJim Jagielski		End If
223*b1cdbd2cSJim Jagielski		RemoveSelected = ResultArray()
224*b1cdbd2cSJim Jagielski	Else
225*b1cdbd2cSJim Jagielski		RemoveSelected = oListbox.StringItemList()
226*b1cdbd2cSJim Jagielski	End If
227*b1cdbd2cSJim JagielskiEnd Function
228*b1cdbd2cSJim Jagielski
229*b1cdbd2cSJim Jagielski
230*b1cdbd2cSJim JagielskiSub SetNewSelection(oListBox as Object, iLastSelection as Integer)
231*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
232*b1cdbd2cSJim JagielskiDim SelIndex as Integer
233*b1cdbd2cSJim JagielskiDim SelList(0) as Integer
234*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(oListBox.StringItemList())
235*b1cdbd2cSJim Jagielski	If MaxIndex &gt; -1  AND iLastSelection &gt; -1 Then
236*b1cdbd2cSJim Jagielski		If iLastSelection &gt; MaxIndex Then
237*b1cdbd2cSJim Jagielski			Selindex = MaxIndex
238*b1cdbd2cSJim Jagielski		Else
239*b1cdbd2cSJim Jagielski			SelIndex = iLastSelection
240*b1cdbd2cSJim Jagielski		End If
241*b1cdbd2cSJim Jagielski		Sellist(0) = SelIndex
242*b1cdbd2cSJim Jagielski		oListBox.SelectedItems() = SelList()
243*b1cdbd2cSJim Jagielski	End If
244*b1cdbd2cSJim JagielskiEnd Sub
245*b1cdbd2cSJim Jagielski
246*b1cdbd2cSJim Jagielski
247*b1cdbd2cSJim JagielskiSub ToggleListboxControls(oDialogModel as Object, bDoEnable as Boolean)
248*b1cdbd2cSJim Jagielski	With oDialogModel
249*b1cdbd2cSJim Jagielski		.lblFields.Enabled = bDoEnable
250*b1cdbd2cSJim Jagielski		.lblSelFields.Enabled = bDoEnable
251*b1cdbd2cSJim Jagielski&apos;		.lstTables.Enabled = bDoEnable
252*b1cdbd2cSJim Jagielski		.lstFields.Enabled = bDoEnable
253*b1cdbd2cSJim Jagielski		.lstSelFields.Enabled = bDoEnable
254*b1cdbd2cSJim Jagielski		.cmdRemoveAll.Enabled = bDoEnable
255*b1cdbd2cSJim Jagielski		.cmdRemoveSelected.Enabled = bDoEnable
256*b1cdbd2cSJim Jagielski		.cmdMoveAll.Enabled = bDoEnable
257*b1cdbd2cSJim Jagielski		.cmdMoveSelected.Enabled = bDoEnable
258*b1cdbd2cSJim Jagielski	End With
259*b1cdbd2cSJim Jagielski	If bDoEnable Then
260*b1cdbd2cSJim Jagielski		FormSetMoveRights()
261*b1cdbd2cSJim Jagielski	End If
262*b1cdbd2cSJim JagielskiEnd Sub
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski
265*b1cdbd2cSJim Jagielski&apos; Enable or disable the buttons used for moving the available
266*b1cdbd2cSJim Jagielski&apos; fields between the two list boxes.
267*b1cdbd2cSJim JagielskiSub FormSetMoveRights()
268*b1cdbd2cSJim JagielskiDim bIsFieldSelected as Boolean
269*b1cdbd2cSJim JagielskiDim bSelectSelected as Boolean
270*b1cdbd2cSJim JagielskiDim FieldCount as Integer
271*b1cdbd2cSJim JagielskiDim SelectCount as Integer
272*b1cdbd2cSJim Jagielski	bIsFieldSelected = Ubound(oDialogModel.lstFields.SelectedItems()) &lt;&gt; -1
273*b1cdbd2cSJim Jagielski	FieldCount = Ubound(oDialogModel.lstFields.StringItemList()) + 1
274*b1cdbd2cSJim Jagielski	bSelectSelected = Ubound(oDialogModel.lstSelFields.SelectedItems()) &gt; -1
275*b1cdbd2cSJim Jagielski	SelectCount = Ubound(oDialogModel.lstSelFields.StringItemList()) + 1
276*b1cdbd2cSJim Jagielski	oDialogModel.cmdRemoveAll.Enabled = SelectCount&gt;=1
277*b1cdbd2cSJim Jagielski	oDialogModel.cmdRemoveSelected.Enabled = bSelectSelected
278*b1cdbd2cSJim Jagielski	oDialogModel.cmdMoveAll.Enabled = FieldCount &gt;=1
279*b1cdbd2cSJim Jagielski	oDialogModel.cmdMoveSelected.Enabled = bIsFieldSelected
280*b1cdbd2cSJim Jagielski	oDialogModel.cmdGoOn.Enabled = SelectCount&gt;=1
281*b1cdbd2cSJim Jagielski	&apos; This flag is set to &apos;1&apos; when the lstSelFields has been modified
282*b1cdbd2cSJim JagielskiEnd Sub
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim Jagielski
285*b1cdbd2cSJim JagielskiFunction AddSingleItemToListbox(ByVal oListbox as Object, ListItem as String, Optional iSelIndex) as Object
286*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
287*b1cdbd2cSJim JagielskiDim i as Integer
288*b1cdbd2cSJim Jagielski
289*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(oListbox.StringItemList())
290*b1cdbd2cSJim JagielskiDim LocList(MaxIndex + 1)
291*b1cdbd2cSJim Jagielski&apos; Todo: This goes faster with the Redim LocList(MaxIndex + 1) Preserve function
292*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
293*b1cdbd2cSJim Jagielski		LocList(i) = oListbox.StringItemList(i)
294*b1cdbd2cSJim Jagielski	Next i
295*b1cdbd2cSJim Jagielski	LocList(MaxIndex + 1) = ListItem
296*b1cdbd2cSJim Jagielski	oListbox.StringItemList() = LocList()
297*b1cdbd2cSJim Jagielski	If Not IsMissing(iSelIndex) Then
298*b1cdbd2cSJim Jagielski		SelectListboxItem(oListbox, iSelIndex)
299*b1cdbd2cSJim Jagielski	End If
300*b1cdbd2cSJim Jagielski	AddSingleItemToListbox() = oListbox
301*b1cdbd2cSJim JagielskiEnd Function
302*b1cdbd2cSJim Jagielski
303*b1cdbd2cSJim Jagielski
304*b1cdbd2cSJim JagielskiSub	EmptyListbox(oListbox as Object)
305*b1cdbd2cSJim JagielskiDim NullList() as String
306*b1cdbd2cSJim Jagielski	oListbox.StringItemList() = NullList()
307*b1cdbd2cSJim JagielskiEnd Sub
308*b1cdbd2cSJim Jagielski
309*b1cdbd2cSJim Jagielski
310*b1cdbd2cSJim JagielskiSub	SelectListboxItem(oListbox as Object, iSelIndex as Integer)
311*b1cdbd2cSJim JagielskiDim LocSelList(0) as Integer
312*b1cdbd2cSJim Jagielski	If iSelIndex &lt;&gt; -1 Then
313*b1cdbd2cSJim Jagielski		LocSelList(0) = iSelIndex
314*b1cdbd2cSJim Jagielski		oListbox.SelectedItems() = LocSelList()
315*b1cdbd2cSJim Jagielski	End If
316*b1cdbd2cSJim JagielskiEnd Sub
317*b1cdbd2cSJim Jagielski
318*b1cdbd2cSJim Jagielski
319*b1cdbd2cSJim JagielskiFunction GetSelectedListboxItems(oListbox as Object)
320*b1cdbd2cSJim JagielskiDim SelList(Ubound(oListBox.SelectedItems())) as String
321*b1cdbd2cSJim JagielskiDim i as Integer
322*b1cdbd2cSJim JagielskiDim CurIndex as Integer
323*b1cdbd2cSJim Jagielski	For i = 0 To Ubound(oListbox.SelectedItems())
324*b1cdbd2cSJim Jagielski		CurIndex = oListbox.SelectedItems(i)
325*b1cdbd2cSJim Jagielski		SelList(i) = oListbox.StringItemList(CurIndex)
326*b1cdbd2cSJim Jagielski	Next i
327*b1cdbd2cSJim Jagielski	GetSelectedListboxItems() = SelList()
328*b1cdbd2cSJim JagielskiEnd Function
329*b1cdbd2cSJim Jagielski
330*b1cdbd2cSJim Jagielski
331*b1cdbd2cSJim Jagielski&apos; Note: When using this Sub it must be ensured that the
332*b1cdbd2cSJim Jagielski&apos; &apos;RemoveItem&apos; appears only only once in the Listbox
333*b1cdbd2cSJim JagielskiSub RemoveListboxItemByName(oListbox as Object, RemoveItem as String)
334*b1cdbd2cSJim JagielskiDim OldList() as String
335*b1cdbd2cSJim JagielskiDim NullList() as String
336*b1cdbd2cSJim JagielskiDim i as Integer
337*b1cdbd2cSJim JagielskiDim a as Integer
338*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
339*b1cdbd2cSJim Jagielski	OldList = oListbox.StringItemList()
340*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(OldList())
341*b1cdbd2cSJim Jagielski	If IndexInArray(RemoveItem, OldList()) &lt;&gt; -1 Then
342*b1cdbd2cSJim Jagielski		If MaxIndex &gt; 0 Then
343*b1cdbd2cSJim Jagielski			a = 0
344*b1cdbd2cSJim Jagielski			Dim NewList(MaxIndex -1)
345*b1cdbd2cSJim Jagielski			For i = 0 To MaxIndex
346*b1cdbd2cSJim Jagielski				If RemoveItem &lt;&gt; OldList(i) Then
347*b1cdbd2cSJim Jagielski					NewList(a) = OldList(i)
348*b1cdbd2cSJim Jagielski					a = a + 1
349*b1cdbd2cSJim Jagielski				End If
350*b1cdbd2cSJim Jagielski			Next i
351*b1cdbd2cSJim Jagielski			oListbox.StringItemList() = NewList()
352*b1cdbd2cSJim Jagielski		Else
353*b1cdbd2cSJim Jagielski			oListBox.StringItemList() = NullList()
354*b1cdbd2cSJim Jagielski		End If
355*b1cdbd2cSJim Jagielski	End If
356*b1cdbd2cSJim JagielskiEnd Sub
357*b1cdbd2cSJim Jagielski
358*b1cdbd2cSJim Jagielski
359*b1cdbd2cSJim JagielskiFunction GetItemPos(oListBox as Object, sItem as String)
360*b1cdbd2cSJim JagielskiDim ItemList()
361*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
362*b1cdbd2cSJim JagielskiDim i as Integer
363*b1cdbd2cSJim Jagielski	ItemList() = oListBox.StringItemList()
364*b1cdbd2cSJim Jagielski	MaxIndex = Ubound(ItemList())
365*b1cdbd2cSJim Jagielski	For i = 0 To MaxIndex
366*b1cdbd2cSJim Jagielski		If sItem = ItemList(i) Then
367*b1cdbd2cSJim Jagielski			GetItemPos() = i
368*b1cdbd2cSJim Jagielski			Exit Function
369*b1cdbd2cSJim Jagielski		End If
370*b1cdbd2cSJim Jagielski	Next i
371*b1cdbd2cSJim Jagielski	GetItemPos() = -1
372*b1cdbd2cSJim JagielskiEnd Function
373*b1cdbd2cSJim Jagielski</script:module>
374