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() }