public void PlatHandlerTerminate_CallTerminate_WillRemoveFromOrangeAndTerminateAllButton() { int btnCount = 10; int platID = 1; OrangeManager om = new OrangeManager(); PlatHandler ph = new PlatHandler(platID); ButtonHandler[] bh = new ButtonHandler[btnCount]; om.Initialize(); om.RegistPlatHandler(ph); for (int i = 0; i < btnCount; i++) {//建立按鈕並注冊 bh[i] = new ButtonHandler(i); ph.RegistButtonHandler(bh[i]); } ph.Terminate();//銷毀介面 //確認介面及其下的按鈕是否銷毀,以及是否從橘子反注冊 Assert.IsTrue(ph.isTerminate); Assert.IsFalse(om.hasPlatHandler(platID)); for (int i = 0; i < btnCount; i++) { Assert.IsTrue(bh[i].isTerminated); } }
public void Trigger_Test() { int btnID = 10; ButtonHandler btn = new ButtonHandler(btnID); PlatHandler plat = new PlatHandler(1); plat.Initialize(new PlatHandlerTest.DummyOrange()); plat.RegistButtonHandler(btn); int isTrigger = -1; btn.onTrigger += (a, b) => { isTrigger = (a as ButtonHandler).ID; }; plat.SetEnable(true); btn.SetEnable(true); btn.Trigger(); try { Assert.AreEqual(btnID, isTrigger); } catch (Exception e) { Debug.Log(plat.GetLog()); Debug.Log("===================="); Debug.Log(btn.GetLog()); throw; } }
public void PlatHandlerOnInitialize_RegistButtonByOnInitializeEventHandler_ButtonWillInitializeAndFoundFromPlatHandler() { int btnCount = 10; int platID = 1; OrangeManager om = new OrangeManager(); PlatHandler ph = new PlatHandler(platID); ButtonHandler[] bh = new ButtonHandler[btnCount]; for (int i = 0; i < btnCount; i++) {//建立按鈕 bh[i] = new ButtonHandler(i); } ph.onInitialize += (a, b) => {//當介面初始化後註冊按鈕 for (int i = 0; i < btnCount; i++) { ph.RegistButtonHandler(bh[i]); } }; om.Initialize(); om.RegistPlatHandler(ph); for (int i = 0; i < btnCount; i++) { ph.HasButtonHandler(i); } }
public void Initialize(PlatHandler handler) { transform = handler.transform; handler.onHardShow += HardShow; handler.onHardHide += HardHide; handler.onShow += Show; handler.onHide += Hide; }
void AddPlatItem(PlatHandler platHandler) { if (isDebug) { var item = GameObject.Instantiate <GameObject>(platItemPrefabs, platListContent).GetComponent <PlatDebugItem>(); item.Initialize(platHandler); } }
public override void Initialize(PlatHandler handler) { base.Initialize(handler); handler.onShow += OnShow; handler.onHide += OnHide; handler.onHardShow += OnHardShow; handler.onHardHide += OnHardHide; }
public virtual void Initialize(PlatHandler handler) { this._plat = handler; plat.AddButton(this); InitilzeComponent(); _log += string.Format("Initialize \n{0}\n\n", LogHelper.CallStack()); if (onInitialize != null) { onInitialize(); } }
public void RegistButtonHandler_WithOutInitialize_Throw() { PlatHandler plat = new PlatHandler(0); DummyButton btn = new DummyButton(); Assert.Throws <Exception>(() => plat.RegistButtonHandler(btn)); Assert.AreEqual(0, btn.initizlie); }
//void RegistPlatListToManager() //{ // foreach (PlatHandler handler in platList) // { // instance.RegistPlatHandler(handler); // instance.AddPlatItem(handler); // } //} //void RemovePlatListFromManager() //{ // foreach (PlatHandler handler in platList) // { // try // { // instance.RemovePlatHandler(handler.ID); // instance.RemovePlatItem(handler.ID); // } // catch (NullReferenceException) // { // Debug.LogError(transform.GetPath() + "\n我想幫我的platHandler從主要manager中移除時,發現有handler不見了,不過應該沒什麼關係所以我就把錯誤拋出吃掉了~"); // } // } //} public void RegistPlatHandler(PlatHandler plat) { if (platList.Find((x) => x.ID == plat.ID) != null) { RemovePlatHandler(plat.ID); Debug.Log("有重覆的ID註冊是不允許的!不過既然上一個註冊的platHanlder不知道跑去哪了,那就把他註銷掉吧~" + plat.transform.GetPath()); } platList.Add(plat); InitializePlatHandler(plat); }
public void Initialize(PlatHandler handler) { this.handler = handler; platName.text = handler.gameObject.name; LinkShowHideBtnText(); SetShowHideBtnEvent(); LinkToggle(); SetEnableToggleEvent(); }
public PlatHandler GetPlatHandler(int id) { try { PlatHandler content = platList.Find((x) => x.ID == id); return(content); } catch (Exception) { Debug.Log("遺失或未註冊的Plat。ID=" + id); throw; } }
void AddPlatItem(PlatHandler plat) { if (platDebutItemList.Find((x) => x.handlerID == plat.ID) != null) { RemovePlatItem(plat.ID); Debug.Log("剛剛有把他註銷嗎?算了,先把他從debug內移除再說。" + plat.transform.GetPath()); } var item = GameObject.Instantiate <GameObject>(platDebugItemPrefabs, ItemListContent).GetComponent <PlatDebugItem>(); item.Initialize(plat); platDebutItemList.Add(item); }
void DrawBtnControll(PlatHandler handler) { GUILayout.BeginHorizontal(); GUILayout.Space(120); if (GUILayout.Button("Freeze /Unfreeze All", GUILayout.Width(150)) && handler.registedBtnList.Count > 0) { for (int i = 0; i < handler.registedBtnList.Count; i++) { handler.registedBtnList[i].isFreeze = !handler.registedBtnList[i].isFreeze; } } GUILayout.EndHorizontal(); }
public void ButtonHandlerTerminate_CallTerminate_WillRemoveFromPlatHandler() { int bhID = 10; ButtonHandler bh = new ButtonHandler(bhID); PlatHandler ph = new PlatHandler(1); ph.Initialize(new PlatHandlerTest.DummyOrange()); ph.RegistButtonHandler(bh); bh.Terminate(); Assert.IsTrue(bh.isTerminated); Assert.IsFalse(ph.HasButtonHandler(bhID)); }
public IEnumerator Excute(PlatHandler plat) { yield return(null); if (onStart != null) { onStart(); } if (delay > 0) { yield return(new WaitForSeconds(delay)); } yield return(ExcuteSelf(plat)); if (onComplete != null) { onComplete(); } }
public void Terminate() { if (isTerminate) { throw new Exception("橘子已終止"); } if (!isTerminate) { _isTerminate = true; IPlatHandler[] phArr = new PlatHandler[platHandlerList.Count]; int index = 0; foreach (var plat in platHandlerList) { phArr[index] = plat.Value; index++; } for (int i = 0; i < phArr.Length; i++) { phArr[i].Terminate(); } } }
void DrawContentButtonList(PlatHandler handler) { try { if (handler.registedBtnList != null && handler.registedBtnList.Count > 0) { foreach (var key in handler.registedBtnList) { DrawPlatButton(handler, key.Key); } DrawBtnControll(handler); GUILayout.Space(5); } } catch (InvalidOperationException) { } catch (Exception) { throw; } }
public void OrangeTerminate_CallTerminate_AllPlatHandlerWillTerminateToo() { // Use the Assert class to test conditions. OrangeManager om = new OrangeManager(); int platHandlerCount = 10; PlatHandler[] ph = new PlatHandler[platHandlerCount]; om.Initialize(); for (int i = 0; i < platHandlerCount; i++) { ph[i] = new PlatHandler(i); om.RegistPlatHandler(ph[i]); } om.Terminate(); Assert.IsTrue(om.isTerminate); for (int i = 0; i < platHandlerCount; i++) { Assert.IsTrue(ph[i].isTerminate); } }
void DrawContentTitle(PlatHandler content) { GUILayout.BeginHorizontal(); content.isFreeze = !GUILayout.Toggle(!content.isFreeze, "", GUILayout.Width(20)); GUILayout.Label(content.gameObject.name, GUILayout.Width(110)); EditorGUI.BeginChangeCheck(); bool isShow = GUILayout.Toggle(content.isShow, "show", GUILayout.Width(80)); if (EditorGUI.EndChangeCheck()) { if (isShow) { content.Show(); } else { content.Hide(); } } GUILayout.EndHorizontal(); }
void DrawPlatButton(PlatHandler handler, int id) { var btnContent = handler.registedBtnList[id]; EditorGUILayout.BeginHorizontal(); GUILayout.Space(25); GUILayout.Label(btnContent.ID + ":", GUILayout.Width(50)); btnContent.isFreeze = GUILayout.Toggle(btnContent.isFreeze, "isFreeze", GUILayout.Width(80)); EditorGUI.BeginChangeCheck(); BtnStateEnum state = (BtnStateEnum)EditorGUILayout.EnumPopup(btnContent.GetState(), GUILayout.Width(100)); if (EditorGUI.EndChangeCheck()) { btnContent.SetState(state); } if (GUILayout.Button("Test", GUILayout.Width(50))) { handler.TriggerBtn(btnContent.ID); } EditorGUILayout.EndHorizontal(); }
void InitializePlatHandler(PlatHandler plat) { plat.Initialize(this); plat.isFreeze = false; plat.HardHide(); }
public void Initialize(PlatHandler handler) { this.plat = handler; }
protected override void SelfExcute(PlatHandler plat) { btn.ID = btnID; plat.AddButton(btn); }
protected abstract IEnumerator ExcuteSelf(PlatHandler plat);
private void OnEnable() { compt = target as PlatHandler; }
public void Initialize(BtnHandler handler) { btn = handler; plat = handler.plat; }
public override void Initialize(PlatHandler handler) { RegistBtnComponentList(); base.Initialize(handler); }
public void Excute(PlatHandler handler) { onStart(); SelfExcute(handler); }
protected abstract void SelfExcute(PlatHandler handler);