92 lines
2.1 KiB
Go
92 lines
2.1 KiB
Go
package ui
|
|
|
|
import (
|
|
"fmt"
|
|
cfg "go_dreamfactory/cmd/v2/configure/structs"
|
|
"go_dreamfactory/cmd/v2/lib/common"
|
|
"go_dreamfactory/cmd/v2/lib/storage"
|
|
"go_dreamfactory/cmd/v2/service"
|
|
"go_dreamfactory/cmd/v2/service/observer"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/cast"
|
|
)
|
|
|
|
type perfPb struct {
|
|
appAdapter
|
|
|
|
obs observer.Observer
|
|
|
|
itemList common.ItemList
|
|
|
|
pbList func() //协议列表
|
|
conf *storage.Config
|
|
}
|
|
|
|
func (app *perfPb) LazyInit(ptService service.PttService, obs observer.Observer) error {
|
|
app.obs = obs
|
|
app.conf = perfWin.UIImpl.config
|
|
|
|
app.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PERF_PB, theme.ContentCopyIcon(), nil)
|
|
content := container.NewMax()
|
|
content.Objects = []fyne.CanvasObject{}
|
|
|
|
app.itemList = *common.NewItemList()
|
|
app.itemList.ItemList = app.itemList.CreateList()
|
|
|
|
app.pbList = func() {
|
|
if tables, err := cfg.NewTables(common.Loader); err != nil {
|
|
println(err.Error())
|
|
} else {
|
|
for _, v := range tables.TestFlow.GetDataList() {
|
|
item := common.Item{
|
|
Id: cast.ToString(v.Id),
|
|
Text: fmt.Sprintf("%-6d %-20s %-20s %s", v.Id, v.Msg, v.Route, v.Params),
|
|
Data: v,
|
|
}
|
|
app.itemList.AddItem(item)
|
|
}
|
|
}
|
|
}
|
|
defer app.pbList()
|
|
|
|
// 刷新按钮
|
|
refeshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), func() {
|
|
app.itemList.Reset()
|
|
app.pbList()
|
|
})
|
|
|
|
// next按钮
|
|
nextBtn := widget.NewButtonWithIcon("执行", theme.ConfirmIcon(), func() {
|
|
for _, item := range app.itemList.CachedList.Items {
|
|
if data, ok := item.Data.(*cfg.GameTestFlowData); ok {
|
|
logrus.Infof("%v %v", data.Route, data.Params)
|
|
}
|
|
}
|
|
})
|
|
|
|
//layout
|
|
c := container.NewBorder(container.NewHBox(refeshBtn), container.NewHBox(layout.NewSpacer(), nextBtn), nil, nil, app.itemList.ItemList)
|
|
content.Objects = append(content.Objects, c)
|
|
app.tabItem.Content = content
|
|
return nil
|
|
}
|
|
|
|
func (a *perfPb) GetAppName() string {
|
|
return common.TOOLBAR_PERF_PB
|
|
}
|
|
|
|
func (a *perfPb) run() {
|
|
if perfWin.assistant == nil {
|
|
return
|
|
}
|
|
perfWin.assistant.Start()
|
|
|
|
perfWin.assistant.ShowResult()
|
|
}
|