public void ViewStateWatcher_Hears_When_View_Is_Enabled() { bool heardEvent = false; context.Configure(new ContextView(contextViewObject)); IViewStateWatcher actual = context.injector.GetInstance <IViewStateWatcher>() as IViewStateWatcher; actual.enabled += delegate(object obj) { heardEvent = true; }; contextViewObject.Enable(); Assert.That(heardEvent, Is.True); }
/*============================================================================*/ /* Public Functions */ /*============================================================================*/ public void Extend(IContext context) { _context = context; _injector = context.injector; _logger = context.GetLogger(this); if (_injector.HasDirectMapping (typeof(IViewStateWatcher))) { _contextViewStateWatcher = _injector.GetMapping (typeof(IViewStateWatcher)) as IViewStateWatcher; Init (); } else { _context.AfterInitializing (BeforeInitializing); } _injector.Map(typeof(IModuleConnector)).ToSingleton(typeof(ModuleConnector)); }
private void HandleViewStateWatcher(object contextView) { if (_contextViewStateWatcher != null) { return; } if (!_context.injector.HasDirectMapping(typeof(IViewStateWatcher))) { _logger.Warn("No ViewStateWatcherExtension has been installed. Please install your platform specific extension."); return; } _contextViewStateWatcher = _context.injector.GetInstance(typeof(IViewStateWatcher)) as IViewStateWatcher; if (_contextViewStateWatcher.isAdded) { InitializeContext(); } else { _contextViewStateWatcher.added += HandleContextViewAdded; } }
private void HandleViewStateWatcher(object contextView) { if (_contextViewStateWatcher != null) return; if (!_context.injector.HasDirectMapping (typeof(IViewStateWatcher))) { _logger.Warn ("No ViewStateWatcherExtension has been installed. Please install your platform specific extension."); return; } _contextViewStateWatcher = _context.injector.GetInstance (typeof(IViewStateWatcher)) as IViewStateWatcher; if (_contextViewStateWatcher.isAdded) InitializeContext (); else _contextViewStateWatcher.added += HandleContextViewAdded; }
/*============================================================================*/ /* Private Functions */ /*============================================================================*/ private void BeforeInitializing() { if (!_injector.HasDirectMapping (typeof(IContextView))) { _logger.Error("Context has no ContextView, and ModularityExtension doesn't allow this."); return; } _contextView = (_injector.GetInstance(typeof(IContextView)) as IContextView).view; if (!_injector.HasDirectMapping (typeof(IViewStateWatcher))) { _logger.Error ("No IViewStateWatcher Installed. The Modulation extension required this"); return; } _contextViewStateWatcher = _injector.GetInstance (typeof(IViewStateWatcher)) as IViewStateWatcher; if (!_injector.HasDirectMapping (typeof(IParentFinder))) { _logger.Error ("No IParentFinder Installed. The Modulation extension required this"); return; } _parentFinder = _injector.GetInstance (typeof(IParentFinder)) as IParentFinder; Init (); }