moving cdashdisplay data handling to its backend

This commit is contained in:
2026-03-06 18:22:54 +00:00
parent de3e9784a0
commit d26dcae65f
6 changed files with 72 additions and 87 deletions
+11 -10
View File
@@ -2,7 +2,6 @@ package controllers
import (
helper "esdi/helpers"
"esdi/tui/internal/models"
"github.com/gdamore/tcell/v2"
)
@@ -43,53 +42,55 @@ func keyToVector(r rune) (helper.Vector, bool) {
return helper.Vector{}, false
}
func (lc *LayoutController) handleMovementCapture(win *models.UIWindow,
func (lc *LayoutController) handleMovementCapture(idx int16,
ev *tcell.EventKey) *tcell.EventKey {
vec, ok := keyToVector(ev.Rune())
if !ok {
return nil
}
err := lc.DevService.MoveWindow(win, &vec)
err := lc.DevService.MoveWindow(idx, &vec)
if err != nil {
lc.Messages <- "failed to move window: " + err.Error() + "\n"
return nil
}
// Success - update the form
lc.LayoutToolView.UpdateFormView(win)
window := lc.DevService.CDash.State.Layout.Windows[idx]
lc.LayoutToolView.UpdateFormView(idx, window)
return nil
}
func (lc *LayoutController) handleResizeCapture(win *models.UIWindow,
func (lc *LayoutController) handleResizeCapture(idx int16,
ev *tcell.EventKey) *tcell.EventKey {
vec, ok := keyToVector(ev.Rune())
if !ok {
return nil
}
err := lc.DevService.ResizeWindow(win, &vec)
err := lc.DevService.ResizeWindow(idx, &vec)
if err != nil {
lc.Messages <- "failed to resize window: " + err.Error() + "\n"
return nil
}
// Success - update the form
lc.LayoutToolView.UpdateFormView(win)
window := lc.DevService.CDash.State.Layout.Windows[idx]
lc.LayoutToolView.UpdateFormView(idx, window)
return nil
}
func (s *windowManipState) CurrentHandler(lc *LayoutController, w *models.UIWindow) modeHandler {
func (s *windowManipState) CurrentHandler(lc *LayoutController, idx int16) modeHandler {
switch s.Mode {
case moveMode:
return func(ev *tcell.EventKey) *tcell.EventKey {
return lc.handleMovementCapture(w, ev)
return lc.handleMovementCapture(idx, ev)
}
case resizeMode:
return func(ev *tcell.EventKey) *tcell.EventKey {
return lc.handleResizeCapture(w, ev)
return lc.handleResizeCapture(idx, ev)
}
}