public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater, IJavascriptSessionCache cache) { if (LocalComputeJavascriptValue(factory, updater)) { GetChildren().ForEach(child => child.ComputeJavascriptValue(factory, updater, cache)); AfterChildrenComputeJavascriptValue(); } }
public void InitOnJsContext(bool debugMode) { var builder = new BinderBuilder(WebView, _JavascriptChangesObserver); _Listener = builder.BuildListener(); _VmManager = _JavascriptFrameworkManager.CreateManager(WebView, _Listener, _Logger, debugMode); ViewModelUpdater = _VmManager.ViewModelUpdater; JavascriptSessionInjector = _VmManager.Injector; }
public MobxViewModelManager(IWebView webView, IJavascriptObject listener, IWebSessionLogger logger) { _WebView = webView; _Listener = listener; _Logger = logger; _MobxHelperLazy = new Lazy <IJavascriptObject>(GetMoxHelper); Injector = new MobxJavascriptSessionInjector(webView, _MobxHelperLazy, listener, logger); ViewModelUpdater = new MobxJavascriptViewModelUpdater(webView, _MobxHelperLazy, listener, logger); }
internal void UpdateOnJavascriptContext(IJavascriptViewModelUpdater javascriptViewModelUpdater, ISessionCache cache) { _UpdateOnJsContext?.Invoke(javascriptViewModelUpdater); if (_ExitingObjects == null) { return; } _ExitingObjects.ForEach(cache.RemoveFromJsToCSharp); javascriptViewModelUpdater.UnListen(_ExitingObjects.Where(exiting => (exiting as JsGenericObject)?.HasReadWriteProperties == true).Select(glue => glue.JsValue)); }
protected override bool LocalComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater) { if (JSValue != null) { return(false); } _ViewModelUpdater = updater; JSValue = factory.CreateArray(Items.Count); return(true); }
public HTMLViewContext(IWebView webView, IDispatcher uiDispatcher, IJavascriptFrameworkManager javascriptFrameworkManager, IJavascriptChangesObserver javascriptChangesObserver, IWebSessionLogger logger) { WebView = webView; _logger = logger; UIDispatcher = uiDispatcher; var builder = new BinderBuilder(webView, javascriptChangesObserver); _Listener = builder.BuildListener(); _VmManager = javascriptFrameworkManager.CreateManager(WebView, _Listener, _logger); ViewModelUpdater = _VmManager.ViewModelUpdater; JavascriptSessionInjector = _VmManager.Injector; }
public HTMLViewContext(IWebView webView, IDispatcher uiDispatcher, IJavascriptFrameworkManager javascriptFrameworkManager, IJavascriptChangesObserver javascriptChangesObserver, IWebSessionLogger logger) { WebView = webView; _logger = logger; UIDispatcher = uiDispatcher; var builder = new BinderBuilder(webView, javascriptChangesObserver); _Listener = builder.BuildListener(); _VmManager = javascriptFrameworkManager.CreateManager(WebView, _Listener, _logger); ViewModelUpdater = _VmManager.ViewModelUpdater; JavascriptSessionInjector = _VmManager.Injector; }
public void UpdateOnJavascriptContext(IJavascriptViewModelUpdater javascriptViewModelUpdater) { _UpdateJavascriptObject?.Invoke(javascriptViewModelUpdater); if (Cache != null) { _ExitingObjects.ForEach(Cache.RemoveFromJsToCSharp); } if (_EntityToUnlisten.Count == 0) { return; } javascriptViewModelUpdater.UnListen(_EntityToUnlisten); }
public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater, IJavascriptSessionCache cache) { if (CValue == null) { JSValue = factory.CreateNull(); return; } IJavascriptObject value; if (factory.CreateBasic(CValue, out value)) { JSValue = value; return; } if (!CValue.GetType().IsEnum) { throw ExceptionHelper.Get("Algorithm core unexpected behaviour"); } JSValue = factory.CreateEnum((Enum)CValue); cache.CacheLocal(CValue, this); }
private void ClearAllJavascriptCollection(IJavascriptViewModelUpdater viewModelUpdater) { viewModelUpdater?.ClearAllCollection(CachableJsValue); }
private void MoveJavascriptCollection(IJavascriptViewModelUpdater viewModelUpdater, IJavascriptObject item, int oldIndex, int newIndex) { viewModelUpdater?.MoveCollectionItem(CachableJsValue, item, oldIndex, newIndex); }
private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number) { viewModelUpdater?.SpliceCollection(CachableJsValue, index, number); }
private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number, IJsCsGlue glue) { viewModelUpdater?.SpliceCollection(CachableJsValue, index, number, glue.GetJsSessionValue()); }
protected override bool LocalComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater) { if (JSValue != null) return false; JSValue = factory.CreateObject(true); return true; }
private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number, IList <IJsCsGlue> glues) { viewModelUpdater?.SpliceCollection(CachableJsValue, index, number, glues.Select(glue => glue.GetJsSessionValue()).ToArray()); }
protected override bool LocalComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater) { if (JSValue != null) { return(false); } JSValue = factory.CreateObject(true); JSValue.SetValue("CanExecuteValue", factory.CreateBool(_InitialCanExecute)); JSValue.SetValue("CanExecuteCount", factory.CreateInt(_Count)); return(true); }
protected abstract bool LocalComputeJavascriptValue(IJavascriptObjectFactory context, IJavascriptViewModelUpdater updater);