RiderList and LoadRidersCommand optimisation

This commit is contained in:
2025-11-28 16:10:13 +01:00
parent 6f156d2dc5
commit 3143854fdb
2 changed files with 80 additions and 45 deletions
+24 -8
View File
@@ -1,5 +1,10 @@
package view;
import openfl.display.Shape;
import model.Constants;
import openfl.Assets;
import openfl.text.Font;
import feathers.text.TextFormat;
import vo.RiderVO;
import uuid.Uuid;
import feathers.controls.AssetLoader;
@@ -28,7 +33,12 @@ class RidersList extends ListView {
var recycler = DisplayObjectRecycler.withFunction(() -> {
var itemRenderer = new ItemRenderer();
var fnt1:Font = Assets.getFont(Constants.MONTSERRAT_MEDIUM_500);
var fnt2:Font = Assets.getFont(Constants.MONTSERRAT_BOLD_700);
itemRenderer.icon = new AssetLoader();
itemRenderer.textFormat = new TextFormat(fnt1.fontName, 16, Constants.MAIN_COLOR1);
itemRenderer.secondaryTextFormat = new TextFormat(fnt2.fontName, 14, Constants.MAIN_COLOR2);
return itemRenderer;
});
@@ -36,17 +46,9 @@ class RidersList extends ListView {
recycler.update = (itemRenderer:ItemRenderer, state:ListViewItemState) -> {
//traceRed($type(state.data));
//var className = Type.getClassName(Type.getClass(state));
//traceRed("Current class name = " + className);
var rider:RiderVO = cast (state.data, RiderVO);
itemRenderer.text = rider.firstName;
itemRenderer.secondaryText = rider.name;
/*var item = state.data;
itemRenderer.text = item.firstName;
itemRenderer.secondaryText = item.name;*/
var loader = cast(itemRenderer.icon, AssetLoader);
loader.sourceScale = 0.7;
@@ -55,8 +57,22 @@ class RidersList extends ListView {
//loader.source = "https://lepetittrot.com/path/to/pp_pictures" + state.data.id + ".jpg";
//loader.source = "https://testingbot.com/free-online-tools/random-avatar/50?u=" + Uuid.nanoId();
var s:Shape = new Shape();
s.graphics.beginFill(0xFFCC00, 1);
s.graphics.drawCircle(0, 0, 10);
s.graphics.endFill();
itemRenderer.accessoryView = s;
};
recycler.reset = (itemRenderer:ItemRenderer, state:ListViewItemState) -> {
/*var label = cast(itemRenderer.getChildByName("label"), Label);
var loader = cast(itemRenderer.getChildByName("loader"), AssetLoader);
label.text = "";
loader.source = null;*/
};
model.addEventListener(AppModelLocator.RIDERS_LIST_DP_CHANGE, onRideListDpChange);
}