summaryrefslogtreecommitdiff
path: root/digitalocean/mainWindow.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-12-30 09:49:30 -0600
committerJeff Carr <[email protected]>2023-12-30 09:49:30 -0600
commit7532fb5ff5d0178bb9b1cf0a1cd6ba7c30bb7c2b (patch)
tree9cd3f1fbbbe9393ccec871258f5e6e8522b6cc04 /digitalocean/mainWindow.go
parentec5cbbe203596327d42ac626dcc9c55c604b9139 (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.go65
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
}