diff options
| author | Jeff Carr <[email protected]> | 2023-12-30 09:49:30 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-12-30 09:49:30 -0600 |
| commit | 7532fb5ff5d0178bb9b1cf0a1cd6ba7c30bb7c2b (patch) | |
| tree | 9cd3f1fbbbe9393ccec871258f5e6e8522b6cc04 /digitalocean/mainWindow.go | |
| parent | ec5cbbe203596327d42ac626dcc9c55c604b9139 (diff) | |
create a basic digitalocean gui object
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'digitalocean/mainWindow.go')
| -rw-r--r-- | digitalocean/mainWindow.go | 65 |
1 files changed, 56 insertions, 9 deletions
diff --git a/digitalocean/mainWindow.go b/digitalocean/mainWindow.go index 78f2d03..6bffaf5 100644 --- a/digitalocean/mainWindow.go +++ b/digitalocean/mainWindow.go @@ -1,18 +1,65 @@ package digitalocean import ( - "log" - + "os" + "go.wit.com/log" "go.wit.com/gui" ) -func MakeWindow(n *gui.Node) *gui.Node { - log.Println("digitalocean MakeWindow() START") +var myDo *DigitalOcean + +// This is initializes the main DO object +// You can only have one of these +func New(p *gui.Node) *DigitalOcean { + if myDo != nil {return myDo} + myDo = new(DigitalOcean) + myDo.parent = p + + myDo.ready = false + + // Your personal API token from DigitalOcean. + myDo.token = os.Getenv("DIGITALOCEAN_TOKEN") - win := n.NewWindow("DigitalOcean Control Panel") + myDo.window = p.NewWindow("DigitalOcean Control Panel") + + // make a group label and a grid + myDo.group = myDo.window.NewGroup("data").Pad() + myDo.grid = myDo.group.NewGrid("grid", 2, 1).Pad() + + myDo.ready = true + return myDo +} + +// Returns true if the status is valid +func (d *DigitalOcean) Ready() bool { + if d == nil {return false} + return d.ready +} + +func (d *DigitalOcean) Show() { + if ! d.Ready() {return} + log.Info("digitalocean.Show() window") + if d.hidden { + d.window.Show() + } + d.hidden = false +} + +func (d *DigitalOcean) Hide() { + if ! d.Ready() {return} + log.Info("digitalocean.Hide() window") + if ! d.hidden { + d.window.Hide() + } + d.hidden = true +} - // box := g1.NewGroup("data") - group := win.NewGroup("data") - log.Println("digitalocean MakeWindow() END", group) - return win +func (d *DigitalOcean) Update() bool { + if ! d.Ready() {return false} + err := ListDroplets(d.token) + if err != nil { + log.Error(err, "Error listing droplets") + return false + } + return true } |
