Files
LPTCManager2026/src/view/RidersList.hx
T

77 lines
2.3 KiB
Haxe

package view;
import vo.RiderVO;
import uuid.Uuid;
import feathers.controls.AssetLoader;
import feathers.data.ListViewItemState;
import feathers.controls.dataRenderers.ItemRenderer;
import feathers.utils.DisplayObjectRecycler;
import feathers.layout.AutoSizeMode;
import feathers.controls.ListView;
import feathers.events.FeathersEvent;
import model.AppModelLocator;
import openfl.events.Event;
import t9.util.ColorTraces.*;
class RidersList extends ListView {
private var model = AppModelLocator.getInstance();
public function new() {
super();
addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete);
}
override private function initialize():Void {
super.initialize();
// set common properties for all renderers in the same container here
var recycler = DisplayObjectRecycler.withFunction(() -> {
var itemRenderer = new ItemRenderer();
itemRenderer.icon = new AssetLoader();
return itemRenderer;
});
itemRendererRecycler = recycler;
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;
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;
loader.source = "bitmaps/pp_100.jpg";
//TODO change this to real iamge path
//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();
};
model.addEventListener(AppModelLocator.RIDERS_LIST_DP_CHANGE, onRideListDpChange);
}
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
}
private function onRideListDpChange(e:Event):Void {
dataProvider = model.ridersListDP;
/*itemToText = function(item:Dynamic):String {
return item.firstName;
};*/
traceGreen(this + " --> onRideListDpChange() - w: " + width + " h: " + height );
}
}