From 22e1f100797d0bbf77486ca1f1a0c6a34066d8da Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sat, 22 Apr 2023 17:50:27 +0100 Subject: [PATCH] rename App struct to UI --- internal/ui/app.go | 66 +++++++++++++++++++++---------------------- internal/ui/column.go | 6 ++-- internal/ui/init.go | 50 ++++++++++++++++---------------- 3 files changed, 61 insertions(+), 61 deletions(-) diff --git a/internal/ui/app.go b/internal/ui/app.go index e8f6adb..a5eaa5f 100644 --- a/internal/ui/app.go +++ b/internal/ui/app.go @@ -20,8 +20,8 @@ const ( addPage string = "add" ) -// App does some magical stuff. -type App struct { +// UI does some magical stuff. +type UI struct { *tview.Application columns []column @@ -32,26 +32,26 @@ type App struct { } // shutdown shuts down the application. -func (a *App) shutdown() { - a.closeBoard() - a.Stop() +func (u *UI) shutdown() { + u.closeBoard() + u.Stop() } // closeBoard closes the BoltDB database. -func (a *App) closeBoard() { - _ = a.board.Close() +func (u *UI) closeBoard() { + _ = u.board.Close() } // openBoard opens the kanban project. -func (a *App) openBoard(path string) error { +func (u *UI) openBoard(path string) error { b, err := board.Open(path) if err != nil { return fmt.Errorf("unable to load board, %w", err) } - a.board = b + u.board = b - if err = a.refresh(); err != nil { + if err = u.refresh(); err != nil { return err } @@ -59,29 +59,29 @@ func (a *App) openBoard(path string) error { } // refresh refreshes the UI. -func (a *App) refresh() error { - statusList, err := a.board.StatusList() +func (u *UI) refresh() error { + statusList, err := u.board.StatusList() if err != nil { return fmt.Errorf("unable to get the status list, %w", err) } - a.updateBoard(statusList) + u.updateBoard(statusList) - a.setColumnFocus() + u.setColumnFocus() return nil } -func (a *App) updateBoard(statusList []board.Status) error { - a.flex.Clear() +func (u *UI) updateBoard(statusList []board.Status) error { + u.flex.Clear() columns := make([]column, len(statusList)) for i := range statusList { - columns[i] = a.newColumn(statusList[i].ID, statusList[i].Name) + columns[i] = u.newColumn(statusList[i].ID, statusList[i].Name) if len(statusList[i].CardIds) > 0 { - cards, err := a.board.CardList(statusList[i].CardIds) + cards, err := u.board.CardList(statusList[i].CardIds) if err != nil { return fmt.Errorf("unable to get the card list. %w", err) } @@ -91,49 +91,49 @@ func (a *App) updateBoard(statusList []board.Status) error { } } - a.flex.AddItem(columns[i].cards, 0, 1, false) + u.flex.AddItem(columns[i].cards, 0, 1, false) } - a.columns = columns + u.columns = columns return nil } -func (a *App) shiftColumnFocus(s shiftDirection) { +func (u *UI) shiftColumnFocus(s shiftDirection) { switch s { case shiftRight: - if a.focusedColumn == len(a.columns)-1 { - a.focusedColumn = 0 + if u.focusedColumn == len(u.columns)-1 { + u.focusedColumn = 0 } else { - a.focusedColumn++ + u.focusedColumn++ } case shiftLeft: - if a.focusedColumn == 0 { - a.focusedColumn = len(a.columns) - 1 + if u.focusedColumn == 0 { + u.focusedColumn = len(u.columns) - 1 } else { - a.focusedColumn-- + u.focusedColumn-- } } - a.setColumnFocus() + u.setColumnFocus() } -func (a *App) setColumnFocus() { - a.SetFocus(a.columns[a.focusedColumn].cards) +func (u *UI) setColumnFocus() { + u.SetFocus(u.columns[u.focusedColumn].cards) } // newCard creates a new card and saves it to the database. -func (a *App) newCard(title, content string) error { +func (u *UI) newCard(title, content string) error { args := board.CardArgs{ NewTitle: title, NewContent: content, } - if err := a.board.CreateCard(args); err != nil { + if err := u.board.CreateCard(args); err != nil { return fmt.Errorf("unable to create card, %w", err) } - a.refresh() + u.refresh() return nil } diff --git a/internal/ui/column.go b/internal/ui/column.go index e30a023..969770d 100644 --- a/internal/ui/column.go +++ b/internal/ui/column.go @@ -11,7 +11,7 @@ type column struct { cards *tview.List } -func (a *App) newColumn(statusID int, statusName string) column { +func (u *UI) newColumn(statusID int, statusName string) column { l := tview.NewList() l.SetBorder(true) @@ -23,9 +23,9 @@ func (a *App) newColumn(statusID int, statusName string) column { l.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { if event.Rune() == 'h' || event.Key() == tcell.KeyLeft { - a.shiftColumnFocus(shiftLeft) + u.shiftColumnFocus(shiftLeft) } else if event.Rune() == 'l' || event.Key() == tcell.KeyRight { - a.shiftColumnFocus(shiftRight) + u.shiftColumnFocus(shiftRight) } return event diff --git a/internal/ui/init.go b/internal/ui/init.go index f521a47..4f198b6 100644 --- a/internal/ui/init.go +++ b/internal/ui/init.go @@ -6,8 +6,8 @@ import ( ) // NewApp returns a new App. -func NewApp() App { - a := App{ +func NewApp() UI { + a := UI{ Application: tview.NewApplication(), pages: tview.NewPages(), flex: tview.NewFlex(), @@ -20,44 +20,44 @@ func NewApp() App { } // initApp initialises App. -func initApp(a *App) { - a.pages.AddPage(mainPage, a.flex, true, true) +func initApp(u *UI) { + u.pages.AddPage(mainPage, u.flex, true, true) - quit := newQuitModal(a) - a.pages.AddPage(quitPage, quit, false, false) + quit := newQuitModal(u) + u.pages.AddPage(quitPage, quit, false, false) - add := newAddForm(a) - a.pages.AddPage(addPage, add, false, false) + add := newAddForm(u) + u.pages.AddPage(addPage, add, false, false) - a.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + u.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { if event.Rune() == 'q' { - a.pages.ShowPage(quitPage) - a.SetFocus(quit) + u.pages.ShowPage(quitPage) + u.SetFocus(quit) } else if event.Rune() == 'o' { - a.openBoard("") + u.openBoard("") } else if event.Rune() == 'a' { - a.pages.ShowPage(addPage) - a.SetFocus(add) + u.pages.ShowPage(addPage) + u.SetFocus(add) } return event }) - a.SetRoot(a.pages, true) + u.SetRoot(u.pages, true) } // newQuitModal returns a new modal for the user's confirmation // for quitting the application. -func newQuitModal(app *App) *tview.Modal { +func newQuitModal(u *UI) *tview.Modal { quit := *tview.NewModal() quitDoneFunc := func(_ int, buttonLabel string) { switch buttonLabel { case "Quit": - app.shutdown() + u.shutdown() default: - app.pages.SwitchToPage("main") - app.setColumnFocus() + u.pages.SwitchToPage("main") + u.setColumnFocus() } } @@ -69,7 +69,7 @@ func newQuitModal(app *App) *tview.Modal { } // newAddForm creates a new Form primitive for creating a new card. -func newAddForm(app *App) *tview.Form { +func newAddForm(u *UI) *tview.Form { add := tview.NewForm() titleField := "Title" @@ -79,16 +79,16 @@ func newAddForm(app *App) *tview.Form { add.AddButton("Save", func() { title := add.GetFormItemByLabel(titleField).(*tview.InputField).GetText() // TODO: error value needs handling - _ = app.newCard(title, "") + _ = u.newCard(title, "") add.GetFormItemByLabel(titleField).(*tview.InputField).SetText("") - app.pages.SwitchToPage(mainPage) - app.setColumnFocus() + u.pages.SwitchToPage(mainPage) + u.setColumnFocus() }) add.AddButton("Cancel", func() { - app.pages.SwitchToPage(mainPage) + u.pages.SwitchToPage(mainPage) add.GetFormItemByLabel(titleField).(*tview.InputField).SetText("") - app.setColumnFocus() + u.setColumnFocus() }) add.SetBorder(true)