update package
This commit is contained in:
parent
eefc249ba3
commit
0e5dab20cf
@ -1,5 +1,7 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
|
import "github.com/sirupsen/logrus"
|
||||||
|
|
||||||
type ItemModel struct {
|
type ItemModel struct {
|
||||||
Id string
|
Id string
|
||||||
Label string
|
Label string
|
||||||
@ -16,7 +18,8 @@ func NewItemModelList() *ItemModelList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *ItemModelList) AsInterfaceArray() []interface{} {
|
func (s *ItemModelList) AsInterfaceArray() []interface{} {
|
||||||
rs := make([]interface{}, len(s.DataList), len(s.DataList))
|
logrus.Debug(len(s.DataList))
|
||||||
|
rs := make([]interface{}, len(s.DataList))
|
||||||
for i := range s.DataList {
|
for i := range s.DataList {
|
||||||
rs[i] = s.DataList[i]
|
rs[i] = s.DataList[i]
|
||||||
}
|
}
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
package formview
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"go_dreamfactory/cmd/v2/model"
|
|
||||||
"go_dreamfactory/cmd/v2/service"
|
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/modules/hero"
|
|
||||||
"go_dreamfactory/pb"
|
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
|
||||||
"fyne.io/fyne/v2/container"
|
|
||||||
"fyne.io/fyne/v2/theme"
|
|
||||||
"fyne.io/fyne/v2/widget"
|
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
"github.com/spf13/cast"
|
|
||||||
)
|
|
||||||
|
|
||||||
type HeroListView struct {
|
|
||||||
ListBaseView
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *HeroListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|
||||||
// init required
|
|
||||||
this.initItemList()
|
|
||||||
|
|
||||||
// create friend list view
|
|
||||||
this.createItemList()
|
|
||||||
|
|
||||||
// hero list button
|
|
||||||
heroListBtn := widget.NewButtonWithIcon("英雄列表", theme.ConfirmIcon(), func() {
|
|
||||||
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.HeroListReq{}); err != nil {
|
|
||||||
logrus.Error(err)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
//升星
|
|
||||||
starBtn := widget.NewButtonWithIcon("升星", theme.ConfirmIcon(), func() {
|
|
||||||
|
|
||||||
// if err := service.GetPttService().SendToClient(
|
|
||||||
// t.MainType,
|
|
||||||
// t.SubType,
|
|
||||||
// &pb.HeroStrengthenUpStarReq{
|
|
||||||
// HeroObjID: heroObjID.Text,
|
|
||||||
// HeroRace: heroRace,
|
|
||||||
// Hero: hero,
|
|
||||||
// }); err != nil {
|
|
||||||
// logrus.Error(err)
|
|
||||||
// }
|
|
||||||
})
|
|
||||||
|
|
||||||
//升级
|
|
||||||
|
|
||||||
// layout
|
|
||||||
split := container.NewHSplit(this.dataListWidget, container.NewVBox(heroListBtn, starBtn))
|
|
||||||
split.Offset = 1
|
|
||||||
|
|
||||||
//data listener for
|
|
||||||
this.dataListener()
|
|
||||||
|
|
||||||
return split
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *HeroListView) dataListener() {
|
|
||||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
|
||||||
OnNotify: func(d interface{}, args ...interface{}) {
|
|
||||||
data := d.(*pb.UserMessage)
|
|
||||||
if !(data.MainType == string(comm.ModuleHero) &&
|
|
||||||
data.SubType == hero.HeroSubTypeList) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
rsp := &pb.HeroListResp{}
|
|
||||||
if !comm.ProtoUnmarshal(data, rsp) {
|
|
||||||
logrus.Error("unmarshal err")
|
|
||||||
}
|
|
||||||
|
|
||||||
this.itemListData = model.NewItemModelList()
|
|
||||||
for _, v := range rsp.List {
|
|
||||||
if v.CardType != 3 { //不显示类型是3的
|
|
||||||
fm := &model.ItemModel{
|
|
||||||
Id: cast.ToString(v.Id),
|
|
||||||
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
|
|
||||||
}
|
|
||||||
this.itemListData.DataList = append(this.itemListData.DataList, fm)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.reloadListData()
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
"go_dreamfactory/cmd/v2/ui/formview"
|
formview "go_dreamfactory/cmd/v2/ui/views"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/modules/friend"
|
"go_dreamfactory/modules/friend"
|
||||||
|
138
cmd/v2/ui/views/hero_list.go
Normal file
138
cmd/v2/ui/views/hero_list.go
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
package formview
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service"
|
||||||
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/modules/hero"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/container"
|
||||||
|
"fyne.io/fyne/v2/theme"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type HeroListView struct {
|
||||||
|
ListBaseView
|
||||||
|
subWindows *SubWindowListView
|
||||||
|
heroList []*pb.DBHero
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *HeroListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||||
|
// init required
|
||||||
|
this.initItemList()
|
||||||
|
|
||||||
|
// create friend list view
|
||||||
|
l := this.createItemList()
|
||||||
|
l.OnSelected = func(id widget.ListItemID) {
|
||||||
|
//创建window
|
||||||
|
m := this.itemListData.DataList[id]
|
||||||
|
// if this.subWindows == nil {
|
||||||
|
this.subWindows = NewSubWindowView(m.Id, m.Label, this.obs)
|
||||||
|
this.subWindows.initItemList()
|
||||||
|
this.subWindows.createItemListWithCheck()
|
||||||
|
this.subWindows.createWindows()
|
||||||
|
// }
|
||||||
|
|
||||||
|
// TODO 升星
|
||||||
|
starBtn := widget.NewButtonWithIcon("升星", theme.ConfirmIcon(), func() {
|
||||||
|
if err := service.GetPttService().SendToClient(t.MainType, hero.StrengthenUpStar,
|
||||||
|
&pb.HeroStrengthenUpStarReq{
|
||||||
|
HeroObjID: m.Id,
|
||||||
|
// HeroRace: heroRace,
|
||||||
|
// Hero: hero,
|
||||||
|
}); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
lvBtn := widget.NewButtonWithIcon("升级", theme.ConfirmIcon(), func() {
|
||||||
|
var cards []*pb.MapStringInt32
|
||||||
|
for _, v := range this.subWindows.selItemIds {
|
||||||
|
cards = append(cards, &pb.MapStringInt32{
|
||||||
|
Key: v,
|
||||||
|
Value: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if err := service.GetPttService().SendToClient(t.MainType, hero.StrengthenUplv,
|
||||||
|
&pb.HeroStrengthenUplvReq{
|
||||||
|
HeroObjID: m.Id,
|
||||||
|
ExpCards: cards,
|
||||||
|
}); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.subWindows.itemListData = model.NewItemModelList()
|
||||||
|
for _, v := range this.heroList {
|
||||||
|
if v.CardType == 3 { //不显示类型是3的
|
||||||
|
fm := &model.ItemModel{
|
||||||
|
Id: cast.ToString(v.Id),
|
||||||
|
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
|
||||||
|
}
|
||||||
|
this.subWindows.itemListData.DataList = append(this.subWindows.itemListData.DataList, fm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.subWindows.reloadListData()
|
||||||
|
|
||||||
|
split := container.NewHSplit(this.subWindows.dataListWidget, container.NewVBox(starBtn, lvBtn))
|
||||||
|
split.Offset = 1
|
||||||
|
|
||||||
|
this.subWindows.w.SetContent(split)
|
||||||
|
|
||||||
|
this.subWindows.w.Show()
|
||||||
|
}
|
||||||
|
|
||||||
|
// hero list button
|
||||||
|
heroListBtn := widget.NewButtonWithIcon("英雄列表", theme.ConfirmIcon(), func() {
|
||||||
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.HeroListReq{}); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// layout
|
||||||
|
split := container.NewHSplit(this.dataListWidget, container.NewVBox(heroListBtn))
|
||||||
|
split.Offset = 1
|
||||||
|
|
||||||
|
//data listener for
|
||||||
|
this.dataListener()
|
||||||
|
|
||||||
|
return split
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *HeroListView) dataListener() {
|
||||||
|
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||||
|
OnNotify: func(d interface{}, args ...interface{}) {
|
||||||
|
data := d.(*pb.UserMessage)
|
||||||
|
if !(data.MainType == string(comm.ModuleHero) &&
|
||||||
|
data.SubType == hero.HeroSubTypeList) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
rsp := &pb.HeroListResp{}
|
||||||
|
if !comm.ProtoUnmarshal(data, rsp) {
|
||||||
|
logrus.Error("unmarshal err")
|
||||||
|
}
|
||||||
|
this.heroList = rsp.List
|
||||||
|
|
||||||
|
this.itemListData = model.NewItemModelList()
|
||||||
|
for _, v := range rsp.List {
|
||||||
|
if v.CardType != 3 { //不显示类型是3的
|
||||||
|
fm := &model.ItemModel{
|
||||||
|
Id: cast.ToString(v.Id),
|
||||||
|
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
|
||||||
|
}
|
||||||
|
this.itemListData.DataList = append(this.itemListData.DataList, fm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.reloadListData()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
69
cmd/v2/ui/views/subwindowbase.go
Normal file
69
cmd/v2/ui/views/subwindowbase.go
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
package formview
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/modules/hero"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SubWindowListView struct {
|
||||||
|
ListBaseView
|
||||||
|
title string
|
||||||
|
winId string
|
||||||
|
obs observer.Observer
|
||||||
|
w fyne.Window
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSubWindowView(winId, title string, obs observer.Observer) *SubWindowListView {
|
||||||
|
return &SubWindowListView{
|
||||||
|
title: title,
|
||||||
|
winId: winId,
|
||||||
|
obs: obs,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *SubWindowListView) createWindows() fyne.Window {
|
||||||
|
this.w = fyne.CurrentApp().NewWindow(this.title)
|
||||||
|
|
||||||
|
this.w.CenterOnScreen()
|
||||||
|
this.w.SetFixedSize(true)
|
||||||
|
this.w.Resize(fyne.Size{Width: 800, Height: 650})
|
||||||
|
this.dataListener()
|
||||||
|
return this.w
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *SubWindowListView) dataListener() {
|
||||||
|
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||||
|
OnNotify: func(d interface{}, args ...interface{}) {
|
||||||
|
data := d.(*pb.UserMessage)
|
||||||
|
if !(data.MainType == string(comm.ModuleHero) &&
|
||||||
|
data.SubType == hero.HeroSubTypeList) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
rsp := &pb.HeroListResp{}
|
||||||
|
if !comm.ProtoUnmarshal(data, rsp) {
|
||||||
|
logrus.Error("unmarshal err")
|
||||||
|
}
|
||||||
|
|
||||||
|
this.itemListData = model.NewItemModelList()
|
||||||
|
for _, v := range rsp.List {
|
||||||
|
if v.CardType == 3 { //只显示类型是3的
|
||||||
|
fm := &model.ItemModel{
|
||||||
|
Id: cast.ToString(v.Id),
|
||||||
|
Label: fmt.Sprintf("%s Lv:%d S:%d T:%d", cast.ToString(v.HeroID), v.Lv, v.Star, v.CardType),
|
||||||
|
}
|
||||||
|
this.itemListData.DataList = append(this.itemListData.DataList, fm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.reloadListData()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user