' Load JSON
Dim parser As JSONParser
parser.Initialize(File.ReadString(File.DirAssets, "firma.json"))
Dim m As Map = parser.NextObject
Dim views As List = m.Get("views")
' Build the B4X code
Dim sb As StringBuilder
sb.Initialize
sb.Append("'--- Automatically generated code ---").Append(CRLF)
sb.Append("Sub CreateLayout").Append(CRLF)
For Each v As Map In views
Dim t As String = v.Get("type")
Select t
Case "Label"
sb.Append("Dim lbl As Label").Append(CRLF)
sb.Append("lbl.Initialize(""lbl"")").Append(CRLF)
sb.Append("lbl.Text = "&Chr(34) & v.Get("text") &Chr(34) & "").Append(CRLF)
sb.Append("Activity.AddView(lbl, " & v.Get("left") & ", " & v.Get("top") & ", " & v.Get("width") & ", " & v.Get("height") & ")").Append(CRLF)
Case "Button"
sb.Append("Dim btn As Button").Append(CRLF)
sb.Append("btn.Initialize(""btn"")").Append(CRLF)
sb.Append("btn.Text = "&Chr(34) & v.Get("text")&Chr(34) & "").Append(CRLF)
sb.Append("Activity.AddView(btn, " & v.Get("left") & ", " & v.Get("top") & ", " & v.Get("width") & ", " & v.Get("height") & ")").Append(CRLF)
End Select
Next
sb.Append("End Sub").Append(CRLF)
' Save the .bas module
File.WriteString(File.DirApp, "Layout.bas", sb.ToString)
Log("Module GeneratedLayout.bas created")