Newer
Older
package views
import (
"code.fbi.h-da.de/cocsn/gosdn/cmd/gosdn-tview/app"
"github.com/rivo/tview"
"time"
)
//DatabaseStatusView is an application view to display the current status of
//the database (e.g. connected, disconnected,...)
type DatabaseStatusView struct {
databaseStatusView *tview.TextView
}
//NewDatabaseStatusView creates a new DatabaseStatusView
func NewDatabaseStatusView(app *app.App) *DatabaseStatusView {
dv := &DatabaseStatusView{
databaseStatusView: tview.NewTextView(),
}
dv.databaseStatusView.
SetDynamicColors(true).
SetTextAlign(tview.AlignCenter).
SetRegions(true).
SetBorder(true).
SetTitle("Database")
// run the periodical refresh in a new go routine
//GetContent returns the tview.Primitive belonging to the DatabaseStatusView
func (dv *DatabaseStatusView) GetContent() tview.Primitive {
return dv.databaseStatusView
}
//SetContent sets new string content for the DatabaseStatusView
func (dv *DatabaseStatusView) SetContent(s string) {
dv.databaseStatusView.Clear()
dv.databaseStatusView.SetText(s)
}
func databaseTicker(dv *DatabaseStatusView) {
ticker := time.NewTicker(5 * time.Second)
for t := range ticker.C {
dv.SetContent(t.String())
}
}