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;