public void Close(ClosableViewType closableViewType) { if (_closableViewControllers.TryGetValue(closableViewType, out var controller)) { controller.Close(); } }
protected void SetupClosableView <T>(T abstractView, ClosableViewType closableViewType) where T : AbstractView { SetupView(abstractView); var closableView = abstractView.GetComponent <IClosableView>(); var closableViewController = _closableViewControllerFactory.Create(closableView); _closableViewRegistrar.RegisterClosableView(closableViewType, closableViewController); }
public bool IsViewOpen(ClosableViewType closableViewType) { if (_closableViewControllers.TryGetValue(closableViewType, out var controller)) { return(controller.IsOpen); } return(false); }
void IClosableViewRegistrar.RegisterClosableView( ClosableViewType closableViewType, IClosableViewController closableViewController) { _closableViewControllers.Add(closableViewType, closableViewController); closableViewController.OnViewOpen .Subscribe(_ => _onViewOpened.OnNext(closableViewType)) .AddTo(Disposer); closableViewController.OnViewClose .Subscribe(_ => _onViewClosed.OnNext(closableViewType)) .AddTo(Disposer); }