TODO find a way to populate fields of RiderCardDrawer vie (binding ?)
This commit is contained in:
+14
-3
@@ -1,3 +1,4 @@
|
||||
import view.RiderCardDrawer;
|
||||
import openfl.system.Security;
|
||||
import business.Services;
|
||||
import com.adobe.cairngorm.control.CairngormEventDispatcher;
|
||||
@@ -18,6 +19,7 @@ class LPTCManager2026 extends Application {
|
||||
private var appController:AppController;
|
||||
private var mainPanel:MainPanel;
|
||||
private var md:MainDrawer;
|
||||
private var rcd:RiderCardDrawer;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
@@ -41,7 +43,11 @@ class LPTCManager2026 extends Application {
|
||||
md = new MainDrawer();
|
||||
addChild(md);
|
||||
|
||||
rcd = new RiderCardDrawer();
|
||||
addChild(rcd);
|
||||
|
||||
model.addEventListener(AppModelLocator.DRAWER_STATE_CHANGE, onDrawerStateChange);
|
||||
model.addEventListener(AppModelLocator.RIDER_SELECT_CHANGE, onRiderSelectChange);
|
||||
|
||||
|
||||
//traceBlue(this + " --> initialize()");
|
||||
@@ -53,12 +59,17 @@ class LPTCManager2026 extends Application {
|
||||
CairngormEventDispatcher.getInstance().dispatchEvent(cgEvent);
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
traceBlue("Application --> onCreationComplete()");
|
||||
loadRiders();
|
||||
private function onRiderSelectChange(event:Event):Void {
|
||||
trace(model.selectedRider.name);
|
||||
rcd.openDrawer();
|
||||
}
|
||||
|
||||
private function onDrawerStateChange(e:Event):Void {
|
||||
model.drawerIsOpen ? md.openDrawer() : md.closeDrawer();
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
traceBlue("Application --> onCreationComplete()");
|
||||
loadRiders();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package command;
|
||||
|
||||
import model.Constants;
|
||||
import com.adobe.cairngorm.commands.ICommand;
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import control.RiderSelectEvent;
|
||||
import model.AppModelLocator;
|
||||
import t9.util.ColorTraces.*;
|
||||
|
||||
class RiderSelectCommand implements ICommand {
|
||||
private var model = AppModelLocator.getInstance();
|
||||
|
||||
public function execute(e:CairngormEvent):Void {
|
||||
trace(e.data);
|
||||
public function execute(ce:CairngormEvent):Void {
|
||||
// set the selectedRider property in the model locator with the details from the ListView item selected by user
|
||||
model.selectedRider = cast(ce, RiderSelectEvent).selectedRider;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ class RoundAvatar extends LayoutGroup {
|
||||
//var lc:LoaderContext = new LoaderContext(true, null);
|
||||
// l.load(new URLRequest("https://ui-avatars.com/api/?background=random&size=64"));
|
||||
//l.load(new URLRequest("https://api.dicebear.com/9.x/pixel-art/png?size=32"));
|
||||
l.load(new URLRequest("https://lepetittrot.com/lptcm/assets/profile-pictures/pp256/pp_malo.jpeg"));
|
||||
l.load(new URLRequest("https://lepetittrot.com/lptcm/assets/profile-pictures/pp256/pp_test_256.jpg"));
|
||||
l.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadComplete);
|
||||
addChild(l);
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package control;
|
||||
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import vo.RiderVO;
|
||||
|
||||
class RiderSelecEvent extends CairngormEvent {
|
||||
public var selectedItem:RiderVO;
|
||||
|
||||
public function new(selectedItem:RiderVO) {
|
||||
super(AppController.RIDER_SELECT_EVENT);
|
||||
this.selectedItem = selectedItem;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package control;
|
||||
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import vo.RiderVO;
|
||||
|
||||
class RiderSelectEvent extends CairngormEvent {
|
||||
public var selectedRider:RiderVO;
|
||||
|
||||
public function new(pSelectedRider:RiderVO) {
|
||||
super(AppController.RIDER_SELECT_EVENT);
|
||||
selectedRider = pSelectedRider;
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
|
||||
public static final VIEWING_CHANGE:String = "viewingChange";
|
||||
public static final RIDERS_LIST_DP_CHANGE:String = "ridersListDPChange";
|
||||
public static final DRAWER_STATE_CHANGE:String = "drawerStateChange";
|
||||
public static final RIDER_SELECT:String = "riderSelect";
|
||||
public static final RIDER_SELECT_CHANGE:String = "riderSelectChange";
|
||||
|
||||
// this instance stores a static reference to itself
|
||||
private static var model:AppModelLocator;
|
||||
@@ -50,7 +50,7 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
|
||||
|
||||
private function set_selectedRider(pRider:RiderVO):RiderVO {
|
||||
selectedRider = pRider;
|
||||
dispatchEvent(new Event(AppModelLocator.RIDER_SELECT));
|
||||
dispatchEvent(new Event(AppModelLocator.RIDER_SELECT_CHANGE));
|
||||
return selectedRider;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,10 @@ class MainDrawer extends Drawer {
|
||||
override private function initialize():Void {
|
||||
super.initialize();
|
||||
|
||||
overlaySkin = new RectangleSkin(SolidColor( Constants.HERO_COLOR, 1));
|
||||
pullableEdge = LEFT;
|
||||
clickOverlayToClose = false;
|
||||
|
||||
var d1 = new LayoutGroup();
|
||||
var vl = new VerticalLayout();
|
||||
vl.setPadding(10);
|
||||
@@ -40,8 +44,6 @@ class MainDrawer extends Drawer {
|
||||
});
|
||||
d1.addChild(closeDrawerButton);
|
||||
|
||||
overlaySkin = new RectangleSkin(SolidColor( Constants.HERO_COLOR, 1));
|
||||
|
||||
drawer = d1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
package view;
|
||||
|
||||
import openfl.text.TextFormat;
|
||||
import model.AppModelLocator;
|
||||
import feathers.controls.Label;
|
||||
import openfl.Assets;
|
||||
import openfl.text.Font;
|
||||
import openfl.display.Bitmap;
|
||||
import openfl.display.LoaderInfo;
|
||||
import lime.app.Event;
|
||||
import openfl.net.URLRequest;
|
||||
import openfl.display.Loader;
|
||||
import feathers.controls.Button;
|
||||
import feathers.controls.Drawer;
|
||||
import feathers.controls.LayoutGroup;
|
||||
@@ -9,12 +19,18 @@ import feathers.layout.VerticalLayout;
|
||||
import feathers.skins.RectangleSkin;
|
||||
import model.Constants;
|
||||
import t9.util.ColorTraces.*;
|
||||
import openfl.events.Event;
|
||||
|
||||
class RiderCardDrawer extends Drawer {
|
||||
|
||||
public static final CLOSE:String = "close";
|
||||
public static final OPEN:String = "open";
|
||||
|
||||
private var model:AppModelLocator;
|
||||
private final borderPadding:Int = 10;
|
||||
private var tf1:TextFormat;
|
||||
private var tf2:TextFormat;
|
||||
|
||||
private var closeDrawerButton:Button;
|
||||
|
||||
public function new() {
|
||||
@@ -25,25 +41,64 @@ class RiderCardDrawer extends Drawer {
|
||||
override private function initialize():Void {
|
||||
super.initialize();
|
||||
|
||||
// Text Styling
|
||||
//var fnt:Font = Assets.getFont(Constants.MONTSERRAT_MEDIUM_500);
|
||||
//tf1 = new TextFormat(fnt.fontName, 12, Constants.MAIN_COLOR1);
|
||||
//tf2 = new TextFormat(Assets.getFont(Constants.MONTSERRAT_BOLD_700).fontName, 14, Constants.MAIN_COLOR1);
|
||||
|
||||
model = AppModelLocator.getInstance();
|
||||
|
||||
overlaySkin = new RectangleSkin(SolidColor( Constants.MAIN_COLOR3, 1));
|
||||
pullableEdge = TOP;
|
||||
clickOverlayToClose = false;
|
||||
animateOpenedProperty = false; // Doesn't seems to work
|
||||
|
||||
var d1 = new LayoutGroup();
|
||||
var vl = new VerticalLayout();
|
||||
vl.setPadding(10);
|
||||
vl.setPadding(borderPadding);
|
||||
vl.horizontalAlign = LEFT;
|
||||
vl.verticalAlign = TOP;
|
||||
d1.layout = vl;
|
||||
|
||||
// close button
|
||||
closeDrawerButton = new Button();
|
||||
closeDrawerButton.text = "Close Drawer";
|
||||
closeDrawerButton.addEventListener(TriggerEvent.TRIGGER, (event) -> {
|
||||
opened = false;
|
||||
//opened = false;
|
||||
closeDrawer();
|
||||
});
|
||||
|
||||
d1.addChild(closeDrawerButton);
|
||||
|
||||
overlaySkin = new RectangleSkin(SolidColor( Constants.HERO_COLOR, 1));
|
||||
// profile picture
|
||||
var l:Loader = new Loader();
|
||||
l.contentLoaderInfo.addEventListener (Event.COMPLETE, onPPLoadComplete);
|
||||
l.load(new URLRequest("https://lepetittrot.com/lptcm/assets/profile-pictures/pp512/pp_test_512.jpg"));
|
||||
d1.addChild(l);
|
||||
|
||||
// Name label
|
||||
var nl:Label = new Label();
|
||||
nl.text = "zozo 3000";
|
||||
// TODO trouver un moyen pour mettre à jour tous les champs de ce composant (binding ?)
|
||||
//nl.text = model.selectedRider.name;
|
||||
//nl.embedFonts = true;
|
||||
//nl.textFormat = tf1;
|
||||
d1.addChild(nl);
|
||||
|
||||
|
||||
|
||||
drawer = d1;
|
||||
}
|
||||
|
||||
private function onPPLoadComplete(e:Event) {
|
||||
|
||||
var l:Loader = cast(e.currentTarget, LoaderInfo).loader;
|
||||
var bmp:Bitmap = e.currentTarget.content;
|
||||
bmp.smoothing = true;
|
||||
l.content.width = l.content.height = width - (borderPadding * 2);
|
||||
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package view;
|
||||
|
||||
import control.RiderSelecEvent;
|
||||
import control.RiderSelectEvent;
|
||||
import feathers.events.ListViewEvent;
|
||||
import feathers.events.TriggerEvent;
|
||||
import feathers.skins.RectangleSkin;
|
||||
@@ -76,6 +76,7 @@ class RidersList extends ListView {
|
||||
};
|
||||
|
||||
recycler.reset = (itemRenderer:ItemRenderer, state:ListViewItemState) -> {
|
||||
// TODO
|
||||
/*var label = cast(itemRenderer.getChildByName("label"), Label);
|
||||
var loader = cast(itemRenderer.getChildByName("loader"), AssetLoader);
|
||||
label.text = "";
|
||||
@@ -102,7 +103,7 @@ class RidersList extends ListView {
|
||||
|
||||
// broadcast a cairngorm event that contains the selectedItem from the List
|
||||
var riderVO:RiderVO = cast(e.state.data, RiderVO);
|
||||
var rse:RiderSelecEvent = new RiderSelecEvent(riderVO);
|
||||
var rse:RiderSelectEvent = new RiderSelectEvent(riderVO);
|
||||
CairngormEventDispatcher.getInstance().dispatchEvent(rse);
|
||||
//trace(riderVO.firstName);
|
||||
//clearSelectedRider();
|
||||
|
||||
Reference in New Issue
Block a user