Compare commits

..

No commits in common. "main" and "v0.20.2" have entirely different histories.

5 changed files with 29 additions and 63 deletions

View File

@ -421,11 +421,6 @@ 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,20 +143,7 @@ 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())
}
properties.Set(PropertyName(node.Tag()), node.Array())
}
}
}

View File

@ -36,11 +36,6 @@ 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

19
view.go
View File

@ -311,7 +311,7 @@ func (view *viewData) getFunc(tag PropertyName) any {
case FocusEvent, LostFocusEvent:
if listeners := getNoArgEventRawListeners[View](view, nil, tag); len(listeners) > 0 {
return listeners
}
case KeyDownEvent, KeyUpEvent:
@ -354,15 +354,6 @@ func (view *viewData) getFunc(tag PropertyName) any {
return listeners
}
case changeListeners:
if len(view.changeListener) > 0 {
result := map[PropertyName]any{}
for tag, listener := range view.changeListener {
result[tag] = listener.rawListener()
}
return result
}
default:
return viewStyleGet(view, tag)
}
@ -1337,11 +1328,6 @@ func (view *viewData) handleCommand(self View, command PropertyName, data DataOb
func (view *viewData) SetChangeListener(tag PropertyName, listener any) bool {
if listener == nil {
delete(view.changeListener, tag)
if len(view.changeListener) > 0 {
view.setRaw(changeListeners, view.changeListener)
} else {
view.setRaw(changeListeners, nil)
}
} else {
switch listener := listener.(type) {
case func():
@ -1357,9 +1343,6 @@ func (view *viewData) SetChangeListener(tag PropertyName, listener any) bool {
view.changeListener[tag] = newOneArgListenerVE(listener)
case string:
if listener == "" {
return view.SetChangeListener(tag, nil)
}
view.changeListener[tag] = newOneArgListenerBinding[View, PropertyName](listener)
default:

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,29 +724,35 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []any:
size := len(value)
if size == 0 {
return ""
return "[]"
}
text := make([]string, 0, size)
for _, v := range value {
if txt := propertyValueToString(tag, v, indent); txt != "" {
text = append(text, txt)
buffer := allocStringBuilder()
defer freeStringBuilder(buffer)
if size == 1 {
return propertyValueToString(tag, value[0], indent)
} else {
buffer.WriteString("[ ")
comma := false
for _, v := range value {
text := propertyValueToString(tag, v, indent)
if text != "" {
if comma {
buffer.WriteString(", ")
}
buffer.WriteString(text)
comma = true
}
}
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()
@ -799,7 +805,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case map[PropertyName]AnimationProperty:
size := len(value)
if size == 0 {
return ""
return "[]"
}
buffer := allocStringBuilder()
@ -833,7 +839,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []AnimationProperty:
size := len(value)
if size == 0 {
return ""
return "[]"
}
buffer := allocStringBuilder()
@ -935,7 +941,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
case []popupListener:
return getPopupListenerBinding(value)
case map[PropertyName]any:
case map[PropertyName]oneArgListener[View, PropertyName]:
if len(value) == 0 {
return ""
}
@ -946,7 +952,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
indent2 := indent + "\t"
buffer.WriteString("_{\n")
for key, listener := range value {
if text, ok := listener.(string); ok && text != "" {
if text, ok := listener.rawListener().(string); ok && text != "" {
buffer.WriteString(indent2)
writeString(buffer, string(key))
buffer.WriteString(" = ")