RidersList and ToolBar sizing done

TODO : cast ListViewItemState.data into RiderVO
This commit is contained in:
2025-11-25 13:46:20 +01:00
parent fd5eaac4c6
commit 6f62c3ad53
13 changed files with 472 additions and 220 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

+399 -192
View File
@@ -1,198 +1,6 @@
[ [
{ {
"id": 1, "id": 1,
"name": "Maitray",
"firstName": "Camille",
"age": "11",
"lastLessonDate": "1757548800000",
"level": "1",
"credit": "10",
"address": "8 rue de Chez Douteau, 17600 Corme-Écluse",
"notes": "🐤",
"ffeLicence": "true",
"ffeLicenceValidityYear": "2025",
"ffeLicenceNumber": "6178760C",
"legalGuardianName": "Maitray",
"legalGuardianFirstName": "Vincent",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "0640180230",
"legalGuardianEmail": "vincent.maitray@gmail.com"
},
{
"id": 0,
"name": "Durand",
"firstName": "Lucas",
"age": 12,
"lastLessonDate": 1711574400,
"level": 1,
"credit": 8,
"address": "14 rue des Acacias, 75017 Paris",
"notes": "Bon progrès, travaille la posture.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C1234567",
"legalGuardianName": "Durand",
"legalGuardianFirstName": "Sophie",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "01 45 67 89 10",
"legalGuardianEmail": "sophie.durand@example.com"
},
{
"id": 1,
"name": "Martin",
"firstName": "Emma",
"age": 9,
"lastLessonDate": 1704067200,
"level": 0,
"credit": 3,
"address": "7 avenue Victor Hugo, 33000 Bordeaux",
"notes": "Très attentive, timide en groupe.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C7654321",
"legalGuardianName": "Lemoine",
"legalGuardianFirstName": "Claire",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "05 56 12 34 56",
"legalGuardianEmail": "claire.lemoine@example.net"
},
{
"id": 2,
"name": "Bernard",
"firstName": "Tom",
"age": 15,
"lastLessonDate": 1716844800,
"level": 2,
"credit": -2,
"address": "23 boulevard Gambetta, 59000 Lille",
"notes": "Doit rattraper les cours manqués.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C9876543",
"legalGuardianName": "Bernard",
"legalGuardianFirstName": "Marc",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "03 20 33 44 55",
"legalGuardianEmail": "marc.bernard@mail-example.fr"
},
{
"id": 3,
"name": "Petit",
"firstName": "Léa",
"age": 7,
"lastLessonDate": 1709548800,
"level": 0,
"credit": 12,
"address": "5 impasse des Lilas, 87000 Limoges",
"notes": "Très sociable, aime les activités créatives.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C2345678",
"legalGuardianName": "Moreau",
"legalGuardianFirstName": "Anne",
"legalGuardianRole": "grand-mère",
"legalGuardianPhoneNumber": "05 55 12 23 34",
"legalGuardianEmail": "anne.moreau@example.org"
},
{
"id": 4,
"name": "Roux",
"firstName": "Noah",
"age": 11,
"lastLessonDate": 1712150400,
"level": 1,
"credit": 0,
"address": "98 route de Grenoble, 73000 Chambéry",
"notes": "Besoin d'encouragement pour prendre confiance.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C3456789",
"legalGuardianName": "Lefèvre",
"legalGuardianFirstName": "Isabelle",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "04 79 11 22 33",
"legalGuardianEmail": "isabelle.lefevre@example.com"
},
{
"id": 5,
"name": "Morel",
"firstName": "Mathis",
"age": 13,
"lastLessonDate": 1710326400,
"level": 2,
"credit": 5,
"address": "12 rue Jean Jaurès, 44000 Nantes",
"notes": "Technique en amélioration.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C4567890",
"legalGuardianName": "Dubois",
"legalGuardianFirstName": "Caroline",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "02 40 12 34 56",
"legalGuardianEmail": "caroline.dubois@example.com"
},
{
"id": 6,
"name": "Garcia",
"firstName": "Chloé",
"age": 8,
"lastLessonDate": 1706784000,
"level": 0,
"credit": 10,
"address": "3 place Sainte-Catherine, 33000 Bordeaux",
"notes": "Très impliquée et souriante.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C1122334",
"legalGuardianName": "Garcia",
"legalGuardianFirstName": "Ismaël",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "05 56 78 90 12",
"legalGuardianEmail": "ismael.garcia@mail-example.fr"
},
{
"id": 7,
"name": "Fischer",
"firstName": "Hugo",
"age": 16,
"lastLessonDate": 1714512000,
"level": 2,
"credit": -5,
"address": "45 avenue Foch, 06000 Nice",
"notes": "Doit respecter les règles du groupe.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C9988776",
"legalGuardianName": "Fischer",
"legalGuardianFirstName": "Monique",
"legalGuardianRole": "grand-mère",
"legalGuardianPhoneNumber": "04 93 12 34 56",
"legalGuardianEmail": "monique.fischer@example.net"
},
{
"id": 8,
"name": "Lefort",
"firstName": "Maya",
"age": 10,
"lastLessonDate": 1709452400,
"level": 1,
"credit": 7,
"address": "28 rue Carnot, 21000 Dijon",
"notes": "Bonne écoute, progresser en endurance.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C5566778",
"legalGuardianName": "Lefort",
"legalGuardianFirstName": "Paul",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "03 80 12 34 56",
"legalGuardianEmail": "paul.lefort@example.org"
},
{
"id": 9,
"name": "Dupuy", "name": "Dupuy",
"firstName": "Sacha", "firstName": "Sacha",
"age": 6, "age": 6,
@@ -209,5 +17,404 @@
"legalGuardianRole": "mère", "legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 88 12 34 56", "legalGuardianPhoneNumber": "03 88 12 34 56",
"legalGuardianEmail": "elodie.martin@example.com" "legalGuardianEmail": "elodie.martin@example.com"
},
{
"id": 2,
"name": "Lefèvre",
"firstName": "Théo",
"age": 8,
"lastLessonDate": 1704873600,
"level": 1,
"credit": 12,
"address": "12 avenue Victor Hugo, 59000 Lille",
"notes": "Bonne attitude, progrès réguliers.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C4455667",
"legalGuardianName": "Lefèvre",
"legalGuardianFirstName": "Claire",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 20 11 22 33",
"legalGuardianEmail": "claire.lefevre@example.com"
},
{
"id": 3,
"name": "Bernard",
"firstName": "Lucas",
"age": 10,
"lastLessonDate": 1704797200,
"level": 2,
"credit": 8,
"address": "4 place du Général Leclerc, 44000 Nantes",
"notes": "Concentré mais timide, besoin d'encouragements.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2024,
"ffeLicenceNumber": "C5566778",
"legalGuardianName": "Bernard",
"legalGuardianFirstName": "Sophie",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "02 40 12 34 56",
"legalGuardianEmail": "sophie.bernard@example.com"
},
{
"id": 4,
"name": "Moreau",
"firstName": "Jules",
"age": 12,
"lastLessonDate": 1704700800,
"level": 3,
"credit": 5,
"address": "28 rue Nationale, 75002 Paris",
"notes": "Très motivé, objectifs de compétition.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "F7788990",
"legalGuardianName": "Moreau",
"legalGuardianFirstName": "Marc",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "01 42 68 99 01",
"legalGuardianEmail": "marc.moreau@example.com"
},
{
"id": 5,
"name": "Roux",
"firstName": "Léna",
"age": 9,
"lastLessonDate": 1704614400,
"level": 1,
"credit": 20,
"address": "3 chemin des Lilas, 63000 Clermont-Ferrand",
"notes": "Enjouée, adore les poneys.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2027,
"ffeLicenceNumber": "C8899001",
"legalGuardianName": "Roux",
"legalGuardianFirstName": "Anne",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "04 73 12 34 56",
"legalGuardianEmail": "anne.roux@example.com"
},
{
"id": 6,
"name": "Garnier",
"firstName": "Maxime",
"age": 14,
"lastLessonDate": 1704528000,
"level": 4,
"credit": 3,
"address": "15 boulevard Gambetta, 13800 Istres",
"notes": "Technique solide, sérieux.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "F9900112",
"legalGuardianName": "Garnier",
"legalGuardianFirstName": "Isabelle",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "04 42 55 66 77",
"legalGuardianEmail": "isabelle.garnier@example.com"
},
{
"id": 7,
"name": "Faure",
"firstName": "Emma",
"age": 7,
"lastLessonDate": 1704441600,
"level": 0,
"credit": 18,
"address": "9 impasse des Roses, 31000 Toulouse",
"notes": "Très gentille, se sent à l'aise avec les équidés.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C1122334",
"legalGuardianName": "Faure",
"legalGuardianFirstName": "Nicolas",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "05 61 22 33 44",
"legalGuardianEmail": "nicolas.faure@example.com"
},
{
"id": 8,
"name": "Marchal",
"firstName": "Noah",
"age": 11,
"lastLessonDate": 1704355200,
"level": 2,
"credit": 10,
"address": "21 rue de la Gare, 67000 Strasbourg",
"notes": "Bon sens de l'équilibre, besoin de confiance.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C2233445",
"legalGuardianName": "Marchal",
"legalGuardianFirstName": "Julie",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 88 44 55 66",
"legalGuardianEmail": "julie.marchal@example.com"
},
{
"id": 9,
"name": "Gauthier",
"firstName": "Manon",
"age": 13,
"lastLessonDate": 1704268800,
"level": 3,
"credit": 6,
"address": "47 allée des Acacias, 34000 Montpellier",
"notes": "Travaille bien en groupe, compétitrice.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "F3344556",
"legalGuardianName": "Gauthier",
"legalGuardianFirstName": "Olivier",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "04 67 12 34 56",
"legalGuardianEmail": "olivier.gauthier@example.com"
},
{
"id": 10,
"name": "Perrin",
"firstName": "Alice",
"age": 5,
"lastLessonDate": 1704182400,
"level": 0,
"credit": 25,
"address": "2 rue des Peupliers, 59000 Lille",
"notes": "Très attachée au poney, sociable.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2028,
"ffeLicenceNumber": "C4455668",
"legalGuardianName": "Perrin",
"legalGuardianFirstName": "Marie",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 20 44 55 66",
"legalGuardianEmail": "marie.perrin@example.com"
},
{
"id": 11,
"name": "Blanc",
"firstName": "Hugo",
"age": 15,
"lastLessonDate": 1704096000,
"level": 5,
"credit": 2,
"address": "8 rue Victor Schoelcher, 97400 Saint-Denis",
"notes": "Très expérimenté, prépare les examens.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "F5566778",
"legalGuardianName": "Blanc",
"legalGuardianFirstName": "Laurence",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "02 62 12 34 56",
"legalGuardianEmail": "laurence.blanc@example.com"
},
{
"id": 12,
"name": "Mercier",
"firstName": "Chloé",
"age": 9,
"lastLessonDate": 1704009600,
"level": 1,
"credit": 14,
"address": "30 avenue Jean Jaurès, 76000 Rouen",
"notes": "Très attentive, apprend vite.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2027,
"ffeLicenceNumber": "C6677889",
"legalGuardianName": "Mercier",
"legalGuardianFirstName": "Paul",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "02 35 12 34 56",
"legalGuardianEmail": "paul.mercier@example.com"
},
{
"id": 13,
"name": "Chevalier",
"firstName": "Camille",
"age": 12,
"lastLessonDate": 1703923200,
"level": 3,
"credit": 7,
"address": "11 rue des Fleurs, 33000 Bordeaux",
"notes": "Bonne assiette, travaille la rigueur.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "F7788112",
"legalGuardianName": "Chevalier",
"legalGuardianFirstName": "Hélène",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "05 56 12 34 56",
"legalGuardianEmail": "helene.chevalier@example.com"
},
{
"id": 14,
"name": "Gilles",
"firstName": "Noémie",
"age": 8,
"lastLessonDate": 1703836800,
"level": 1,
"credit": 16,
"address": "19 rue des Écoles, 21000 Dijon",
"notes": "Curieuse et dynamique.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C8899113",
"legalGuardianName": "Gilles",
"legalGuardianFirstName": "Sébastien",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "03 80 12 34 56",
"legalGuardianEmail": "sebastien.gilles@example.com"
},
{
"id": 15,
"name": "Rousseau",
"firstName": "Malo",
"age": 11,
"lastLessonDate": 1703750400,
"level": 2,
"credit": 11,
"address": "5 allée des Tilleuls, 35000 Rennes",
"notes": "Bon esprit d'équipe, franchit bien les obstacles.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "C9900224",
"legalGuardianName": "Rousseau",
"legalGuardianFirstName": "Claire",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "02 99 12 34 56",
"legalGuardianEmail": "claire.rousseau@example.com"
},
{
"id": 16,
"name": "Picard",
"firstName": "Gabriel",
"age": 13,
"lastLessonDate": 1703664000,
"level": 3,
"credit": 4,
"address": "42 boulevard Carnot, 13001 Marseille",
"notes": "Bonne endurance, besoin d'affiner la technique.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "F0011334",
"legalGuardianName": "Picard",
"legalGuardianFirstName": "Isabelle",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "04 91 12 34 56",
"legalGuardianEmail": "isabelle.picard@example.com"
},
{
"id": 17,
"name": "Dupont",
"firstName": "Zoé",
"age": 6,
"lastLessonDate": 1703577600,
"level": 0,
"credit": 22,
"address": "7 rue du Moulin, 67000 Strasbourg",
"notes": "Très enthousiaste, aime les jeux montés.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2028,
"ffeLicenceNumber": "C1122445",
"legalGuardianName": "Dupont",
"legalGuardianFirstName": "Marion",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 88 77 66 55",
"legalGuardianEmail": "marion.dupont@example.com"
},
{
"id": 18,
"name": "Vidal",
"firstName": "Ethan",
"age": 14,
"lastLessonDate": 1703491200,
"level": 4,
"credit": 1,
"address": "1 rue de l'Église, 34400 Lunel",
"notes": "Très sérieux, suit un programme intensif.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2025,
"ffeLicenceNumber": "F1122556",
"legalGuardianName": "Vidal",
"legalGuardianFirstName": "Laura",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "04 67 23 45 67",
"legalGuardianEmail": "laura.vidal@example.com"
},
{
"id": 19,
"name": "Lemoine",
"firstName": "Arthur",
"age": 10,
"lastLessonDate": 1703404800,
"level": 2,
"credit": 9,
"address": "24 rue du Parc, 57000 Metz",
"notes": "Bonne progression sur le plat.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "C2233667",
"legalGuardianName": "Lemoine",
"legalGuardianFirstName": "Céline",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 87 12 34 56",
"legalGuardianEmail": "celine.lemoine@example.com"
},
{
"id": 20,
"name": "Colin",
"firstName": "Louise",
"age": 9,
"lastLessonDate": 1703318400,
"level": 1,
"credit": 13,
"address": "16 rue de la Liberté, 44000 Nantes",
"notes": "Attendrie par les chevaux, très douce.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2027,
"ffeLicenceNumber": "C3344778",
"legalGuardianName": "Colin",
"legalGuardianFirstName": "Bruno",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "02 40 44 55 66",
"legalGuardianEmail": "bruno.colin@example.com"
},
{
"id": 21,
"name": "Aubert",
"firstName": "Mia",
"age": 7,
"lastLessonDate": 1703232000,
"level": 0,
"credit": 19,
"address": "14 rue des Mimosas, 06200 Nice",
"notes": "Souriante, très à l'aise avec le poney.",
"ffeLicence": false,
"ffeLicenceValidityYear": 2028,
"ffeLicenceNumber": "C4455889",
"legalGuardianName": "Aubert",
"legalGuardianFirstName": "Sébastien",
"legalGuardianRole": "père",
"legalGuardianPhoneNumber": "04 93 12 34 56",
"legalGuardianEmail": "sebastien.aubert@example.com"
},
{
"id": 22,
"name": "Perrot",
"firstName": "Noah",
"age": 12,
"lastLessonDate": 1703145600,
"level": 3,
"credit": 6,
"address": "27 rue du Château, 21000 Dijon",
"notes": "Bon cavalier, travaille les transitions.",
"ffeLicence": true,
"ffeLicenceValidityYear": 2026,
"ffeLicenceNumber": "F5566990",
"legalGuardianName": "Perrot",
"legalGuardianFirstName": "Hélène",
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 80 33 44 55",
"legalGuardianEmail": "helene.perrot"
} }
] ]
+1
View File
@@ -20,6 +20,7 @@
<haxelib name="feathersui-cairngorm"/> <haxelib name="feathersui-cairngorm"/>
<haxelib name="hx-color-trace"/> <haxelib name="hx-color-trace"/>
<haxelib name="svg" /> <haxelib name="svg" />
<haxelib name="uuid" />
<icon path="assets/icons/icon.svg"/> <icon path="assets/icons/icon.svg"/>
+2 -2
View File
@@ -2,7 +2,7 @@ package command;
import t9.util.ColorTraces; import t9.util.ColorTraces;
import openfl.Vector; import openfl.Vector;
import vo.Rider; import vo.RiderVO;
import feathers.data.ArrayCollection; import feathers.data.ArrayCollection;
import openfl.Lib; import openfl.Lib;
import haxe.DynamicAccess; import haxe.DynamicAccess;
@@ -29,7 +29,7 @@ class LoadRidersCommand implements ICommand implements IResponder {
public function result(rpcEvent:Dynamic):Void { public function result(rpcEvent:Dynamic):Void {
// populate the riders DP in the model locator with the JSON results from the service call // populate the riders DP in the model locator with the JSON results from the service call
var riders:Array<Rider> = cast(rpcEvent, ResultEvent).result; var riders:Array<RiderVO> = cast(rpcEvent, ResultEvent).result;
model.ridersListDP = new ArrayCollection(riders); model.ridersListDP = new ArrayCollection(riders);
traceGreen("ridersListDP.length --> " + model.ridersListDP.length); traceGreen("ridersListDP.length --> " + model.ridersListDP.length);
+3 -3
View File
@@ -1,6 +1,6 @@
package model; package model;
import vo.Rider; import vo.RiderVO;
import feathers.data.ArrayCollection; import feathers.data.ArrayCollection;
import openfl.errors.Error; import openfl.errors.Error;
import openfl.events.Event; import openfl.events.Event;
@@ -57,9 +57,9 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
// contains the main riders list which is populated on startup // contains the main riders list which is populated on startup
// mx:application's creationComplete event is mutated into a cairngorm event // mx:application's creationComplete event is mutated into a cairngorm event
// that calls the httpservice for the data // that calls the httpservice for the data
public var ridersListDP(default, set):ArrayCollection<Rider>; public var ridersListDP(default, set):ArrayCollection<RiderVO>;
private function set_ridersListDP(value:ArrayCollection<Rider>):ArrayCollection<Rider> { private function set_ridersListDP(value:ArrayCollection<RiderVO>):ArrayCollection<RiderVO> {
ridersListDP = value; ridersListDP = value;
dispatchEvent(new Event(RIDERS_LIST_DP_CHANGE)); dispatchEvent(new Event(RIDERS_LIST_DP_CHANGE));
return ridersListDP; return ridersListDP;
+4 -5
View File
@@ -31,11 +31,6 @@ class MainFooter extends LayoutGroup {
var hdl:HorizontalDistributedLayout = new HorizontalDistributedLayout(); var hdl:HorizontalDistributedLayout = new HorizontalDistributedLayout();
layout = hdl; layout = hdl;
}
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
// Buttons // Buttons
btn1 = new ToolbarToggleButton(Assets.getText("vector/rider_icon_black.svg"), btn1 = new ToolbarToggleButton(Assets.getText("vector/rider_icon_black.svg"),
Constants.MAIN_COLOR2, Constants.MAIN_COLOR2,
@@ -54,4 +49,8 @@ class MainFooter extends LayoutGroup {
addChild(btn2); addChild(btn2);
} }
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
}
} }
+4 -4
View File
@@ -51,10 +51,6 @@ class MainHeader extends LayoutGroup {
l.paddingTop = l.paddingBottom = Std.int(headerHeight * .1); l.paddingTop = l.paddingBottom = Std.int(headerHeight * .1);
l.verticalAlign = MIDDLE; l.verticalAlign = MIDDLE;
layout = l; layout = l;
}
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
// Menu button // Menu button
var svgIconString:String = Assets.getText("vector/menu_icon_black.svg"); var svgIconString:String = Assets.getText("vector/menu_icon_black.svg");
@@ -72,6 +68,10 @@ class MainHeader extends LayoutGroup {
} }
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
}
function onMenuButtonPress(e:TriggerEvent):Void { function onMenuButtonPress(e:TriggerEvent):Void {
var e:CairngormEvent = new CairngormEvent(AppController.OPEN_DRAWER_EVENT); var e:CairngormEvent = new CairngormEvent(AppController.OPEN_DRAWER_EVENT);
CairngormEventDispatcher.getInstance().dispatchEvent(e); CairngormEventDispatcher.getInstance().dispatchEvent(e);
+1 -1
View File
@@ -39,7 +39,7 @@ class MainPanel extends Panel {
footer = mf; footer = mf;
sn = new StackNavigator(); sn = new StackNavigator();
sn.autoSizeMode = STAGE; //sn.autoSizeMode = STAGE;
sn.layoutData = AnchorLayoutData.fill(); sn.layoutData = AnchorLayoutData.fill();
sn.addItem(StackItem.withClass("ridersScreen", RidersScreen)); sn.addItem(StackItem.withClass("ridersScreen", RidersScreen));
sn.rootItemID = "ridersScreen"; sn.rootItemID = "ridersScreen";
+42 -6
View File
@@ -1,5 +1,11 @@
package view; 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.layout.AutoSizeMode;
import feathers.controls.ListView; import feathers.controls.ListView;
import feathers.events.FeathersEvent; import feathers.events.FeathersEvent;
@@ -13,14 +19,44 @@ class RidersList extends ListView {
public function new() { public function new() {
super(); super();
addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete); addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete);
//width = 300;
//height = 400;
} }
override private function initialize():Void { override private function initialize():Void {
super.initialize(); 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, 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";*/
//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); model.addEventListener(AppModelLocator.RIDERS_LIST_DP_CHANGE, onRideListDpChange);
} }
@@ -32,9 +68,9 @@ class RidersList extends ListView {
private function onRideListDpChange(e:Event):Void { private function onRideListDpChange(e:Event):Void {
dataProvider = model.ridersListDP; dataProvider = model.ridersListDP;
itemToText = function(item:Dynamic):String { /*itemToText = function(item:Dynamic):String {
return item.firstName; return item.firstName;
}; };*/
traceGreen(this + " --> onRideListDpChange() - w: " + width + " h: " + height ); traceGreen(this + " --> onRideListDpChange() - w: " + width + " h: " + height );
} }
} }
+14 -4
View File
@@ -1,5 +1,8 @@
package view; package view;
import model.Constants;
import feathers.skins.RectangleSkin;
import feathers.layout.VerticalLayoutData;
import feathers.layout.AnchorLayoutData; import feathers.layout.AnchorLayoutData;
import feathers.layout.AnchorLayout; import feathers.layout.AnchorLayout;
import feathers.events.FeathersEvent; import feathers.events.FeathersEvent;
@@ -20,15 +23,22 @@ class RidersScreen extends ScrollContainer {
override private function initialize():Void { override private function initialize():Void {
super.initialize(); super.initialize();
layout = new AnchorLayout(); backgroundSkin = new RectangleSkin(SolidColor(Constants.MAIN_COLOR2, 1));
var vl:VerticalLayout = new VerticalLayout();
vl.horizontalAlign = JUSTIFY;
layout = vl;
tb = new ToolBar(); tb = new ToolBar();
tb.layoutData = AnchorLayoutData.fillHorizontal(); var vld1 = new VerticalLayoutData();
vld1.percentHeight = 10.0;
tb.layoutData = vld1;
addChild(tb); addChild(tb);
rl = new RidersList(); rl = new RidersList();
rl.layoutData = AnchorLayoutData.fillHorizontal(); var vld2 = new VerticalLayoutData();
rl.y = 80; vld2.percentHeight = 90.0;
rl.layoutData = vld2;
addChild(rl); addChild(rl);
} }
-1
View File
@@ -56,7 +56,6 @@ class ToolBar extends LayoutGroup {
private function onCreationComplete(event:FeathersEvent):Void { private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height ); traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
traceYellow(width + " / " + height);
} }
} }
+2 -2
View File
@@ -1,7 +1,7 @@
package vo; package vo;
class Rider { class RiderVO {
private static var currentIndex = 1000; private static var currentIndex:Int = 0;
public var id:Int; public var id:Int;
public var name:String; public var name:String;