-
Notifications
You must be signed in to change notification settings - Fork 0
/
ApplicationsListTab.go
66 lines (48 loc) · 1.36 KB
/
ApplicationsListTab.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"fmt"
"log"
"os/exec"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
"golang.org/x/image/colornames"
)
func (appData *AppData) applicationsListTab() *container.Scroll {
applications, err := GetApplications()
if err != nil {
log.Fatal(err)
}
vbox := container.NewVBox()
for _, application := range applications {
vbox.Add(appData.signeleAppCard(application))
separator := NewCustomSeparator(colornames.Aliceblue, 1)
vbox.Add(separator)
}
content := container.NewVScroll(vbox)
return content
}
func (appData *AppData) signeleAppCard(application Application) *fyne.Container {
playBtn := widget.NewButton("Execute Start Command", func() {
args := strings.Split(application.StartCommand, " ")
cmd := exec.Command(args[0], args[1:]...)
cmd.Dir = application.Location
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(out))
})
deletBtn := widget.NewButton("Delete This App", func() {
err := DeleteApplication(application.ID)
if err != nil {
log.Fatal(err)
}
appData.eventsChannel <- "Refresh"
})
hBox := container.NewHBox(playBtn, deletBtn)
card := widget.NewCard(application.Name, fmt.Sprintf("Location: %v", application.Location), widget.NewLabel("ID: " + application.ID))
vBox := container.NewVBox(card, hBox)
return vBox
}