diff --git a/cmd/v2/model/item.go b/cmd/v2/model/item.go index 70b746cdb..ef535634c 100644 --- a/cmd/v2/model/item.go +++ b/cmd/v2/model/item.go @@ -1,5 +1,7 @@ package model +import "github.com/sirupsen/logrus" + type ItemModel struct { Id string Label string @@ -16,7 +18,8 @@ func NewItemModelList() *ItemModelList { } 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 { rs[i] = s.DataList[i] } diff --git a/cmd/v2/ui/formview/hero_list.go b/cmd/v2/ui/formview/hero_list.go deleted file mode 100644 index 47925c8de..000000000 --- a/cmd/v2/ui/formview/hero_list.go +++ /dev/null @@ -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() - }, - }) -} diff --git a/cmd/v2/ui/protocol.go b/cmd/v2/ui/protocol.go index df4dfd8ae..73c004561 100644 --- a/cmd/v2/ui/protocol.go +++ b/cmd/v2/ui/protocol.go @@ -4,7 +4,7 @@ import ( "fmt" "go_dreamfactory/cmd/v2/model" "go_dreamfactory/cmd/v2/service/observer" - "go_dreamfactory/cmd/v2/ui/formview" + formview "go_dreamfactory/cmd/v2/ui/views" "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/modules/friend" diff --git a/cmd/v2/ui/formview/baseformview.go b/cmd/v2/ui/views/baseformview.go similarity index 100% rename from cmd/v2/ui/formview/baseformview.go rename to cmd/v2/ui/views/baseformview.go diff --git a/cmd/v2/ui/formview/baselistview.go b/cmd/v2/ui/views/baselistview.go similarity index 100% rename from cmd/v2/ui/formview/baselistview.go rename to cmd/v2/ui/views/baselistview.go diff --git a/cmd/v2/ui/formview/bingoview.go b/cmd/v2/ui/views/bingoview.go similarity index 100% rename from cmd/v2/ui/formview/bingoview.go rename to cmd/v2/ui/views/bingoview.go diff --git a/cmd/v2/ui/formview/common.go b/cmd/v2/ui/views/common.go similarity index 100% rename from cmd/v2/ui/formview/common.go rename to cmd/v2/ui/views/common.go diff --git a/cmd/v2/ui/formview/equip_list.go b/cmd/v2/ui/views/equip_list.go similarity index 100% rename from cmd/v2/ui/formview/equip_list.go rename to cmd/v2/ui/views/equip_list.go diff --git a/cmd/v2/ui/formview/equip_updown.go b/cmd/v2/ui/views/equip_updown.go similarity index 100% rename from cmd/v2/ui/formview/equip_updown.go rename to cmd/v2/ui/views/equip_updown.go diff --git a/cmd/v2/ui/formview/equip_upgrade.go b/cmd/v2/ui/views/equip_upgrade.go similarity index 100% rename from cmd/v2/ui/formview/equip_upgrade.go rename to cmd/v2/ui/views/equip_upgrade.go diff --git a/cmd/v2/ui/formview/friend_addblack.go b/cmd/v2/ui/views/friend_addblack.go similarity index 100% rename from cmd/v2/ui/formview/friend_addblack.go rename to cmd/v2/ui/views/friend_addblack.go diff --git a/cmd/v2/ui/formview/friend_agree.go b/cmd/v2/ui/views/friend_agree.go similarity index 100% rename from cmd/v2/ui/formview/friend_agree.go rename to cmd/v2/ui/views/friend_agree.go diff --git a/cmd/v2/ui/formview/friend_apply.go b/cmd/v2/ui/views/friend_apply.go similarity index 100% rename from cmd/v2/ui/formview/friend_apply.go rename to cmd/v2/ui/views/friend_apply.go diff --git a/cmd/v2/ui/formview/friend_applylist.go b/cmd/v2/ui/views/friend_applylist.go similarity index 100% rename from cmd/v2/ui/formview/friend_applylist.go rename to cmd/v2/ui/views/friend_applylist.go diff --git a/cmd/v2/ui/formview/friend_blacklist.go b/cmd/v2/ui/views/friend_blacklist.go similarity index 100% rename from cmd/v2/ui/formview/friend_blacklist.go rename to cmd/v2/ui/views/friend_blacklist.go diff --git a/cmd/v2/ui/formview/friend_delblack.go b/cmd/v2/ui/views/friend_delblack.go similarity index 100% rename from cmd/v2/ui/formview/friend_delblack.go rename to cmd/v2/ui/views/friend_delblack.go diff --git a/cmd/v2/ui/formview/friend_list.go b/cmd/v2/ui/views/friend_list.go similarity index 100% rename from cmd/v2/ui/formview/friend_list.go rename to cmd/v2/ui/views/friend_list.go diff --git a/cmd/v2/ui/formview/friend_refuse.go b/cmd/v2/ui/views/friend_refuse.go similarity index 100% rename from cmd/v2/ui/formview/friend_refuse.go rename to cmd/v2/ui/views/friend_refuse.go diff --git a/cmd/v2/ui/formview/friend_search.go b/cmd/v2/ui/views/friend_search.go similarity index 100% rename from cmd/v2/ui/formview/friend_search.go rename to cmd/v2/ui/views/friend_search.go diff --git a/cmd/v2/ui/formview/friend_zan.go b/cmd/v2/ui/views/friend_zan.go similarity index 100% rename from cmd/v2/ui/formview/friend_zan.go rename to cmd/v2/ui/views/friend_zan.go diff --git a/cmd/v2/ui/views/hero_list.go b/cmd/v2/ui/views/hero_list.go new file mode 100644 index 000000000..0d6733532 --- /dev/null +++ b/cmd/v2/ui/views/hero_list.go @@ -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() + }, + }) +} diff --git a/cmd/v2/ui/formview/hero_strengthenUpStar.go b/cmd/v2/ui/views/hero_strengthenUpStar.go similarity index 100% rename from cmd/v2/ui/formview/hero_strengthenUpStar.go rename to cmd/v2/ui/views/hero_strengthenUpStar.go diff --git a/cmd/v2/ui/formview/hero_strengthenUplv.go b/cmd/v2/ui/views/hero_strengthenUplv.go similarity index 100% rename from cmd/v2/ui/formview/hero_strengthenUplv.go rename to cmd/v2/ui/views/hero_strengthenUplv.go diff --git a/cmd/v2/ui/formview/items_list.go b/cmd/v2/ui/views/items_list.go similarity index 100% rename from cmd/v2/ui/formview/items_list.go rename to cmd/v2/ui/views/items_list.go diff --git a/cmd/v2/ui/formview/items_sell.go b/cmd/v2/ui/views/items_sell.go similarity index 100% rename from cmd/v2/ui/formview/items_sell.go rename to cmd/v2/ui/views/items_sell.go diff --git a/cmd/v2/ui/formview/items_use.go b/cmd/v2/ui/views/items_use.go similarity index 100% rename from cmd/v2/ui/formview/items_use.go rename to cmd/v2/ui/views/items_use.go diff --git a/cmd/v2/ui/formview/mail_attachment.go b/cmd/v2/ui/views/mail_attachment.go similarity index 100% rename from cmd/v2/ui/formview/mail_attachment.go rename to cmd/v2/ui/views/mail_attachment.go diff --git a/cmd/v2/ui/formview/mail_attachmentall.go b/cmd/v2/ui/views/mail_attachmentall.go similarity index 100% rename from cmd/v2/ui/formview/mail_attachmentall.go rename to cmd/v2/ui/views/mail_attachmentall.go diff --git a/cmd/v2/ui/formview/mail_del.go b/cmd/v2/ui/views/mail_del.go similarity index 100% rename from cmd/v2/ui/formview/mail_del.go rename to cmd/v2/ui/views/mail_del.go diff --git a/cmd/v2/ui/formview/mail_list.go b/cmd/v2/ui/views/mail_list.go similarity index 100% rename from cmd/v2/ui/formview/mail_list.go rename to cmd/v2/ui/views/mail_list.go diff --git a/cmd/v2/ui/formview/mail_readmail.go b/cmd/v2/ui/views/mail_readmail.go similarity index 100% rename from cmd/v2/ui/formview/mail_readmail.go rename to cmd/v2/ui/views/mail_readmail.go diff --git a/cmd/v2/ui/formview/mainline_challenge.go b/cmd/v2/ui/views/mainline_challenge.go similarity index 100% rename from cmd/v2/ui/formview/mainline_challenge.go rename to cmd/v2/ui/views/mainline_challenge.go diff --git a/cmd/v2/ui/formview/mainline_list.go b/cmd/v2/ui/views/mainline_list.go similarity index 100% rename from cmd/v2/ui/formview/mainline_list.go rename to cmd/v2/ui/views/mainline_list.go diff --git a/cmd/v2/ui/formview/mainline_reward.go b/cmd/v2/ui/views/mainline_reward.go similarity index 100% rename from cmd/v2/ui/formview/mainline_reward.go rename to cmd/v2/ui/views/mainline_reward.go diff --git a/cmd/v2/ui/formview/pagoda_list.go b/cmd/v2/ui/views/pagoda_list.go similarity index 100% rename from cmd/v2/ui/formview/pagoda_list.go rename to cmd/v2/ui/views/pagoda_list.go diff --git a/cmd/v2/ui/formview/shop_buy.go b/cmd/v2/ui/views/shop_buy.go similarity index 100% rename from cmd/v2/ui/formview/shop_buy.go rename to cmd/v2/ui/views/shop_buy.go diff --git a/cmd/v2/ui/formview/shop_list.go b/cmd/v2/ui/views/shop_list.go similarity index 100% rename from cmd/v2/ui/formview/shop_list.go rename to cmd/v2/ui/views/shop_list.go diff --git a/cmd/v2/ui/views/subwindowbase.go b/cmd/v2/ui/views/subwindowbase.go new file mode 100644 index 000000000..a763680ef --- /dev/null +++ b/cmd/v2/ui/views/subwindowbase.go @@ -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() + }, + }) +} diff --git a/cmd/v2/ui/formview/task_activelist.go b/cmd/v2/ui/views/task_activelist.go similarity index 100% rename from cmd/v2/ui/formview/task_activelist.go rename to cmd/v2/ui/views/task_activelist.go diff --git a/cmd/v2/ui/formview/task_activereceive.go b/cmd/v2/ui/views/task_activereceive.go similarity index 100% rename from cmd/v2/ui/formview/task_activereceive.go rename to cmd/v2/ui/views/task_activereceive.go diff --git a/cmd/v2/ui/formview/task_list.go b/cmd/v2/ui/views/task_list.go similarity index 100% rename from cmd/v2/ui/formview/task_list.go rename to cmd/v2/ui/views/task_list.go diff --git a/cmd/v2/ui/formview/user_modifyname.go b/cmd/v2/ui/views/user_modifyname.go similarity index 100% rename from cmd/v2/ui/formview/user_modifyname.go rename to cmd/v2/ui/views/user_modifyname.go diff --git a/cmd/v2/ui/formview/user_modifysign.go b/cmd/v2/ui/views/user_modifysign.go similarity index 100% rename from cmd/v2/ui/formview/user_modifysign.go rename to cmd/v2/ui/views/user_modifysign.go