show_widget_list.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
  2. import { Attributes } from './Attributes';
  3. import { widget_item } from './widget_item';
  4. import { widget_item_data } from '../../data/data';
  5. import { ClientEvent } from '../clientEvent';
  6. import { config } from '../config';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('show_widget_list')
  9. export class show_widget_list extends Component {
  10. @property(Node) content:Node = null;
  11. @property(Node) btn_close:Node = null;
  12. @property(Prefab) item_prefab:Prefab = null;
  13. private call_back = null;
  14. @property(Node) btn_show_all:Node =null;
  15. @property(Node) btn_hide_all:Node = null;
  16. public show(list){
  17. for (let index = 0; index < list.length; index++) {
  18. const element = list[index];
  19. let item = instantiate(this.item_prefab)
  20. item.parent = this.content;
  21. item.getComponent(widget_item).initHideDragOtherList()
  22. item.getComponent(widget_item).initView(element,this.onItemClick.bind(this),null)
  23. }
  24. this.btn_close.on(Node.EventType.TOUCH_END,()=>{
  25. this.close()
  26. })
  27. this.btn_show_all.on(Node.EventType.TOUCH_END,()=>{
  28. this.onShowAll()
  29. })
  30. this.btn_hide_all.on(Node.EventType.TOUCH_END,()=>{
  31. this.onHideAll()
  32. })
  33. }
  34. onShowAll(){
  35. for (let index = 0; index < this.content.children.length; index++) {
  36. const item = this.content.children[index];
  37. if(item.getComponent(widget_item).getShowWidgetData()!=null){
  38. let type = item.getComponent(widget_item).getShowWidgetData().type;
  39. if(type!=config.Widget_Type_List.TEXT_SOUND){
  40. item.getComponent(widget_item).setSelectStatus()
  41. }
  42. }
  43. }
  44. }
  45. onHideAll(){
  46. for (let index = 0; index < this.content.children.length; index++) {
  47. const item = this.content.children[index];
  48. if(item.getComponent(widget_item).getShowWidgetData()!=null){
  49. let type = item.getComponent(widget_item).getShowWidgetData().type;
  50. if(type!=config.Widget_Type_List.TEXT_SOUND){
  51. item.getComponent(widget_item).setUnSelectStatus()
  52. }
  53. }
  54. }
  55. }
  56. onItemClick(data:widget_item_data){
  57. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,data.att,config.attributes_list_type.active)
  58. }
  59. close(){
  60. this.node.destroy()
  61. }
  62. }