Sub JobDone(job As HttpJob)
ProgressDialogHide
If job.Success Then
Dim res As String
res = job.GetString
Log("Response from server: " & res)
Dim parser As JSONParser
parser.Initialize(res)
Select job.JobName
Case "GetAllMessages"
#Region
Dim ColorFlag, CurrentTop, CurrentLeft As Int
ColorFlag=1
CurrentTop=1
messages=parser.NextArray 'returns alist with maps
For i=0 To messages.Size-1
Dim m As Map
m=messages.Get(i)
msgID=m.Get("msgID")
name=m.Get("name")
email=m.Get("email")
msgFrom=m.Get("msgFrom")
msgDate=m.Get("msgDate")
msgBody=m.Get("msgBody")
Dim msgLabel As Label
msgLabel.Initialize("msgLabel")
'Create Label text
msgLabel.Text="<" & msgID & "> " & name & " from " & msgFrom & " @" & msgDate & CRLF & msgBody
'set text color and left position
If ColorFlag<0 Then
msgLabel.Color=Colors.Green
CurrentLeft=10
Else
msgLabel.Color=Colors.Yellow
CurrentLeft=40
End If
msgView.Panel.AddView(msgLabel,CurrentLeft,CurrentTop, 100%x-60, 10%y)
msgLabel.Tag=msgID
Dim su As StringUtils
msgLabel.Height = su.MeasureMultilineTextHeight(msgLabel, msgLabel.Text)
msgLabel.TextColor=Colors.Black
'Prepare the top of the next label
CurrentTop=CurrentTop+msgLabel.Height+5
msgView.Panel.Height=CurrentTop
ColorFlag=ColorFlag*-1
Next
msgView.FullScroll(True)
#End Region
Case "AddMessage"
FetchMessages 'RemoveOldMessages is the first command in this sub
Case "DeleteMessage"
FetchMessages
End Select
Else
ToastMessageShow("Error: " & job.ErrorMessage, True)
End If
job.Release
End Sub