import haxe.macro.Expr.Case; import openfl.events.Event; import control.NekoDrawerEvent; import com.adobe.cairngorm.control.CairngormEvent; import components.NekoDrawer; import feathers.controls.Drawer; import control.AppController; import business.Services; import model.AppModelLocator; import com.adobe.cairngorm.control.CairngormEventDispatcher; import control.LoadRidersEvent; import feathers.events.FeathersEvent; import feathers.layout.VerticalAlign; import components.NekoRectangle; import feathers.controls.Application; import feathers.controls.Label; import feathers.controls.LayoutGroup; import feathers.controls.Panel; import feathers.layout.AnchorLayout; import feathers.layout.AnchorLayoutData; import feathers.text.TextFormat; import model.Constants; import openfl.Assets; import openfl.text.Font; import t9.util.ColorTraces.*; import view.MainPanel; class LPTCManager2026 extends Application { private var model:AppModelLocator; private var services:Services; private var appController:AppController; private var mainPanel:MainPanel; private var dr:NekoDrawer; // private var nav:StackNavigator; public function new() { super(); model = AppModelLocator.getInstance(); services = new Services(); appController = new AppController(); addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete); } override private function initialize():Void { super.initialize(); stage.displayState = NORMAL; stage.scaleMode = NO_SCALE; mainPanel = new MainPanel(); addChild(mainPanel); dr = new NekoDrawer(); addChild(dr); model.addEventListener(NekoDrawerEvent.DRAWER_STATE_CHANGE, onDrawerStateChange); /*mainPanel = new Panel(); mainPanel.autoSizeMode = STAGE; mainPanel.backgroundSkin = new NekoRectangle(Constants.MAIN_COLOR3); // ############################################################################################# HEADER var header = new LayoutGroup(); header.autoSizeMode = CONTENT; header.backgroundSkin = new NekoRectangle(Constants.HERO_COLOR, 0, 0, Std.int(stage.stageWidth * Constants.MAIN_HEADER_WIDTH_RATIO), Std.int(stage.stageHeight * Constants.MAIN_HEADER_HEIGHT_RATIO)); header.variant = LayoutGroup.VARIANT_TOOL_BAR; header.layout = new AnchorLayout(); var title = new Label(); title.backgroundSkin = new NekoRectangle(Constants.ACCENT_COLOR2, 0, 0, 200, 80); title.verticalAlign = VerticalAlign.MIDDLE; title.text = "Header"; title.embedFonts = true; var fnt:Font = Assets.getFont(Constants.MONTSERRAT_MEDIUM_500); var tf:TextFormat = new TextFormat(fnt.fontName, Std.int(stage.stageHeight * Constants.MAIN_HEADER_HEIGHT_RATIO * .1), Constants.MAIN_COLOR3); title.textFormat = tf; title.variant = Label.VARIANT_HEADING; title.layoutData = AnchorLayoutData.center(); header.addChild(title); mainPanel.header = header; // ############################################################################################# FOOTER var footer = new LayoutGroup(); footer.autoSizeMode = CONTENT; footer.backgroundSkin = new NekoRectangle(Constants.MAIN_COLOR2, 0, 0, stage.stageWidth, Std.int(stage.stageHeight * 10 / 100)); footer.variant = LayoutGroup.VARIANT_TOOL_BAR; footer.layout = new AnchorLayout(); var title = new Label(); title.text = "Footer"; //title.embedFonts = true; title.variant = Label.VARIANT_HEADING; title.layoutData = AnchorLayoutData.center(); footer.addChild(title); mainPanel.footer = footer; addChild(mainPanel);*/ // nav = new StackNavigator(); traceBlue(this + " --> initialize()"); } private function loadRiders():Void { traceGreen(this + " --> loadRiders()"); var cgEvent:LoadRidersEvent = new LoadRidersEvent(); CairngormEventDispatcher.getInstance().dispatchEvent(cgEvent); } private function onCreationComplete(event:FeathersEvent):Void { traceBlue("Application --> onCreationComplete()"); loadRiders(); } private function onDrawerStateChange(e:Event):Void { switch (model.drawerState) { case NekoDrawer.OPEN : dr.openDrawer(); case NekoDrawer.CLOSE : dr.closeDrawer(); default : dr.closeDrawer(); } } }