first
This commit is contained in:
74
DCIManager6/dci6-support-reader/networkTab.go
Normal file
74
DCIManager6/dci6-support-reader/networkTab.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
)
|
||||
|
||||
func createNetworkTab(server outputStruct) *container.AppTabs {
|
||||
etcHostsList := widget.NewList(
|
||||
func() int {
|
||||
return len(server.NetworkConfig.EtcHosts)
|
||||
},
|
||||
func() fyne.CanvasObject {
|
||||
return container.NewHBox(
|
||||
widget.NewLabel("etc hosts"),
|
||||
)
|
||||
},
|
||||
func(id widget.ListItemID, obj fyne.CanvasObject) {
|
||||
hbox := obj.(*fyne.Container)
|
||||
line := server.NetworkConfig.EtcHosts[id]
|
||||
lineLabel := hbox.Objects[0].(*widget.Label)
|
||||
lineLabel.SetText(line)
|
||||
},
|
||||
)
|
||||
|
||||
netInterfacesList := widget.NewList(
|
||||
//TODO тут всё может упасть. В NetInterfaces лежит структура, в которой есть список ip адресов
|
||||
// обычно их не очень много, но в крайних случаях их может быть 100500 на сетевом интерфейсе
|
||||
// и гуй этому не обрадуется. Пока фигачим всё одной строкой
|
||||
func() int {
|
||||
return len(server.NetworkConfig.NetInterfaces)
|
||||
},
|
||||
func() fyne.CanvasObject {
|
||||
return container.NewHBox(
|
||||
widget.NewLabel("интерфейс"),
|
||||
)
|
||||
},
|
||||
func(id widget.ListItemID, obj fyne.CanvasObject) {
|
||||
hbox := obj.(*fyne.Container)
|
||||
iface := server.NetworkConfig.NetInterfaces[id]
|
||||
ifaceLabel := hbox.Objects[0].(*widget.Label)
|
||||
|
||||
ifaceLabel.SetText(fmt.Sprintf("%s, флаги: %s, мак: %s, ip: %s, index: %s, MTU: %s", iface.Device, iface.Flags, iface.HwAddr, iface.IpAddr, iface.Index, iface.MTU))
|
||||
},
|
||||
)
|
||||
|
||||
networkManagerConnList := widget.NewList(
|
||||
func() int {
|
||||
return len(server.NetworkConfig.NetworkManagerConn)
|
||||
},
|
||||
func() fyne.CanvasObject {
|
||||
return container.NewHBox(
|
||||
widget.NewLabel("соединение"),
|
||||
)
|
||||
},
|
||||
func(id widget.ListItemID, obj fyne.CanvasObject) {
|
||||
hbox := obj.(*fyne.Container)
|
||||
conn := server.NetworkConfig.NetworkManagerConn[id]
|
||||
connLabel := hbox.Objects[0].(*widget.Label)
|
||||
connLabel.SetText(conn)
|
||||
},
|
||||
)
|
||||
networkAppTabs := container.NewAppTabs()
|
||||
networkAppTabs.Append(container.NewTabItem("etc/hosts", container.NewScroll(etcHostsList)))
|
||||
networkAppTabs.Append(container.NewTabItem("Список сетевых интерфейсов", container.NewScroll(netInterfacesList)))
|
||||
networkAppTabs.Append(container.NewTabItem("nmcli c s", container.NewScroll(networkManagerConnList)))
|
||||
networkAppTabs.Append(container.NewTabItem("NetworkManager", widget.NewLabel(fmt.Sprintf("Включен: %s", server.NetworkConfig.NetworkManager))))
|
||||
networkAppTabs.Append(container.NewTabItem("Networking", widget.NewLabel(fmt.Sprintf("Включен: %s", server.NetworkConfig.Networking))))
|
||||
|
||||
return networkAppTabs
|
||||
}
|
||||
Reference in New Issue
Block a user