Ejemplo n.º 1
0
 public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater, IJavascriptSessionCache cache)
 {
     if (LocalComputeJavascriptValue(factory, updater))
     {
         GetChildren().ForEach(child => child.ComputeJavascriptValue(factory, updater, cache));
         AfterChildrenComputeJavascriptValue();
     }
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        protected override bool LocalComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater)
        {
            if (JSValue != null)
            {
                return(false);
            }

            _ViewModelUpdater = updater;
            JSValue           = factory.CreateArray(Items.Count);
            return(true);
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
        public void UpdateOnJavascriptContext(IJavascriptViewModelUpdater javascriptViewModelUpdater)
        {
            _UpdateJavascriptObject?.Invoke(javascriptViewModelUpdater);

            if (Cache != null)
            {
                _ExitingObjects.ForEach(Cache.RemoveFromJsToCSharp);
            }

            if (_EntityToUnlisten.Count == 0)
            {
                return;
            }

            javascriptViewModelUpdater.UnListen(_EntityToUnlisten);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 private void ClearAllJavascriptCollection(IJavascriptViewModelUpdater viewModelUpdater)
 {
     viewModelUpdater?.ClearAllCollection(CachableJsValue);
 }
Ejemplo n.º 11
0
 private void MoveJavascriptCollection(IJavascriptViewModelUpdater viewModelUpdater, IJavascriptObject item, int oldIndex, int newIndex)
 {
     viewModelUpdater?.MoveCollectionItem(CachableJsValue, item, oldIndex, newIndex);
 }
Ejemplo n.º 12
0
 private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number)
 {
     viewModelUpdater?.SpliceCollection(CachableJsValue, index, number);
 }
Ejemplo n.º 13
0
 private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number, IJsCsGlue glue)
 {
     viewModelUpdater?.SpliceCollection(CachableJsValue, index, number, glue.GetJsSessionValue());
 }
Ejemplo n.º 14
0
        protected override bool LocalComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater)
        {
            if (JSValue != null)
                return false;

            JSValue = factory.CreateObject(true);
            return true;
        }
Ejemplo n.º 15
0
 private void Splice(IJavascriptViewModelUpdater viewModelUpdater, int index, int number, IList <IJsCsGlue> glues)
 {
     viewModelUpdater?.SpliceCollection(CachableJsValue, index, number, glues.Select(glue => glue.GetJsSessionValue()).ToArray());
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
 protected abstract bool LocalComputeJavascriptValue(IJavascriptObjectFactory context, IJavascriptViewModelUpdater updater);