package formview

import (
	"go_dreamfactory/cmd/v2/lib/common"
	"go_dreamfactory/cmd/v2/model"

	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/theme"
	"fyne.io/fyne/v2/widget"

	cfg "go_dreamfactory/sys/configure/structs"
)

// 世界任务检查
type CheckWorldtaskView struct {
	BaseformView
	taskList *common.ItemList //世界任务执行过程列表
}

// - 检查世界任务状态
// 1. 输入任务ID 查询 任务状态
// 2. 查询所有任务执行结果

// - 模拟世界任务流程
// 1.根据配置自动执行所有流程
// 2.输出每个任务执行过程（文件)
// 3.如果有异常，输出执行错误原因
func (view *CheckWorldtaskView) CreateView(t *model.TestCase) fyne.CanvasObject {
	//taskId entry
	// taskId:= widget.NewEntry()

	//输出每个任务执行过程（文件)
	path := widget.NewEntry()
	jsonPathEntry := widget.NewEntry()
	des := widget.NewEntry()
	mockForm := widget.NewForm(
		widget.NewFormItem("任务类型", des),
		widget.NewFormItem("Json配置", jsonPathEntry),
		widget.NewFormItem("结果目录", path),
	)

	view.taskList = common.NewItemList()

	view.taskList.ItemList = view.taskList.CreateList()

	helpBtn := widget.NewButtonWithIcon("", theme.HelpIcon(), func() {})
	mockBtn := widget.NewButton("模拟执行", func() {
		commCfg := &common.Config{
			Path: jsonPathEntry.Text,
		}
		// 读取配置
		if tb, err := cfg.NewTables(commCfg.Loader); err == nil {
			tb.WorldTask.GetDataList()
		}
		// 读取协议
		// 设置协议参数
		// 输出结果
	})
	top := container.NewHBox()
	bottom := container.NewHBox(helpBtn, mockBtn)
	c := container.NewBorder(top, nil, nil, nil, view.taskList.ItemList)
	layout := container.NewVSplit(
		container.NewBorder(nil, bottom, nil, nil, container.NewGridWithColumns(2, mockForm)), c)
	layout.Offset = 0.2
	return layout
}
