// This is a simple example
package main

import (
	"go.wit.com/log"

	"go.wit.com/gui"
	// "go.wit.com/gui/gadgets"
)

func globalDisplayOptions(box *gui.Node) {
	group1 := box.NewGroup("Global Display Options")
	groupvbox := group1.NewBox("bw vbox", false)
	// grouphbox := groupvbox.NewBox("bw hbox", true)

	groupvbox.NewButton("Show Repository Window", func() {
		reposwin.Draw()
	})
	me.autoHidePerfect = groupvbox.NewCheckbox("Hide repos")
	me.autoHidePerfect.Custom = func() {
		me.autoHidePerfect.SetText("Hide Perfectly clean repos")
		if me.autoHidePerfect.Bool() {
			log.Warn("Should hide here")
		} else {
			log.Warn("Should show here")
		}
	}
	me.autoHidePerfect.Set(true)

	groupvbox.NewButton("hide perfect", func() {
		me.autoHidePerfect.SetText("Hide Perfectly clean repos")
		hidePerfect()
	})
	groupvbox.NewButton("show all", func() {
		for repo, _ := range me.allrepos {
			if repo.dirtyLabel.String() == "PERFECT" {
				if repo.hidden {
					repo.show()
				}
				// return
			}
		}
	})

	groupvbox.NewButton("reposwin.Hide()", func() {
		reposwin.Hide()
	})
	groupvbox.NewButton("reposwin.Show()", func() {
		reposwin.Show()
	})

	groupvbox.NewButton("status.Update() all", func() {
		for repo, _ := range me.allrepos {
			repo.status.Update()
		}
	})

	groupvbox.NewButton("rescan all", func() {
		for repo, _ := range me.allrepos {
			repo.newScan()
		}
	})
	groupvbox.NewButton("repoworld()", func() {
		repoworld()
	})
}

func hidePerfect() {
	for repo, _ := range me.allrepos {
		if repo.dirtyLabel.String() == "PERFECT" {
			if repo.hidden {
				continue
			}
			repo.hide()
			// return
		}
	}
}

func (r *repo) hide() {
	r.pLabel.Hide()
	r.lastTag.Hide()
	r.vLabel.Hide()

	r.masterName.Hide()
	r.masterVersion.Hide()
	r.develName.Hide()
	r.develVersion.Hide()
	r.userName.Hide()
	r.userVersion.Hide()
	r.dirtyLabel.Hide()
	r.showButton.Hide()
	r.hidden = true
}

func (r *repo) show() {
	r.pLabel.Show()
	r.lastTag.Show()
	r.vLabel.Show()

	r.masterName.Show()
	r.masterVersion.Show()
	r.develName.Show()
	r.develVersion.Show()
	r.userName.Show()
	r.userVersion.Show()
	r.dirtyLabel.Show()
	r.showButton.Show()
	r.hidden = false
}