123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- using UnityEngine.Events;
- namespace WS
- {
-
- public abstract class BaseController : WSComponent
- {
-
- public abstract void OpenView();
-
-
- public abstract void OpenView(UnityAction opencallback);
-
-
- public abstract void OpenView(string clone);
-
-
-
- public abstract void OpenView(string clone, UnityAction opencallback);
-
-
- public abstract void OpenView(ViewShowModeType showmode);
-
-
-
- public abstract void OpenView(ViewShowModeType showmode, string clone);
-
-
-
-
- public abstract void OpenView(ViewShowModeType showmode, string clone, UnityAction opencallback);
-
- public abstract void CloseView(UnityAction closecallback = null, bool isDispose = true);
- }
-
- public class Controller<V> : BaseController where V : View
- {
-
- protected V _View;
-
- public override void OpenView()
- {
- _View = FacadeComponent.Instance.OpenView<V>();
- }
-
-
- public override void OpenView(UnityAction opencallback)
- {
- _View = FacadeComponent.Instance.OpenView<V>(opencallback);
- }
-
-
- public override void OpenView(string clone)
- {
- _View = FacadeComponent.Instance.OpenView<V>(clone);
- }
-
-
-
- public override void OpenView(string clone, UnityAction opencallback)
- {
- _View = FacadeComponent.Instance.OpenView<V>(clone, opencallback);
- }
-
-
- public override void OpenView(ViewShowModeType showmode)
- {
- _View = FacadeComponent.Instance.OpenView<V>(showmode);
- }
-
-
-
- public override void OpenView(ViewShowModeType showmode, string clone)
- {
- _View = FacadeComponent.Instance.OpenView<V>(showmode, clone);
- }
-
-
-
-
- public override void OpenView(ViewShowModeType showmode, string clone, UnityAction opencallback)
- {
- _View = FacadeComponent.Instance.OpenView<V>(showmode, clone, opencallback);
- }
-
- public override void CloseView(UnityAction closecallback = null, bool isDispose = true)
- {
- FacadeComponent.Instance.CloseView(_View, closecallback);
- _View = null;
- if (isDispose)
- {
- FacadeComponent.Instance.RemoveController(this);
- }
- }
- public override void Dispose()
- {
- base.Dispose();
- if (_View != null)
- {
- if (_View.ShowType == ViewShowType.Open)
- {
- CloseView();
- }
- _View = null;
- }
- }
- }
-
- public abstract class Controller<V, M> : Controller<V> where V : View where M : Model
- {
-
- protected M _Model;
-
- protected abstract void BindingViewModel();
- public override void OpenView()
- {
- base.OpenView();
- CreateModel();
- }
- public override void OpenView(string clone)
- {
- base.OpenView(clone);
- CreateModel();
- }
- public override void OpenView(UnityAction opencallback = null)
- {
- base.OpenView(opencallback);
- CreateModel();
- }
- public override void OpenView(string clone, UnityAction opencallback = null)
- {
- base.OpenView(clone, opencallback);
- CreateModel();
- }
- public override void OpenView(ViewShowModeType showmode)
- {
- base.OpenView(showmode);
- CreateModel();
- }
- public override void OpenView(ViewShowModeType showmode, string clone)
- {
- base.OpenView(showmode, clone);
- CreateModel();
- }
- public override void OpenView(ViewShowModeType showmode, string clone, UnityAction opencallback)
- {
- base.OpenView(showmode, clone, opencallback);
- CreateModel();
- }
-
- private void CreateModel()
- {
- _Model = FacadeComponent.Instance.CreateModel<M>();
- BindingViewModel();
- }
- public override void Dispose()
- {
- base.Dispose();
- FacadeComponent.Instance.RemoveModel(_Model);
- _Model = null;
- }
- }
- }
|