Skip to content
Snippets Groups Projects
gRPCStatusView.go 1.09 KiB
Newer Older
  • Learn to ignore specific revisions
  • Malte Bauch's avatar
    Malte Bauch committed
    package views
    
    import (
    	"code.fbi.h-da.de/cocsn/gosdn/cmd/gosdn-tview/app"
    
    Malte Bauch's avatar
    Malte Bauch committed
    	commands "code.fbi.h-da.de/cocsn/gosdn/cmd/gosdn-tview/grpc"
    
    Malte Bauch's avatar
    Malte Bauch committed
    	"github.com/rivo/tview"
    	"google.golang.org/grpc"
    )
    
    
    //GRPCStatusView is an application view to display the current status of
    //the gRPC server (e.g. connected, unavailable,...)
    
    Malte Bauch's avatar
    Malte Bauch committed
    type GRPCStatusView struct {
    	gRPCStatusView *tview.TextView
    }
    
    
    //NewGRPCStatusView creates a new GRPCStatusView
    
    Malte Bauch's avatar
    Malte Bauch committed
    func NewGRPCStatusView(app *app.App, conn *grpc.ClientConn) *GRPCStatusView {
    	sv := &GRPCStatusView{
    		gRPCStatusView: tview.NewTextView(),
    	}
    
    	sv.gRPCStatusView.
    
    Malte Bauch's avatar
    Malte Bauch committed
    		SetDynamicColors(true).
    		SetTextAlign(tview.AlignCenter).
    
    Malte Bauch's avatar
    Malte Bauch committed
    		SetRegions(true).
    		SetBorder(true).
    		SetTitle("gRPC")
    
    
    Malte Bauch's avatar
    Malte Bauch committed
    	commands.WatchHealth("", app, conn, sv.gRPCStatusView)
    
    Malte Bauch's avatar
    Malte Bauch committed
    
    	return sv
    }
    
    
    //GetContent returns the tview.Primitive belonging to the gRPCStatusView
    
    Malte Bauch's avatar
    Malte Bauch committed
    func (sv *GRPCStatusView) GetContent() tview.Primitive {
    	return sv.gRPCStatusView
    }
    
    
    //SetContent sets new string content for the gRPCStatusView
    
    Malte Bauch's avatar
    Malte Bauch committed
    func (sv *GRPCStatusView) SetContent(s string) {
    	sv.gRPCStatusView.Clear()
    	sv.gRPCStatusView.SetText(s)
    }