first try of drawer event chain

currently stuck in NekoDrawerCommand
TODO : extract the event from NekoDrawerCommand
This commit is contained in:
2025-11-19 14:48:54 +01:00
parent 28c36c699a
commit a6e2e7aa58
8 changed files with 125 additions and 18 deletions
+1 -1
View File
@@ -31,6 +31,6 @@
<!-- copies data/Employees.xml to output -->
<assets path="assets/data" rename="data" embed="false"/>
<assets path="assets/bitmaps" rename="bitmaps" embed="false"/>
<assets path="assets/bitmaps" rename="bitmaps" embed="true"/>
</project>
+15 -1
View File
@@ -1,3 +1,7 @@
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;
@@ -25,6 +29,7 @@ class LPTCManager2026 extends Application {
private var services:Services;
private var appController:AppController;
private var mainPanel:MainPanel;
private var dr:NekoDrawer;
// private var nav:StackNavigator;
@@ -48,6 +53,10 @@ class LPTCManager2026 extends Application {
mainPanel = new MainPanel();
addChild(mainPanel);
dr = new NekoDrawer();
dr.addEventListener(NekoDrawerEvent.STATUS_CHANGE, onDrawerStatusChange);
addChild(dr);
/*mainPanel = new Panel();
mainPanel.autoSizeMode = STAGE;
mainPanel.backgroundSkin = new NekoRectangle(Constants.MAIN_COLOR3);
@@ -106,7 +115,12 @@ class LPTCManager2026 extends Application {
}
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete()");
traceBlue("Application --> onCreationComplete()");
loadRiders();
}
private function onDrawerStatusChange(e:NekoDrawerEvent):Void
{
trace("ALO ? " + e.openDrawer);
}
}
+15
View File
@@ -0,0 +1,15 @@
package command;
import com.adobe.cairngorm.commands.ICommand;
import com.adobe.cairngorm.control.CairngormEvent;
import control.NekoDrawerEvent;
import model.AppModelLocator;
class NekoDrawerCommand implements ICommand {
private var model = AppModelLocator.getInstance();
public function execute(e:CairngormEvent):Void {
var e:NekoDrawerEvent = cast(e, NekoDrawerEvent);
//trace("OpenDrawer ? : " + e.openDrawer);
}
}
+57
View File
@@ -0,0 +1,57 @@
package components;
import feathers.events.TriggerEvent;
import feathers.controls.Button;
import feathers.layout.VerticalLayout;
import feathers.controls.LayoutGroup;
import feathers.events.FeathersEvent;
import t9.util.ColorTraces.*;
import feathers.controls.Drawer;
class NekoDrawer extends Drawer {
private var openDrawerButton:Button;
private var closeDrawerButton:Button;
private var coucou:Bool;
public function new() {
super();
addEventListener(FeathersEvent.CREATION_COMPLETE, onCreationComplete);
}
override private function initialize():Void {
super.initialize();
var c1 = new LayoutGroup();
var contentLayout = new VerticalLayout();
contentLayout.horizontalAlign = CENTER;
contentLayout.verticalAlign = MIDDLE;
c1.layout = contentLayout;
openDrawerButton = new Button();
openDrawerButton.text = "Open Drawer";
openDrawerButton.addEventListener(TriggerEvent.TRIGGER, (event) -> {
opened = true;
});
c1.addChild(openDrawerButton);
content = c1;
var d1 = new LayoutGroup();
var drawerLayout = new VerticalLayout();
drawerLayout.horizontalAlign = CENTER;
drawerLayout.verticalAlign = MIDDLE;
d1.layout = drawerLayout;
closeDrawerButton = new Button();
closeDrawerButton.text = "Close Drawer";
closeDrawerButton.addEventListener(TriggerEvent.TRIGGER, (event) -> {
opened = false;
});
d1.addChild(closeDrawerButton);
drawer = d1;
}
private function onCreationComplete(event:FeathersEvent):Void {
traceBlue(this + " --> onCreationComplete()");
}
}
+1 -3
View File
@@ -5,12 +5,10 @@ import openfl.display.BitmapData;
import feathers.controls.Button;
import t9.util.ColorTraces.*;
class NekoIconButton extends Button{
class NekoIconButton extends Button {
private var bmp:Bitmap;
public function new(pSkin:BitmapData, pX:Int = 0, pY:Int = 0, pWidth:Int = 100, pHeight:Int = 100) {
super();
bmp = new Bitmap(pSkin);
+4
View File
@@ -1,13 +1,17 @@
package control;
import command.NekoDrawerCommand;
import components.NekoDrawer;
import command.LoadRidersCommand;
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 function new() {
super();
addCommand(AppController.LOAD_RIDERS_EVENT, LoadRidersCommand);
addCommand(AppController.NEKO_DRAWER_EVENT, NekoDrawerCommand);
}
}
+14
View File
@@ -0,0 +1,14 @@
package control;
import com.adobe.cairngorm.control.CairngormEvent;
class NekoDrawerEvent extends CairngormEvent {
public static final STATUS_CHANGE:String = "statusChange";
public var openDrawer:Bool;
public function new(pOpenDrawer:Bool) {
super(AppController.NEKO_DRAWER_EVENT);
openDrawer = pOpenDrawer;
}
}
+8 -3
View File
@@ -1,5 +1,9 @@
package view;
import control.NekoDrawerEvent;
import components.NekoDrawer;
import com.adobe.cairngorm.control.CairngormEvent;
import com.adobe.cairngorm.control.CairngormEventDispatcher;
import components.NekoIconButton;
import openfl.display.Bitmap;
import feathers.events.TriggerEvent;
@@ -75,8 +79,9 @@ class MainHeader extends LayoutGroup {
traceBlue(this + " --> onCreationComplete()");
}
function onDBtnPress(event:TriggerEvent):Void {
var button = cast(event.currentTarget, Button);
trace("button triggered: " + button.text);
function onDBtnPress(e:TriggerEvent):Void {
//var button = cast(e.currentTarget, NekoIconButton);
var e = new NekoDrawerEvent(true);
CairngormEventDispatcher.getInstance().dispatchEvent(e);
}
}