private void Destroy(PanelId panelId) { Panel needDestroyPanel = this.panelCache[panelId]; this.panelCache.Remove(panelId); needDestroyPanel.Dispose(); }
public PanelConfig(PanelId panelId, PanelType panelType, Type bindViewType, PanelLifespan panelLifespan) { this.PanelId = panelId; this.PanelType = panelType; this.BindViewType = bindViewType; this.PanelLifespan = panelLifespan; }
public void SaveHeader(XmlTextWriter writer) { writer.WriteAttributeString("Type", GetType().Name); writer.WriteAttributeString("Id", Id.ToString()); writer.WriteAttributeString("PanelId", PanelId.ToString()); writer.WriteAttributeString("Name", Name); writer.WriteAttributeString("Description", Description); }
internal void UpdatePanel(PanelId panelId, object data, bool loadPanel) { panelsMap[panelId].Data = data; if (loadPanel) { LoadPanel(panelId); } }
/// <summary> /// 关闭面板,会直接销毁 /// </summary> /// <param name="name"></param> public void ClosePanel(PanelId panel) { GameObject panelObject = null; if (panelLoads.TryGetValue(panel, out panelObject)) { panelLoads.Remove(panel); Destroy(panelObject); } }
public bool GetStatus(PanelId panelId, ControlType controlType) { switch (panelId) { case PanelId.First: return(GetStatusOnPanel(firstPanel, controlType)); case PanelId.Second: return(GetStatusOnPanel(secondPanel, controlType)); case PanelId.Third: default: return(GetStatusOnPanel(thirdPanel, controlType)); } }
public string GetName(PanelId panelId, ControlType controlType) { switch (panelId) { case PanelId.First: return(GetNameOnPanel(firstPanel, controlType)); case PanelId.Second: return(GetNameOnPanel(secondPanel, controlType)); case PanelId.Third: default: return(GetNameOnPanel(thirdPanel, controlType)); } }
public void SetStatus(PanelId panelId, ControlType controlType, bool value) { switch (panelId) { case PanelId.First: SetStatusOnPanel(firstPanel, controlType, value); break; case PanelId.Second: SetStatusOnPanel(secondPanel, controlType, value); break; case PanelId.Third: SetStatusOnPanel(thirdPanel, controlType, value); break; } }
/// <summary> /// /// </summary> /// <returns></returns> public override int GetHashCode() { int hash = 17; hash = hash * 23 + Id.GetHashCode(); hash = hash * 23 + OrgId.GetHashCode(); hash = hash * 23 + DashboardId.GetHashCode(); hash = hash * 23 + PanelId.GetHashCode(); hash = hash * 23 + Name.GetHashCode(); hash = hash * 23 + Message.GetHashCode(); hash = hash * 23 + State.GetHashCode(); hash = hash * 23 + Settings.GetHashCode(); hash = hash * 23 + Frequency.GetHashCode(); hash = hash * 23 + NewStateDate.GetHashCode(); hash = hash * 23 + StateChanges.GetHashCode(); return(hash); }
public async Task Load(PanelId panelId, bool showWhenDone = true, object param = null) { try { Panel panel; if (this.panelCache.TryGetValue(panelId, out panel)) { if (panel.PanelLifespan == PanelLifespan.Dynamic) { this.dynamicPanelIds.Remove(panelId); } if (!panel.IsShow && showWhenDone) { panel.OnShow(param); } return; } if (this.isLoading.Contains(panelId)) { Debug.LogWarning($"Panel {panelId} is already loading."); return; } this.isLoading.Add(panelId); Type type = this.panelTypes[panelId]; PanelConfig config = this.panelConfigs[panelId]; await Game.ResourcesComponent.LoadBundleAsync($"{panelId}"); GameObject go = GameObject.Instantiate((GameObject)Game.ResourcesComponent.GetAsset($"{panelId}", $"{panelId}.prefab")); panel = (Panel)ObjectFactory.CreateEntity(type); panel.Awake(go, config); this.isLoading.Remove(panelId); this.panelCache.Add(panelId, panel); if (showWhenDone) { panel.OnShow(param); } return; } catch (Exception e) { throw new Exception($"{panelId} UI 错误: {e}"); } }
/// <summary> /// 初始化 /// </summary> private void Init() { panelPaths = new Dictionary <PanelId, string>(); panelTypes = new Dictionary <PanelId, Type>(); //初始化,找到所有的面板 var typelist = Util.GetAllTypes(typeof(LuaFrameworkPanelAttribute)); for (int i = 0; i < typelist.Count; i++) { Type panel_type = typelist[i]; LuaFrameworkPanelAttribute att = (LuaFrameworkPanelAttribute)Attribute.GetCustomAttribute(panel_type, typeof(LuaFrameworkPanelAttribute)); PanelId panel_id = att.panelId; string panel_path = att.resPath; panelPaths.Add(panel_id, panel_path); panelTypes.Add(panel_id, panel_type); } }
/// <summary> /// /// </summary> /// <returns></returns> public override int GetHashCode() { int hash = 17; hash = hash * 23 + Id.GetHashCode(); hash = hash * 23 + OrgId.GetHashCode(); hash = hash * 23 + UserId.GetHashCode(); hash = hash * 23 + Title.GetHashCode(); hash = hash * 23 + Text.GetHashCode(); hash = hash * 23 + DashboardId.GetHashCode(); hash = hash * 23 + PanelId.GetHashCode(); hash = hash * 23 + Time.GetHashCode(); if (null != Alert) { hash = hash * 23 + Alert.GetHashCode(); } return(hash); }
public void Close(PanelId panelId, object param = null) { Panel panel; if (this.panelCache.TryGetValue(panelId, out panel)) { if (panel.IsShow) { panel.OnClose(param); if (panel.PanelLifespan == PanelLifespan.Dynamic) { this.dynamicPanelIds.Add(panelId); if (this.dynamicPanelIds.Count > DYNAMIC_LIMIT) { PanelId needDestroyId = this.dynamicPanelIds[0]; this.dynamicPanelIds.RemoveAt(0); Destroy(needDestroyId); } } } return; } }
/// <summary> /// 打开面板 /// </summary> /// <param name="panel"></param> public void OpenPanel(PanelId panel) { //path string panel_path = ""; if (!panelPaths.TryGetValue(panel, out panel_path)) { return; } //type Type panel_type = null; if (!panelTypes.TryGetValue(panel, out panel_type)) { return; } //加载, 只允许一个面板实例存在 GameObject panelObject = null; if (!panelLoads.TryGetValue(panel, out panelObject)) { CreatePanel(panel_path, (go) => { if (go != null) { go.AddComponent(panel_type); go.SetActive(true); } }); } else { panelObject.SetActive(false); panelObject.SetActive(true); } }
private void WaitForPanelToDisplay() { Report.Write("At WaitForPanelToDisplay."); PanelId.WaitUntilExists(3); }
PanelConfigAttribute(PanelId panelId, PanelType panelType, Type bindViewType, PanelLifespan panelLifespan = PanelLifespan.Dynamic) { PanelConfig = new PanelConfig(panelId, panelType, bindViewType, panelLifespan); }
public void ToggleStatus(PanelId panelId, ControlType controlType) { bool currentStatus = GetStatus(panelId, controlType); SetStatus(panelId, controlType, !currentStatus); }
public void Open(PanelId panelId, object param = null) { this.Load(panelId, true, param).WrapErrors(); }