Drawer related refactoring :
- removed NekoDrawerEvent Button related refactoring : - removed NekoIconButton
This commit is contained in:
+12
-83
@@ -1,49 +1,31 @@
|
||||
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.AppController;
|
||||
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 feathers.events.FeathersEvent;
|
||||
import model.AppModelLocator;
|
||||
import openfl.events.Event;
|
||||
import t9.util.ColorTraces.*;
|
||||
import view.MainDrawer;
|
||||
import view.MainPanel;
|
||||
|
||||
class LPTCManager2026 extends Application {
|
||||
|
||||
private var model:AppModelLocator;
|
||||
private var services:Services;
|
||||
private var services:Services;
|
||||
private var appController:AppController;
|
||||
private var mainPanel:MainPanel;
|
||||
private var dr:NekoDrawer;
|
||||
private var dr:MainDrawer;
|
||||
|
||||
// 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 {
|
||||
@@ -55,60 +37,12 @@ class LPTCManager2026 extends Application {
|
||||
mainPanel = new MainPanel();
|
||||
addChild(mainPanel);
|
||||
|
||||
dr = new NekoDrawer();
|
||||
dr = new MainDrawer();
|
||||
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);
|
||||
model.addEventListener(AppModelLocator.DRAWER_STATE_CHANGE, onDrawerStateChange);
|
||||
|
||||
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()");
|
||||
//traceBlue(this + " --> initialize()");
|
||||
}
|
||||
|
||||
private function loadRiders():Void {
|
||||
@@ -122,12 +56,7 @@ class LPTCManager2026 extends Application {
|
||||
loadRiders();
|
||||
}
|
||||
|
||||
private function onDrawerStateChange(e:Event):Void
|
||||
{
|
||||
switch (model.drawerState) {
|
||||
case NekoDrawer.OPEN : dr.openDrawer();
|
||||
case NekoDrawer.CLOSE : dr.closeDrawer();
|
||||
default : dr.closeDrawer();
|
||||
}
|
||||
private function onDrawerStateChange(e:Event):Void {
|
||||
model.drawerIsOpen ? dr.openDrawer() : dr.closeDrawer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package command;
|
||||
|
||||
import model.Constants;
|
||||
import com.adobe.cairngorm.commands.ICommand;
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import control.NekoDrawerEvent;
|
||||
import model.AppModelLocator;
|
||||
import t9.util.ColorTraces.*;
|
||||
|
||||
class NekoDrawerCommand implements ICommand {
|
||||
class CloseDrawerCommand implements ICommand {
|
||||
private var model = AppModelLocator.getInstance();
|
||||
|
||||
public function execute(e:CairngormEvent):Void {
|
||||
var e:NekoDrawerEvent = cast(e, NekoDrawerEvent);
|
||||
model.drawerState = e.drawerState;
|
||||
model.drawerIsOpen = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package command;
|
||||
|
||||
import model.Constants;
|
||||
import com.adobe.cairngorm.commands.ICommand;
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import model.AppModelLocator;
|
||||
import t9.util.ColorTraces.*;
|
||||
|
||||
class OpenDrawerCommand implements ICommand {
|
||||
private var model = AppModelLocator.getInstance();
|
||||
|
||||
public function execute(e:CairngormEvent):Void {
|
||||
model.drawerIsOpen = true;
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
package components;
|
||||
|
||||
import feathers.controls.Button;
|
||||
import feathers.controls.Label;
|
||||
import feathers.events.FeathersEvent;
|
||||
import format.SVG;
|
||||
import model.Constants;
|
||||
import openfl.Assets;
|
||||
import openfl.display.Shape;
|
||||
import openfl.geom.ColorTransform;
|
||||
import openfl.text.Font;
|
||||
import openfl.text.TextFormat;
|
||||
import t9.util.ColorTraces.*;
|
||||
|
||||
class NekoIconButton extends Button {
|
||||
|
||||
private var svgSkinPath:String;
|
||||
private var w:Int;
|
||||
private var h:Int;
|
||||
private var normalStateColor:Int;
|
||||
private var selectedStateColor:Int;
|
||||
private var disabledStateColor:Int;
|
||||
private var backgroundColor:Int;
|
||||
private var t:String;
|
||||
|
||||
private var iconShape:Shape;
|
||||
private var lb1:Label;
|
||||
|
||||
public function new(pSvgSkinPath:String,
|
||||
pWidth:Int = 100,
|
||||
pHeight:Int = 100,
|
||||
pNormalStateColor:Int = 0x000000,
|
||||
pSelectedStateColor:Int = 0xFF0000,
|
||||
pDisabledStateColor:Int = 0xAAAAAA,
|
||||
pBackgroundColor:Int = null,
|
||||
pText:String = null) {
|
||||
super();
|
||||
|
||||
svgSkinPath = pSvgSkinPath;
|
||||
w = pWidth;
|
||||
h = pHeight;
|
||||
normalStateColor = pNormalStateColor;
|
||||
selectedStateColor = pSelectedStateColor;
|
||||
disabledStateColor = pDisabledStateColor;
|
||||
backgroundColor = pBackgroundColor;
|
||||
t = pText;
|
||||
|
||||
addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete);
|
||||
|
||||
if(pBackgroundColor == null){
|
||||
backgroundSkin = new NekoRectangle(0xFF0000, 0, 0, pWidth, pHeight);
|
||||
backgroundSkin.alpha = 0;
|
||||
} else {
|
||||
backgroundSkin = new NekoRectangle(pBackgroundColor, 0, 0, pWidth, pHeight);
|
||||
}
|
||||
|
||||
iconShape = new Shape();
|
||||
new SVG(pSvgSkinPath).render(iconShape.graphics);
|
||||
iconShape.width = pWidth;
|
||||
iconShape.height = pHeight;
|
||||
|
||||
var ct = new ColorTransform();
|
||||
ct.color = pNormalStateColor;
|
||||
iconShape.transform.colorTransform = ct;
|
||||
addChild(iconShape);
|
||||
|
||||
if(pText != null){
|
||||
lb1.text = Constants.MENU_ITEM_0_STRING;
|
||||
lb1.embedFonts = true;
|
||||
var fnt:Font = Assets.getFont(Constants.MONTSERRAT_LIGHT_300);
|
||||
lb1.textFormat = new TextFormat(fnt.fontName, 20, Constants.BUTTON_NORMAL_STATE_COLOR);
|
||||
addChild(lb1);
|
||||
}
|
||||
}
|
||||
|
||||
override private function initialize():Void {
|
||||
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
traceBlue(this + " --> onCreationComplete()");
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,21 @@
|
||||
package control;
|
||||
|
||||
import command.NekoDrawerCommand;
|
||||
import components.NekoDrawer;
|
||||
import command.CloseDrawerCommand;
|
||||
import command.LoadRidersCommand;
|
||||
import command.OpenDrawerCommand;
|
||||
import com.adobe.cairngorm.control.FrontController;
|
||||
|
||||
class AppController extends FrontController {
|
||||
|
||||
public static final LOAD_RIDERS_EVENT = "loadRidersEvent";
|
||||
public static final NEKO_DRAWER_EVENT = "nekoDrawerEvent";
|
||||
public static final OPEN_DRAWER_EVENT = "openDrawerEvent";
|
||||
public static final CLOSE_DRAWER_EVENT = "closeDrawerEvent";
|
||||
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
addCommand(AppController.LOAD_RIDERS_EVENT, LoadRidersCommand);
|
||||
addCommand(AppController.NEKO_DRAWER_EVENT, NekoDrawerCommand);
|
||||
addCommand(AppController.OPEN_DRAWER_EVENT, OpenDrawerCommand);
|
||||
addCommand(AppController.CLOSE_DRAWER_EVENT, CloseDrawerCommand);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package control;
|
||||
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
|
||||
class NekoDrawerEvent extends CairngormEvent {
|
||||
|
||||
public static final DRAWER_STATE_CHANGE:String = "drawerStateChange";
|
||||
public var drawerState:String;
|
||||
|
||||
public function new(pDrawerState:String) {
|
||||
super(AppController.NEKO_DRAWER_EVENT);
|
||||
drawerState = pDrawerState;
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,19 @@
|
||||
package model;
|
||||
|
||||
import components.NekoDrawer;
|
||||
import control.NekoDrawerEvent;
|
||||
import vo.Rider;
|
||||
import feathers.data.ArrayCollection;
|
||||
import openfl.errors.Error;
|
||||
import openfl.events.Event;
|
||||
import com.adobe.cairngorm.model.IModelLocator;
|
||||
import openfl.events.EventDispatcher;
|
||||
import t9.util.ColorTraces.*;
|
||||
|
||||
class AppModelLocator extends EventDispatcher implements IModelLocator {
|
||||
|
||||
// events constants
|
||||
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 DRAWER_STATE_CHANGE:String = "drawerStateChange";
|
||||
|
||||
|
||||
// this instance stores a static reference to itself
|
||||
@@ -36,12 +35,12 @@ class AppModelLocator extends EventDispatcher implements IModelLocator {
|
||||
}
|
||||
|
||||
// at startup, the drawer is closed
|
||||
public var drawerState(default, set):String = NekoDrawer.CLOSE;
|
||||
public var drawerIsOpen(default, set):Bool = false;
|
||||
|
||||
private function set_drawerState(pState:String):String {
|
||||
drawerState = pState;
|
||||
dispatchEvent(new Event(NekoDrawerEvent.DRAWER_STATE_CHANGE));
|
||||
return drawerState;
|
||||
private function set_drawerIsOpen(pIsOpen:Bool):Bool {
|
||||
drawerIsOpen = pIsOpen;
|
||||
dispatchEvent(new Event(AppModelLocator.DRAWER_STATE_CHANGE));
|
||||
return drawerIsOpen;
|
||||
}
|
||||
|
||||
// rider object contains uid/passwd
|
||||
|
||||
@@ -21,10 +21,15 @@ class Constants {
|
||||
public static final MONTSERRAT_MEDIUM_500:String = "MontserratMedium500";
|
||||
public static final MONTSERRAT_BOLD_700:String = "MontserratBold700";
|
||||
|
||||
// UI Proportions against satge dimmentions
|
||||
// UI Proportions against stage dimmensions
|
||||
public static final MAIN_HEADER_WIDTH_RATIO:Float = 1;
|
||||
public static final MAIN_HEADER_HEIGHT_RATIO:Float = 0.1;
|
||||
|
||||
// Event strings
|
||||
public static final OPEN_DRAWER:String = "openDrawer";
|
||||
public static final CLOSE_DRAWER:String = "closeDrawer";
|
||||
public static final DRAWER_IS_OPEN:Bool = false;
|
||||
|
||||
// Strings
|
||||
public static final MENU_ITEM_0_STRING:String = "Cavalier·e·s";
|
||||
public static final MENU_ITEM_1_STRING:String = "Licences FFE";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package components;
|
||||
package view;
|
||||
|
||||
import components.NekoRectangle;
|
||||
import model.Constants;
|
||||
import feathers.events.TriggerEvent;
|
||||
import feathers.controls.Button;
|
||||
@@ -9,7 +10,7 @@ import feathers.events.FeathersEvent;
|
||||
import t9.util.ColorTraces.*;
|
||||
import feathers.controls.Drawer;
|
||||
|
||||
class NekoDrawer extends Drawer {
|
||||
class MainDrawer extends Drawer {
|
||||
|
||||
public static final CLOSE:String = "close";
|
||||
public static final OPEN:String = "open";
|
||||
@@ -3,7 +3,6 @@ package view;
|
||||
import openfl.display.Stage;
|
||||
import haxe.CallStack.StackItem;
|
||||
import openfl.Assets;
|
||||
import components.NekoIconButton;
|
||||
import feathers.layout.HorizontalLayout;
|
||||
import model.Constants;
|
||||
import components.NekoRectangle;
|
||||
@@ -13,9 +12,6 @@ import t9.util.ColorTraces.*;
|
||||
|
||||
class MainFooter extends LayoutGroup {
|
||||
|
||||
private var ridersButton:NekoIconButton;
|
||||
private var ffeLicencesButton:NekoIconButton;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
|
||||
@@ -40,28 +36,6 @@ class MainFooter extends LayoutGroup {
|
||||
l.verticalAlign = MIDDLE;
|
||||
layout = l;
|
||||
|
||||
// Drawer button
|
||||
ridersButton = new NekoIconButton(Assets.getText("vector/rider_icon_black.svg"),
|
||||
40,
|
||||
40,
|
||||
Constants.BUTTON_NORMAL_STATE_COLOR,
|
||||
Constants.BUTTON_SELECTED_STATE_COLOR,
|
||||
Constants.BUTTON_DISABLED_STATE_COLOR,
|
||||
Constants.MENU_ITEM_0_STRING);
|
||||
//ridersButton.addEventListener(TriggerEvent.TRIGGER, onRidersBtnPress);
|
||||
addChild(ridersButton);
|
||||
|
||||
// Drawer button
|
||||
ffeLicencesButton = new NekoIconButton(Assets.getText("vector/certificate_icon_black.svg"),
|
||||
40,
|
||||
40,
|
||||
Constants.BUTTON_NORMAL_STATE_COLOR,
|
||||
Constants.BUTTON_SELECTED_STATE_COLOR,
|
||||
Constants.BUTTON_DISABLED_STATE_COLOR,
|
||||
Constants.MENU_ITEM_1_STRING);
|
||||
//ffeLicencesButton.addEventListener(TriggerEvent.TRIGGER, onFfeLicencesButtonPress);
|
||||
addChild(ffeLicencesButton);
|
||||
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
|
||||
+17
-22
@@ -1,10 +1,10 @@
|
||||
package view;
|
||||
|
||||
import control.AppController;
|
||||
import com.adobe.cairngorm.control.CairngormEvent;
|
||||
import com.adobe.cairngorm.control.CairngormEventDispatcher;
|
||||
import control.NekoDrawerEvent;
|
||||
import components.NekoDrawer;
|
||||
import components.NekoIconButton;
|
||||
import components.NekoRectangle;
|
||||
import feathers.controls.Button;
|
||||
import feathers.controls.Label;
|
||||
import feathers.controls.LayoutGroup;
|
||||
import feathers.events.FeathersEvent;
|
||||
@@ -18,8 +18,8 @@ import t9.util.ColorTraces.*;
|
||||
|
||||
class MainHeader extends LayoutGroup {
|
||||
|
||||
private var lb1:Label;
|
||||
private var drawerBtn:NekoIconButton;
|
||||
private var btn1:Button;
|
||||
private var lbl1:Label;
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
@@ -50,26 +50,21 @@ class MainHeader extends LayoutGroup {
|
||||
l.verticalAlign = MIDDLE;
|
||||
layout = l;
|
||||
|
||||
// Drawer button
|
||||
drawerBtn = new NekoIconButton(Assets.getText("vector/menu_icon_black.svg"),
|
||||
Std.int(headerHeight * .5),
|
||||
Std.int(headerHeight * .5),
|
||||
Constants.BUTTON_INVERTED_NORMAL_STATE_COLOR);
|
||||
drawerBtn.addEventListener(TriggerEvent.TRIGGER, onDBtnPress);
|
||||
addChild(drawerBtn);
|
||||
|
||||
|
||||
// Menu button
|
||||
btn1 = new Button("menu", onMenuButtonPress);
|
||||
addChild(btn1);
|
||||
|
||||
// Title label
|
||||
lb1 = new Label();
|
||||
lbl1 = new Label();
|
||||
//lb1.backgroundSkin = new NekoRectangle(Constants.ACCENT_COLOR2);
|
||||
|
||||
//lb1.verticalAlign = VerticalAlign.TOP;
|
||||
lb1.text = Constants.MENU_ITEM_0_STRING;
|
||||
lb1.embedFonts = true;
|
||||
lbl1.text = Constants.MENU_ITEM_0_STRING;
|
||||
lbl1.embedFonts = true;
|
||||
var fnt:Font = Assets.getFont(Constants.MONTSERRAT_MEDIUM_500);
|
||||
|
||||
lb1.textFormat = new TextFormat(fnt.fontName, Std.int(headerHeight * .4), Constants.MAIN_COLOR3);
|
||||
addChild(lb1);
|
||||
lbl1.textFormat = new TextFormat(fnt.fontName, Std.int(headerHeight * .4), Constants.MAIN_COLOR3);
|
||||
addChild(lbl1);
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
@@ -77,8 +72,8 @@ class MainHeader extends LayoutGroup {
|
||||
}
|
||||
|
||||
|
||||
function onDBtnPress(e:TriggerEvent):Void {
|
||||
var ce:NekoDrawerEvent = new NekoDrawerEvent(NekoDrawer.OPEN);
|
||||
CairngormEventDispatcher.getInstance().dispatchEvent(ce);
|
||||
function onMenuButtonPress(e:TriggerEvent):Void {
|
||||
var e:CairngormEvent = new CairngormEvent(AppController.OPEN_DRAWER_EVENT);
|
||||
CairngormEventDispatcher.getInstance().dispatchEvent(e);
|
||||
}
|
||||
}
|
||||
@@ -26,8 +26,8 @@ class MainPanel extends Panel {
|
||||
mh = new MainHeader();
|
||||
header = mh;
|
||||
|
||||
mf = new MainFooter();
|
||||
footer = mf;
|
||||
//mf = new MainFooter();
|
||||
//footer = mf;
|
||||
}
|
||||
|
||||
private function onCreationComplete(event:FeathersEvent):Void {
|
||||
|
||||
Reference in New Issue
Block a user