Esempio n. 1
0
        void InitMediator(Type mediatorType, IMediatedView view)
        {
            IMediator mediator = injector.Get <IMediator>(mediatorType);

            _mediators.Add(mediator);
            mediator.mediate  += Mediate;
            mediator.onRemove += OnRemove;
            mediator.view      = view;
            mediator.OnRegister();
            view.OnMediate();
        }
Esempio n. 2
0
        public virtual void Mediate(IMediatedView v)
        {
            if (mediate != null)
            {
                mediate(v);
            }
            else
            {
                var mediatableView = FindMediatableParent();

                if (mediatableView != null)
                {
                    mediatableView.Mediate(v);
                }
            }
        }
Esempio n. 3
0
        IMediatedView FindMediatableParent()
        {
            Type          type           = typeof(IMediatedView);
            Transform     parent         = transform.parent;
            IMediatedView mediatableView = null;

            while (parent != null)
            {
                mediatableView = (IMediatedView)parent.GetComponent(type);

                if (mediatableView != null)
                {
                    break;
                }

                parent = parent.transform.parent;
            }

            return(mediatableView);
        }
Esempio n. 4
0
 protected virtual void Mediate(IMediatedView view)
 {
     mediate(view);
 }