From fb4fa5bf1539c2c6fea7bf99fda1d7079f1fd716 Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Wed, 17 Apr 2024 08:57:20 -0700 Subject: [PATCH] Data Containers: add support for String items on all targets, where it makes some sense Previously, it worked on some targets, but not others, due to how ObjectMap is implemented. now checks for String and uses StringMap for those items --- src/feathers/controls/ButtonBar.hx | 54 +++++++++++++++---- src/feathers/controls/GroupListView.hx | 62 ++++++++++++++++++---- src/feathers/controls/ListView.hx | 62 ++++++++++++++++++---- src/feathers/controls/TabBar.hx | 49 ++++++++++++++--- src/feathers/controls/TreeView.hx | 73 +++++++++++++++++++++----- 5 files changed, 249 insertions(+), 51 deletions(-) diff --git a/src/feathers/controls/ButtonBar.hx b/src/feathers/controls/ButtonBar.hx index 4659275b..61f163de 100644 --- a/src/feathers/controls/ButtonBar.hx +++ b/src/feathers/controls/ButtonBar.hx @@ -8,7 +8,6 @@ package feathers.controls; -import feathers.events.FeathersEvent; import feathers.controls.dataRenderers.IDataRenderer; import feathers.core.FeathersControl; import feathers.core.IUIControl; @@ -17,6 +16,7 @@ import feathers.core.InvalidationFlag; import feathers.data.ButtonBarItemState; import feathers.data.IFlatCollection; import feathers.events.ButtonBarEvent; +import feathers.events.FeathersEvent; import feathers.events.FlatCollectionEvent; import feathers.events.TriggerEvent; import feathers.layout.ILayout; @@ -27,6 +27,7 @@ import feathers.skins.IProgrammaticSkin; import feathers.utils.AbstractDisplayObjectRecycler; import feathers.utils.DisplayObjectRecycler; import haxe.ds.ObjectMap; +import haxe.ds.StringMap; import openfl.display.DisplayObject; import openfl.errors.IllegalOperationError; import openfl.events.Event; @@ -307,7 +308,8 @@ class ButtonBar extends FeathersControl { private var _defaultStorage:ButtonStorage = new ButtonStorage(null, DisplayObjectRecycler.withClass(Button)); private var _additionalStorage:Array = null; - private var dataToButton = new ObjectMap(); + private var objectDataToButton = new ObjectMap(); + private var stringDataToButton = new StringMap