Bug fixing

This commit is contained in:
Alexei Anoshenko 2025-07-13 17:22:55 +03:00
parent ff8f6f30f2
commit 7702221672
4 changed files with 43 additions and 26 deletions

View File

@ -421,6 +421,11 @@ func (listView *listViewData) getAdapter() ListAdapter {
return adapter
}
}
if obj := listView.binding(); obj != nil {
if adapter, ok := obj.(ListAdapter); ok {
return adapter
}
}
return nil
}

View File

@ -143,9 +143,22 @@ func parseProperties(properties Properties, object DataObject) {
properties.Set(PropertyName(node.Tag()), node.Object())
case ArrayNode:
switch node.ArraySize() {
case 0:
// do nothing
case 1:
if v := node.ArrayElement(0); v.IsObject() {
properties.Set(PropertyName(node.Tag()), v.Object())
} else {
properties.Set(PropertyName(node.Tag()), v.Value())
}
default:
properties.Set(PropertyName(node.Tag()), node.Array())
}
}
}
}
func propertiesGet(properties Properties, tag PropertyName) any {

View File

@ -36,6 +36,11 @@ func GetTableContent(view View, subviewID ...string) TableAdapter {
return adapter
}
}
if obj := view.binding(); obj != nil {
if adapter, ok := obj.(TableAdapter); ok {
return adapter
}
}
}
return nil

View File

@ -604,7 +604,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []string:
if len(value) == 0 {
return "[]"
return ""
}
size := 0
@ -699,7 +699,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []View:
size := len(value)
if size == 0 {
return "[]"
return ""
}
buffer := allocStringBuilder()
@ -724,35 +724,29 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []any:
size := len(value)
if size == 0 {
return "[]"
return ""
}
buffer := allocStringBuilder()
defer freeStringBuilder(buffer)
if size == 1 {
return propertyValueToString(tag, value[0], indent)
} else {
buffer.WriteString("[ ")
comma := false
text := make([]string, 0, size)
for _, v := range value {
text := propertyValueToString(tag, v, indent)
if text != "" {
if comma {
buffer.WriteString(", ")
}
buffer.WriteString(text)
comma = true
if txt := propertyValueToString(tag, v, indent); txt != "" {
text = append(text, txt)
}
}
buffer.WriteString(" ]")
switch len(text) {
case 0:
return ""
case 1:
return text[0]
default:
return propertyValueToString(tag, text, indent)
}
return buffer.String()
case []BackgroundElement:
size := len(value)
if size == 0 {
return "[]"
return ""
}
buffer := allocStringBuilder()
@ -805,7 +799,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case map[PropertyName]AnimationProperty:
size := len(value)
if size == 0 {
return "[]"
return ""
}
buffer := allocStringBuilder()
@ -839,7 +833,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []AnimationProperty:
size := len(value)
if size == 0 {
return "[]"
return ""
}
buffer := allocStringBuilder()