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
+56 -37
View File
@@ -30,49 +30,57 @@ class LoadRidersCommand implements ICommand implements IResponder {
public function result(rpcEvent:Dynamic):Void {
// populate the riders DP in the model locator with the JSON results from the service call
/*var riders:Array<RiderVO> = cast(rpcEvent, ResultEvent).result;
model.ridersListDP = new ArrayCollection(riders);*/
//trace(model.ridersListDP.get(5).firstName);
//traceGreen("ridersListDP.length --> " + model.ridersListDP.length);
var data:Array<Dynamic> = cast(rpcEvent, ResultEvent).result;
var riders:Array<RiderVO> = [];
var riders:Array<RiderVO> = data.map((r:Dynamic) -> {
//var arr:Array<RiderVO> = [for (n in data) cast(n, RiderVO)];
final id:Int = Std.parseInt(r.id);
final name:String = r.name;
final firstName:String = r.firstName;
final age:Int = Std.parseInt(r.age);
final lastLessonDate:Int = Std.parseInt(r.lastLessonDate);
final level:Int = Std.parseInt(r.level);
final credit:Int = Std.parseInt(r.credit);
final address:String = r.address;
final notes:String = r.notes;
final ffeLicence:Bool = stringToBool(r.ffeLicence);
final ffeLicenceValidityYear:Int = Std.parseInt(r.ffeLicenceValidityYear);
final ffeLicenceNumber:String = r.ffeLicenceNumber;
final legalGuardianName:String = r.legalGuardianName;
final legalGuardianFirstName:String = r.legalGuardianFirstName;
final legalGuardianRole:String = r.legalGuardianRole;
final legalGuardianPhoneNumber:String = r.legalGuardianPhoneNumber;
final legalGuardianEmail:String = r.legalGuardianEmail;
/*for(v in data){
//var rider:RiderVO = new RiderVO();
//var id:Int = Std.parseInt();
traceCyan(v[]);
return new RiderVO(id, name, firstName, age, lastLessonDate, level, credit, address, notes, ffeLicence, ffeLicenceValidityYear,ffeLicenceNumber,legalGuardianName,legalGuardianFirstName,legalGuardianRole,legalGuardianPhoneNumber,legalGuardianEmail);
});
}*/
model.ridersListDP = new ArrayCollection(riders);
/*var riders:Array<RiderVO> = [];
var riders:Array<RiderVO> = [];
for (i in 0...data.length) {
var r:Object = data[i];
var id:Int = Std.parseInt(r.id);
var name:String = r.name;
var firstName:String = r.firstName;
var age:Int = Std.parseInt(r.age);
var lastLessonDate:Int = Std.parseInt(r.lastLessonDate);
var level:Int = Std.parseInt(r.level);
var credit:Int = Std.parseInt(r.credit);
var address:String = r.address;
var notes:String = r.notes;
var ffeLicence:Bool = stringToBool(r.ffeLicence);
var ffeLicenceValidityYear:Int = Std.parseInt(r.ffeLicenceValidityYear);
var ffeLicenceNumber:String = r.ffeLicenceNumber;
var legalGuardianName:String = r.legalGuardianName;
var legalGuardianFirstName:String = r.legalGuardianFirstName;
var legalGuardianRole:String = r.legalGuardianRole;
var legalGuardianPhoneNumber:String = r.legalGuardianPhoneNumber;
var legalGuardianEmail:String = r.legalGuardianEmail;
final id:Int = Std.parseInt(r.id);
final name:String = r.name;
final firstName:String = r.firstName;
final age:Int = Std.parseInt(r.age);
final lastLessonDate:Int = Std.parseInt(r.lastLessonDate);
final level:Int = Std.parseInt(r.level);
final credit:Int = Std.parseInt(r.credit);
final address:String = r.address;
final notes:String = r.notes;
final ffeLicence:Bool = stringToBool(r.ffeLicence);
final ffeLicenceValidityYear:Int = Std.parseInt(r.ffeLicenceValidityYear);
final ffeLicenceNumber:String = r.ffeLicenceNumber;
final legalGuardianName:String = r.legalGuardianName;
final legalGuardianFirstName:String = r.legalGuardianFirstName;
final legalGuardianRole:String = r.legalGuardianRole;
final legalGuardianPhoneNumber:String = r.legalGuardianPhoneNumber;
final legalGuardianEmail:String = r.legalGuardianEmail;
var rider:RiderVO = new RiderVO(id,
final rider:RiderVO = new RiderVO(id,
name,
firstName,
age,
@@ -90,8 +98,21 @@ class LoadRidersCommand implements ICommand implements IResponder {
legalGuardianEmail
);
riders.push(rider);
}
model.ridersListDP = new ArrayCollection(riders);
}*/
/*var riders:Array<RiderVO> = cast(rpcEvent, ResultEvent).result;
model.ridersListDP = new ArrayCollection(riders);*/
//trace(model.ridersListDP.get(5).firstName);
//traceGreen("ridersListDP.length --> " + model.ridersListDP.length);
//var arr:Array<RiderVO> = [for (n in data) cast(n, RiderVO)];
/*for(v in data){
//var rider:RiderVO = new RiderVO();
//var id:Int = Std.parseInt();
traceCyan(v[]);
}*/
/*for (key => value in riders){
//ConfigValues.data[key] = value;
@@ -114,8 +135,6 @@ class LoadRidersCommand implements ICommand implements IResponder {
}
*/
}
private function stringToBool(str) {
+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,18 +46,10 @@ 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;
loader.source = "bitmaps/pp_100.jpg";
@@ -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);
}