Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    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);
        }
    }
Exemplo n.º 4
0
 public void Initialize(PlatHandler handler)
 {
     transform           = handler.transform;
     handler.onHardShow += HardShow;
     handler.onHardHide += HardHide;
     handler.onShow     += Show;
     handler.onHide     += Hide;
 }
Exemplo n.º 5
0
 void AddPlatItem(PlatHandler platHandler)
 {
     if (isDebug)
     {
         var item = GameObject.Instantiate <GameObject>(platItemPrefabs, platListContent).GetComponent <PlatDebugItem>();
         item.Initialize(platHandler);
     }
 }
Exemplo n.º 6
0
 public override void Initialize(PlatHandler handler)
 {
     base.Initialize(handler);
     handler.onShow     += OnShow;
     handler.onHide     += OnHide;
     handler.onHardShow += OnHardShow;
     handler.onHardHide += OnHardHide;
 }
Exemplo n.º 7
0
 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();
     }
 }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 9
0
    //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);
    }
Exemplo n.º 10
0
    public void Initialize(PlatHandler handler)
    {
        this.handler = handler;
        platName.text = handler.gameObject.name;

        LinkShowHideBtnText();
        SetShowHideBtnEvent();

        LinkToggle();
        SetEnableToggleEvent();
    }
Exemplo n.º 11
0
 public PlatHandler GetPlatHandler(int id)
 {
     try
     {
         PlatHandler content = platList.Find((x) => x.ID == id);
         return(content);
     }
     catch (Exception)
     {
         Debug.Log("遺失或未註冊的Plat。ID=" + id);
         throw;
     }
 }
Exemplo n.º 12
0
    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);
    }
Exemplo n.º 13
0
 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();
 }
Exemplo n.º 14
0
    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));
    }
Exemplo n.º 15
0
    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();
        }
    }
Exemplo n.º 16
0
 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();
         }
     }
 }
Exemplo n.º 17
0
 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;
     }
 }
Exemplo n.º 18
0
    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);
        }
    }
Exemplo n.º 19
0
    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();
    }
Exemplo n.º 20
0
    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();
    }
Exemplo n.º 21
0
 void InitializePlatHandler(PlatHandler plat)
 {
     plat.Initialize(this);
     plat.isFreeze = false;
     plat.HardHide();
 }
Exemplo n.º 22
0
 public void Initialize(PlatHandler handler)
 {
     this.plat = handler;
 }
Exemplo n.º 23
0
 protected override void SelfExcute(PlatHandler plat)
 {
     btn.ID = btnID;
     plat.AddButton(btn);
 }
Exemplo n.º 24
0
 protected abstract IEnumerator ExcuteSelf(PlatHandler plat);
Exemplo n.º 25
0
 private void OnEnable()
 {
     compt = target as PlatHandler;
 }
Exemplo n.º 26
0
 public void Initialize(BtnHandler handler)
 {
     btn  = handler;
     plat = handler.plat;
 }
Exemplo n.º 27
0
 public override void Initialize(PlatHandler handler)
 {
     RegistBtnComponentList();
     base.Initialize(handler);
 }
Exemplo n.º 28
0
 public void Excute(PlatHandler handler)
 {
     onStart();
     SelfExcute(handler);
 }
Exemplo n.º 29
0
 protected abstract void SelfExcute(PlatHandler handler);