77 lines
2.3 KiB
Haxe
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 );
|
|
}
|
|
}
|