using UnityEngine; using UnityEngine.UI; using System.Collections; public class ClanCreateView : View { public Text nameLabel; public Text descLabel; public InputField nameInput; public InputField descInput; public Text createLabel; private ClanData clanData; void Start() { nameLabel.text = Language.GetStr ("ClanPanel", "nameLabel"); descLabel.text = Language.GetStr ("ClanPanel", "descLabel"); nameInput.onValidateInput += StringUtil.InputValidateHandler; descInput.onValidateInput += StringUtil.InputValidateHandler; } protected override void OnVisibleChanged () { base.OnVisibleChanged (); if (visible) { clanData = null; int clanId = Session.GetInstance ().myUserData.clanId; if (clanId <= 0) { createLabel.text = Language.GetStr ("ClanPanel", "create"); nameInput.text = ""; descInput.text = ""; } else { createLabel.text = Language.GetStr ("ClanPanel", "edit"); ClanManager.GetInstance ().GetClan (clanId, (ClanData data) => { clanData = data; nameInput.text = clanData.name; descInput.text = clanData.description; }); } } } protected override void OnDestroy () { base.OnDestroy (); nameInput.onValidateInput -= StringUtil.InputValidateHandler; descInput.onValidateInput -= StringUtil.InputValidateHandler; } public void Clear() { nameInput.text = descInput.text = ""; } public void OnNameChanged() { nameInput.text = StringUtil.LimitInput (nameInput.text, Config.MAX_ARRAY_NAME_LENGTH); } public void OnDescChanged() { descInput.text = StringUtil.LimitInput (descInput.text, Config.MAX_ARRAY_DESC_LENGTH); } public void ClickCreate() { if(nameInput.text.Length == 0) { AlertPanel.Show (Language.GetStr("ClanPanel", "emptyName")); return; } int clanId = Session.GetInstance ().myUserData.clanId; if(clanId <= 0) { ClanRequest request = ClanRequest.Create (nameInput.text, descInput.text, ClanData.Limit.Anyone); request.ResultEvent.AddListener((bool success, LitJson.JsonData data) => { if(success) { Session.GetInstance().myUserData.clanId = JsonUtil.ToInt(data); ClanPanel.ShowClanInfo(Session.GetInstance().myUserData.clanId); Session.GetInstance().GetBattleSession().GetMessageManager().ClanJoin(); } }); } else { ClanRequest request = ClanRequest.Edit (nameInput.text, descInput.text, ClanData.Limit.Anyone); request.ResultEvent.AddListener((bool success, LitJson.JsonData data) => { if(success) { if(clanData != null) { clanData.name = nameInput.text; clanData.description = descInput.text; clanData.limit = ClanData.Limit.Anyone; } ClanPanel.ShowClanInfo(clanId); } }); } } }