diff --git a/assets/bitmaps/pp_100.jpg b/assets/bitmaps/pp_100.jpg
new file mode 100644
index 0000000..8b2dabe
Binary files /dev/null and b/assets/bitmaps/pp_100.jpg differ
diff --git a/assets/bitmaps/pp_500.jpg b/assets/bitmaps/pp_500.jpg
new file mode 100644
index 0000000..451cf2d
Binary files /dev/null and b/assets/bitmaps/pp_500.jpg differ
diff --git a/assets/data/riders.json b/assets/data/riders.json
index 0c122c1..29e49cf 100644
--- a/assets/data/riders.json
+++ b/assets/data/riders.json
@@ -1,198 +1,6 @@
[
{
"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",
"firstName": "Sacha",
"age": 6,
@@ -209,5 +17,404 @@
"legalGuardianRole": "mère",
"legalGuardianPhoneNumber": "03 88 12 34 56",
"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"
}
]
diff --git a/project.xml b/project.xml
index 2a9cf7f..173e084 100644
--- a/project.xml
+++ b/project.xml
@@ -20,6 +20,7 @@
+
diff --git a/src/command/LoadRidersCommand.hx b/src/command/LoadRidersCommand.hx
index e0d6515..26632f1 100644
--- a/src/command/LoadRidersCommand.hx
+++ b/src/command/LoadRidersCommand.hx
@@ -2,7 +2,7 @@ package command;
import t9.util.ColorTraces;
import openfl.Vector;
-import vo.Rider;
+import vo.RiderVO;
import feathers.data.ArrayCollection;
import openfl.Lib;
import haxe.DynamicAccess;
@@ -29,7 +29,7 @@ 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 = cast(rpcEvent, ResultEvent).result;
+ var riders:Array = cast(rpcEvent, ResultEvent).result;
model.ridersListDP = new ArrayCollection(riders);
traceGreen("ridersListDP.length --> " + model.ridersListDP.length);
diff --git a/src/model/AppModelLocator.hx b/src/model/AppModelLocator.hx
index 124834b..748e995 100644
--- a/src/model/AppModelLocator.hx
+++ b/src/model/AppModelLocator.hx
@@ -1,6 +1,6 @@
package model;
-import vo.Rider;
+import vo.RiderVO;
import feathers.data.ArrayCollection;
import openfl.errors.Error;
import openfl.events.Event;
@@ -57,9 +57,9 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
// contains the main riders list which is populated on startup
// mx:application's creationComplete event is mutated into a cairngorm event
// that calls the httpservice for the data
- public var ridersListDP(default, set):ArrayCollection;
+ public var ridersListDP(default, set):ArrayCollection;
- private function set_ridersListDP(value:ArrayCollection):ArrayCollection {
+ private function set_ridersListDP(value:ArrayCollection):ArrayCollection {
ridersListDP = value;
dispatchEvent(new Event(RIDERS_LIST_DP_CHANGE));
return ridersListDP;
diff --git a/src/view/MainFooter.hx b/src/view/MainFooter.hx
index 5227b5a..34a5397 100644
--- a/src/view/MainFooter.hx
+++ b/src/view/MainFooter.hx
@@ -31,11 +31,6 @@ class MainFooter extends LayoutGroup {
var hdl:HorizontalDistributedLayout = new HorizontalDistributedLayout();
layout = hdl;
- }
-
- private function onCreationComplete(event:FeathersEvent):Void {
- traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
-
// Buttons
btn1 = new ToolbarToggleButton(Assets.getText("vector/rider_icon_black.svg"),
Constants.MAIN_COLOR2,
@@ -54,4 +49,8 @@ class MainFooter extends LayoutGroup {
addChild(btn2);
}
+
+ private function onCreationComplete(event:FeathersEvent):Void {
+ traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
+ }
}
diff --git a/src/view/MainHeader.hx b/src/view/MainHeader.hx
index 9bc914e..9ecad0e 100644
--- a/src/view/MainHeader.hx
+++ b/src/view/MainHeader.hx
@@ -51,10 +51,6 @@ class MainHeader extends LayoutGroup {
l.paddingTop = l.paddingBottom = Std.int(headerHeight * .1);
l.verticalAlign = MIDDLE;
layout = l;
- }
-
- private function onCreationComplete(event:FeathersEvent):Void {
- traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
// Menu button
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 {
var e:CairngormEvent = new CairngormEvent(AppController.OPEN_DRAWER_EVENT);
CairngormEventDispatcher.getInstance().dispatchEvent(e);
diff --git a/src/view/MainPanel.hx b/src/view/MainPanel.hx
index 360cbd7..7eab8bc 100644
--- a/src/view/MainPanel.hx
+++ b/src/view/MainPanel.hx
@@ -39,7 +39,7 @@ class MainPanel extends Panel {
footer = mf;
sn = new StackNavigator();
- sn.autoSizeMode = STAGE;
+ //sn.autoSizeMode = STAGE;
sn.layoutData = AnchorLayoutData.fill();
sn.addItem(StackItem.withClass("ridersScreen", RidersScreen));
sn.rootItemID = "ridersScreen";
diff --git a/src/view/RidersList.hx b/src/view/RidersList.hx
index c5d095a..66ee031 100644
--- a/src/view/RidersList.hx
+++ b/src/view/RidersList.hx
@@ -1,5 +1,11 @@
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;
@@ -13,14 +19,44 @@ class RidersList extends ListView {
public function new() {
super();
addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete);
-
- //width = 300;
- //height = 400;
}
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, 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);
}
@@ -32,9 +68,9 @@ class RidersList extends ListView {
private function onRideListDpChange(e:Event):Void {
dataProvider = model.ridersListDP;
- itemToText = function(item:Dynamic):String {
+ /*itemToText = function(item:Dynamic):String {
return item.firstName;
- };
+ };*/
traceGreen(this + " --> onRideListDpChange() - w: " + width + " h: " + height );
}
}
diff --git a/src/view/RidersScreen.hx b/src/view/RidersScreen.hx
index de1188a..9343027 100644
--- a/src/view/RidersScreen.hx
+++ b/src/view/RidersScreen.hx
@@ -1,5 +1,8 @@
package view;
+import model.Constants;
+import feathers.skins.RectangleSkin;
+import feathers.layout.VerticalLayoutData;
import feathers.layout.AnchorLayoutData;
import feathers.layout.AnchorLayout;
import feathers.events.FeathersEvent;
@@ -20,15 +23,22 @@ class RidersScreen extends ScrollContainer {
override private function initialize():Void {
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.layoutData = AnchorLayoutData.fillHorizontal();
+ var vld1 = new VerticalLayoutData();
+ vld1.percentHeight = 10.0;
+ tb.layoutData = vld1;
addChild(tb);
rl = new RidersList();
- rl.layoutData = AnchorLayoutData.fillHorizontal();
- rl.y = 80;
+ var vld2 = new VerticalLayoutData();
+ vld2.percentHeight = 90.0;
+ rl.layoutData = vld2;
addChild(rl);
}
diff --git a/src/view/ToolBar.hx b/src/view/ToolBar.hx
index 1b6524c..bd6728e 100644
--- a/src/view/ToolBar.hx
+++ b/src/view/ToolBar.hx
@@ -56,7 +56,6 @@ class ToolBar extends LayoutGroup {
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
- traceYellow(width + " / " + height);
}
}
\ No newline at end of file
diff --git a/src/vo/Rider.hx b/src/vo/RiderVO.hx
similarity index 97%
rename from src/vo/Rider.hx
rename to src/vo/RiderVO.hx
index 8cd3485..170ee84 100644
--- a/src/vo/Rider.hx
+++ b/src/vo/RiderVO.hx
@@ -1,7 +1,7 @@
package vo;
-class Rider {
- private static var currentIndex = 1000;
+class RiderVO {
+ private static var currentIndex:Int = 0;
public var id:Int;
public var name:String;