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 openfl.system.Security;
|
||||||
import business.Services;
|
import business.Services;
|
||||||
import com.adobe.cairngorm.control.CairngormEventDispatcher;
|
import com.adobe.cairngorm.control.CairngormEventDispatcher;
|
||||||
@@ -18,6 +19,7 @@ class LPTCManager2026 extends Application {
|
|||||||
private var appController:AppController;
|
private var appController:AppController;
|
||||||
private var mainPanel:MainPanel;
|
private var mainPanel:MainPanel;
|
||||||
private var md:MainDrawer;
|
private var md:MainDrawer;
|
||||||
|
private var rcd:RiderCardDrawer;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
super();
|
super();
|
||||||
@@ -41,7 +43,11 @@ class LPTCManager2026 extends Application {
|
|||||||
md = new MainDrawer();
|
md = new MainDrawer();
|
||||||
addChild(md);
|
addChild(md);
|
||||||
|
|
||||||
|
rcd = new RiderCardDrawer();
|
||||||
|
addChild(rcd);
|
||||||
|
|
||||||
model.addEventListener(AppModelLocator.DRAWER_STATE_CHANGE, onDrawerStateChange);
|
model.addEventListener(AppModelLocator.DRAWER_STATE_CHANGE, onDrawerStateChange);
|
||||||
|
model.addEventListener(AppModelLocator.RIDER_SELECT_CHANGE, onRiderSelectChange);
|
||||||
|
|
||||||
|
|
||||||
//traceBlue(this + " --> initialize()");
|
//traceBlue(this + " --> initialize()");
|
||||||
@@ -53,12 +59,17 @@ class LPTCManager2026 extends Application {
|
|||||||
CairngormEventDispatcher.getInstance().dispatchEvent(cgEvent);
|
CairngormEventDispatcher.getInstance().dispatchEvent(cgEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function onCreationComplete(event:FeathersEvent):Void {
|
private function onRiderSelectChange(event:Event):Void {
|
||||||
traceBlue("Application --> onCreationComplete()");
|
trace(model.selectedRider.name);
|
||||||
loadRiders();
|
rcd.openDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function onDrawerStateChange(e:Event):Void {
|
private function onDrawerStateChange(e:Event):Void {
|
||||||
model.drawerIsOpen ? md.openDrawer() : md.closeDrawer();
|
model.drawerIsOpen ? md.openDrawer() : md.closeDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function onCreationComplete(event:FeathersEvent):Void {
|
||||||
|
traceBlue("Application --> onCreationComplete()");
|
||||||
|
loadRiders();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
package command;
|
package command;
|
||||||
|
|
||||||
import model.Constants;
|
|
||||||
import com.adobe.cairngorm.commands.ICommand;
|
import com.adobe.cairngorm.commands.ICommand;
|
||||||
import com.adobe.cairngorm.control.CairngormEvent;
|
import com.adobe.cairngorm.control.CairngormEvent;
|
||||||
|
import control.RiderSelectEvent;
|
||||||
import model.AppModelLocator;
|
import model.AppModelLocator;
|
||||||
import t9.util.ColorTraces.*;
|
|
||||||
|
|
||||||
class RiderSelectCommand implements ICommand {
|
class RiderSelectCommand implements ICommand {
|
||||||
private var model = AppModelLocator.getInstance();
|
private var model = AppModelLocator.getInstance();
|
||||||
|
|
||||||
public function execute(e:CairngormEvent):Void {
|
public function execute(ce:CairngormEvent):Void {
|
||||||
trace(e.data);
|
// 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);
|
//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://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://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);
|
l.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadComplete);
|
||||||
addChild(l);
|
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 VIEWING_CHANGE:String = "viewingChange";
|
||||||
public static final RIDERS_LIST_DP_CHANGE:String = "ridersListDPChange";
|
public static final RIDERS_LIST_DP_CHANGE:String = "ridersListDPChange";
|
||||||
public static final DRAWER_STATE_CHANGE:String = "drawerStateChange";
|
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
|
// this instance stores a static reference to itself
|
||||||
private static var model:AppModelLocator;
|
private static var model:AppModelLocator;
|
||||||
@@ -50,7 +50,7 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
|
|||||||
|
|
||||||
private function set_selectedRider(pRider:RiderVO):RiderVO {
|
private function set_selectedRider(pRider:RiderVO):RiderVO {
|
||||||
selectedRider = pRider;
|
selectedRider = pRider;
|
||||||
dispatchEvent(new Event(AppModelLocator.RIDER_SELECT));
|
dispatchEvent(new Event(AppModelLocator.RIDER_SELECT_CHANGE));
|
||||||
return selectedRider;
|
return selectedRider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ class MainDrawer extends Drawer {
|
|||||||
override private function initialize():Void {
|
override private function initialize():Void {
|
||||||
super.initialize();
|
super.initialize();
|
||||||
|
|
||||||
|
overlaySkin = new RectangleSkin(SolidColor( Constants.HERO_COLOR, 1));
|
||||||
|
pullableEdge = LEFT;
|
||||||
|
clickOverlayToClose = false;
|
||||||
|
|
||||||
var d1 = new LayoutGroup();
|
var d1 = new LayoutGroup();
|
||||||
var vl = new VerticalLayout();
|
var vl = new VerticalLayout();
|
||||||
vl.setPadding(10);
|
vl.setPadding(10);
|
||||||
@@ -40,8 +44,6 @@ class MainDrawer extends Drawer {
|
|||||||
});
|
});
|
||||||
d1.addChild(closeDrawerButton);
|
d1.addChild(closeDrawerButton);
|
||||||
|
|
||||||
overlaySkin = new RectangleSkin(SolidColor( Constants.HERO_COLOR, 1));
|
|
||||||
|
|
||||||
drawer = d1;
|
drawer = d1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,15 @@
|
|||||||
package view;
|
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.Button;
|
||||||
import feathers.controls.Drawer;
|
import feathers.controls.Drawer;
|
||||||
import feathers.controls.LayoutGroup;
|
import feathers.controls.LayoutGroup;
|
||||||
@@ -9,12 +19,18 @@ import feathers.layout.VerticalLayout;
|
|||||||
import feathers.skins.RectangleSkin;
|
import feathers.skins.RectangleSkin;
|
||||||
import model.Constants;
|
import model.Constants;
|
||||||
import t9.util.ColorTraces.*;
|
import t9.util.ColorTraces.*;
|
||||||
|
import openfl.events.Event;
|
||||||
|
|
||||||
class RiderCardDrawer extends Drawer {
|
class RiderCardDrawer extends Drawer {
|
||||||
|
|
||||||
public static final CLOSE:String = "close";
|
public static final CLOSE:String = "close";
|
||||||
public static final OPEN:String = "open";
|
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;
|
private var closeDrawerButton:Button;
|
||||||
|
|
||||||
public function new() {
|
public function new() {
|
||||||
@@ -25,25 +41,64 @@ class RiderCardDrawer extends Drawer {
|
|||||||
override private function initialize():Void {
|
override private function initialize():Void {
|
||||||
super.initialize();
|
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 d1 = new LayoutGroup();
|
||||||
var vl = new VerticalLayout();
|
var vl = new VerticalLayout();
|
||||||
vl.setPadding(10);
|
vl.setPadding(borderPadding);
|
||||||
vl.horizontalAlign = LEFT;
|
vl.horizontalAlign = LEFT;
|
||||||
vl.verticalAlign = TOP;
|
vl.verticalAlign = TOP;
|
||||||
d1.layout = vl;
|
d1.layout = vl;
|
||||||
|
|
||||||
|
// close button
|
||||||
closeDrawerButton = new Button();
|
closeDrawerButton = new Button();
|
||||||
closeDrawerButton.text = "Close Drawer";
|
closeDrawerButton.text = "Close Drawer";
|
||||||
closeDrawerButton.addEventListener(TriggerEvent.TRIGGER, (event) -> {
|
closeDrawerButton.addEventListener(TriggerEvent.TRIGGER, (event) -> {
|
||||||
opened = false;
|
//opened = false;
|
||||||
|
closeDrawer();
|
||||||
});
|
});
|
||||||
|
|
||||||
d1.addChild(closeDrawerButton);
|
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;
|
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 {
|
private function onCreationComplete(event:FeathersEvent):Void {
|
||||||
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
|
traceBlue(this + " --> onCreationComplete() - w: " + width + " h: " + height );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package view;
|
package view;
|
||||||
|
|
||||||
import control.RiderSelecEvent;
|
import control.RiderSelectEvent;
|
||||||
import feathers.events.ListViewEvent;
|
import feathers.events.ListViewEvent;
|
||||||
import feathers.events.TriggerEvent;
|
import feathers.events.TriggerEvent;
|
||||||
import feathers.skins.RectangleSkin;
|
import feathers.skins.RectangleSkin;
|
||||||
@@ -76,6 +76,7 @@ class RidersList extends ListView {
|
|||||||
};
|
};
|
||||||
|
|
||||||
recycler.reset = (itemRenderer:ItemRenderer, state:ListViewItemState) -> {
|
recycler.reset = (itemRenderer:ItemRenderer, state:ListViewItemState) -> {
|
||||||
|
// TODO
|
||||||
/*var label = cast(itemRenderer.getChildByName("label"), Label);
|
/*var label = cast(itemRenderer.getChildByName("label"), Label);
|
||||||
var loader = cast(itemRenderer.getChildByName("loader"), AssetLoader);
|
var loader = cast(itemRenderer.getChildByName("loader"), AssetLoader);
|
||||||
label.text = "";
|
label.text = "";
|
||||||
@@ -102,7 +103,7 @@ class RidersList extends ListView {
|
|||||||
|
|
||||||
// broadcast a cairngorm event that contains the selectedItem from the List
|
// broadcast a cairngorm event that contains the selectedItem from the List
|
||||||
var riderVO:RiderVO = cast(e.state.data, RiderVO);
|
var riderVO:RiderVO = cast(e.state.data, RiderVO);
|
||||||
var rse:RiderSelecEvent = new RiderSelecEvent(riderVO);
|
var rse:RiderSelectEvent = new RiderSelectEvent(riderVO);
|
||||||
CairngormEventDispatcher.getInstance().dispatchEvent(rse);
|
CairngormEventDispatcher.getInstance().dispatchEvent(rse);
|
||||||
//trace(riderVO.firstName);
|
//trace(riderVO.firstName);
|
||||||
//clearSelectedRider();
|
//clearSelectedRider();
|
||||||
|
|||||||
Reference in New Issue
Block a user