draft booking scheduler page
This commit is contained in:
@@ -298,16 +298,21 @@ class HoverMenuState extends State<HoverMenu> {
|
||||
}
|
||||
}
|
||||
|
||||
var node = FocusNode();
|
||||
class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
||||
|
||||
|
||||
var node = FocusNode();
|
||||
bool isCtrl = false;
|
||||
@override
|
||||
void initState() {
|
||||
node.requestFocus();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
node.requestFocus();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (!widget.dashboard.isOpened && widget.onDashboardAlertOpened != null ) {
|
||||
@@ -331,7 +336,7 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
||||
} else {
|
||||
widget.dashboard.isOpened = true;
|
||||
}
|
||||
/// get dashboard position after first frame is drawn
|
||||
/// get dashboard positi(event is KeyDownEvent || event is KeyRepeatEvent) &&on after first frame is drawn
|
||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||
if (mounted) {
|
||||
final object = context.findRenderObject() as RenderBox?;
|
||||
@@ -348,41 +353,18 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
||||
if (kIsWeb) BrowserContextMenu.disableContextMenu();
|
||||
return KeyboardListener(
|
||||
focusNode: node,
|
||||
autofocus: true,
|
||||
onKeyEvent: (event) {
|
||||
bool change = false;
|
||||
/*if ((event is KeyDownEvent || event is KeyRepeatEvent) && event.logicalKey == LogicalKeyboardKey.arrowUp) {
|
||||
change = true;
|
||||
for (var el in widget.dashboard.elements) {
|
||||
if (el.isSelected) {
|
||||
el.position = Offset(el.position.dx, el.position.dy - 10);
|
||||
}
|
||||
}
|
||||
if (event.logicalKey == LogicalKeyboardKey.controlLeft) {
|
||||
isCtrl = event is KeyDownEvent || event is KeyRepeatEvent;
|
||||
}
|
||||
if ((event is KeyDownEvent || event is KeyRepeatEvent) && event.logicalKey == LogicalKeyboardKey.arrowDown) {
|
||||
change = true;
|
||||
for (var el in widget.dashboard.elements) {
|
||||
if (el.isSelected) {
|
||||
el.position = Offset(el.position.dx, el.position.dy + 10);
|
||||
}
|
||||
}
|
||||
if (event is KeyDownEvent || event.logicalKey == LogicalKeyboardKey.keyZ && isCtrl) {
|
||||
widget.dashboard.back();
|
||||
}
|
||||
if ((event is KeyDownEvent || event is KeyRepeatEvent) && event.logicalKey == LogicalKeyboardKey.arrowLeft) {
|
||||
change = true;
|
||||
for (var el in widget.dashboard.elements) {
|
||||
if (el.isSelected) {
|
||||
el.position = Offset(el.position.dx - 10, el.position.dy);
|
||||
}
|
||||
}
|
||||
if (event is KeyDownEvent || event.logicalKey == LogicalKeyboardKey.keyY && isCtrl) {
|
||||
widget.dashboard.forward();
|
||||
}
|
||||
if ((event is KeyDownEvent || event is KeyRepeatEvent) && event.logicalKey == LogicalKeyboardKey.arrowRight) {
|
||||
change = true;
|
||||
for (var el in widget.dashboard.elements) {
|
||||
if (el.isSelected) {
|
||||
el.position = Offset(el.position.dx + 10, el.position.dy);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
if (event is KeyDownEvent && event.logicalKey == LogicalKeyboardKey.add) {
|
||||
change = true;
|
||||
for (var el in widget.dashboard.elementSelected) {
|
||||
@@ -413,6 +395,7 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
||||
if (change) {
|
||||
DrawingArrow.instance.notifyListeners();
|
||||
widget.dashboard.chartKey.currentState?.setState(() { });
|
||||
node.requestFocus();
|
||||
}
|
||||
},
|
||||
child: ClipRect(
|
||||
@@ -455,7 +438,6 @@ class FlowChartState<T extends FlowData> extends State<FlowChart> {
|
||||
String newID = const Uuid().v4();
|
||||
double ratio = 1;
|
||||
if (e.getWidth() != null && e.getHeight() != null) {
|
||||
print("${e.getWidth()} ${e.getHeight()}");
|
||||
var h = e.getHeight()! < e.getWidth()! ? e.getHeight()! + 20 : e.getHeight()!;
|
||||
var w = e.getWidth()! < e.getHeight()! ? e.getWidth()! + 20 : e.getWidth()!;
|
||||
ratio = (h / w);
|
||||
|
||||
@@ -147,6 +147,12 @@ class ElementWidgetState<T extends FlowData> extends State<ElementWidget> {
|
||||
secondaryTapDownPos = details.globalPosition,
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (!(widget.dashboard.flutterChartKey.currentState?.isCtrl ?? true)) {
|
||||
for (var element in widget.dashboard.elements) {
|
||||
element.isSelected = false;
|
||||
element.dashboard.chartKey.currentState?. setState(() { });
|
||||
}
|
||||
}
|
||||
widget.element.isSelected = !widget.element.isSelected;
|
||||
for (var sel in widget.dashboard.arrows) { sel.isSelected = false; }
|
||||
widget.dashboard.selectedMenuKey.currentState?. setState(() { });
|
||||
|
||||
Reference in New Issue
Block a user