#Event: SelectedValueChanged(Value as Int,Text as String)
#DesignerProperty: Key: BooleanExample, DisplayName: Show Seconds, FieldType: Boolean, DefaultValue: True
#DesignerProperty: Key: TextColor, DisplayName: Text Color, FieldType: Color, DefaultValue: 0xFFFFFFFF, Description: Text color
Sub Class_Globals
Private mEventName As String 'ignore
Private mCallBack As Object 'ignore
Public mBase As B4XView
Private xui As XUI 'ignore
Public Tag As Object
Private mitems As List
Private mvalue As String
Private namelist As List
Private cmb As ComboBox
Private selected As Map
Dim m As Map
End Sub
Public Sub setEnabled(Value As Boolean)
cmb.Enabled=Value
End Sub
Public Sub Initialize (Callback As Object, EventName As String)
mEventName = EventName
mCallBack = Callback
' items.Initialize
namelist.Initialize
cmb.Initialize("cmb")
End Sub
'Base type must be Object
Public Sub DesignerCreateView (Base As Object, Lbl As Label, Props As Map)
mBase = Base
Tag = mBase.Tag
mBase.Tag = Me
mBase.AddView(cmb,0,0,mBase.Width,mBase.Height)
' mBase.LoadLayout("ComboExLay")
End Sub
Private Sub Base_Resize (Width As Double, Height As Double)
cmb.SetSize(Width,Height)
End Sub
Public Sub Clear
If cmb.IsInitialized=True Then cmb.Items.Clear
End Sub
Private Sub AddList(Items As List,Display As String,ValueMember As String)
For i=0 To Items.Size-1
m = Items.Get(i)
namelist.Add(m.Get(Display))
Next
cmb.Items.AddAll(namelist)
mitems = Items
mvalue=ValueMember
namelist.Clear
End Sub
Public Sub ItemSource3(Items As List,Display As String,ValueMember As String,Default As Int,Text As String)
Clear
m=CreateMap(ValueMember:0,Display:Text)
Items.InsertAt(0,m)
AddList(Items,Display,ValueMember)
cmb.SelectedIndex=Default
End Sub
Public Sub ItemSource2(Items As List,Display As String,ValueMember As String,Default As Int)
Clear
AddList(Items,Display,ValueMember)
cmb.SelectedIndex=Default
End Sub
Public Sub ItemSource(Items As List,Display As String,ValueMember As String)
Clear
AddList(Items,Display,ValueMember)
End Sub
Private Sub cmb_SelectedIndexChanged(Index As Int, Value As Object)
If Index < 0 Then Return
If mitems.Size = 0 Then Return
Dim i As Int=0
selected = mitems.Get(Index)
i=selected.Get(mvalue)
CallSub3(mCallBack, mEventName & "_" & "SelectedValueChanged",i,Value)
End Sub