public CSharpToJavascriptConverter(HTMLViewContext context, IJavascriptSessionCache icacher, IJSCommandFactory commandFactory, IWebSessionLogger logger)
 {
     _CommandFactory = commandFactory;
     _Logger = logger;
     _Context = context;
     _Cacher = icacher;
 }
예제 #2
0
 public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptSessionCache cache)
 {
     if (LocalComputeJavascriptValue(factory))
     {
         GetChildren().ForEach(child => child.ComputeJavascriptValue(factory, cache));
         AfterChildrenComputeJavascriptValue();
     }       
 }
        public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptSessionCache cache)
        {
            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);
        }
        protected override void Init()
        {
            _ICSharpMapper = Substitute.For<IJavascriptSessionCache>();
            _JSCommandFactory = Substitute.For<IJSCommandFactory>();
            _ICSharpMapper.GetCached(Arg.Any<object>()).Returns((IJSCSGlue)null);
            _javascriptFrameworkManager = Substitute.For<IJavascriptFrameworkManager>();
            _HTMLViewContext = new HTMLViewContext(_WebView, GetTestUIDispacther(), _javascriptFrameworkManager, null, _Logger);         
            _ConverTOJSO = new CSharpToJavascriptConverter(_HTMLViewContext, _ICSharpMapper, _JSCommandFactory, _Logger);
            _Test = new TestClass { S1 = "string", I1 = 25 };
            _Tests = new List<TestClass>
            {
                new TestClass() {  S1 = "string1", I1 = 1 },
                new TestClass() { S1 = "string2", I1 = 2  }
            };
            _Test2 = new Test2() { T1 = _Test, T2 = _Test };

            _Tests_NG = new ArrayList();
            _Tests_NG.Add(_Tests[0]);
            _Tests_NG.Add(_Tests[0]);
        }
 private CSharpToJavascriptConverter GetCircularBreakerConverter(IJavascriptSessionCache cacher)
 {
     _GlueFactory = new GlueFactory(null, cacher, null, _ObjectChangesListener);
     return(new CSharpToJavascriptConverter(cacher, _GlueFactory, _Logger));
 }
 private CSharpToJavascriptConverter GetCircularBreakerConverter(IJavascriptSessionCache cacher)
 {
     return(new CSharpToJavascriptConverter(WebBrowserWindow, cacher, _GlueFactory, _Logger));
 }
 public JavascriptObjectMixtBuilderStrategy(IWebView webView, IJavascriptSessionCache cache, bool mapping)
 {
     _SynchroneousStrategy = new JavascriptObjectSynchroneousBuilderStrategy(webView, cache, mapping);
     _BulkStrategy         = new JavascriptObjectBulkBuilderStrategy(webView, cache, mapping);
 }
 public JavascriptObjectSynchroneousBuilderStrategy(IWebView webView, IJavascriptSessionCache cache, bool mapping)
 {
     _WebView = webView;
     _Cache   = cache;
     _Mapping = mapping;
 }
예제 #9
0
 public override void SetJsValue(IJavascriptObject value, IJavascriptSessionCache sessionCache)
 {
     SetJsValue(value);
 }
예제 #10
0
 void IJsCsGlue.SetJsValue(IJavascriptObject value, IJavascriptSessionCache cache) => base.SetJsValue(value);
예제 #11
0
 internal void CleanAfterChangesOnUiThread(ObjectChangesListener offListener, IJavascriptSessionCache cache)
 {
     Cache = cache;
     CleanAfterChangesOnUiThread(offListener);
 }
예제 #12
0
 public BridgeUpdater(IJavascriptSessionCache cache)
 {
     Cache = cache;
 }
 public JavascriptObjectSynchroneousBuilderAdapter(IJavascriptObjectFactory factory, IJavascriptSessionCache cache, IJsCsGlue @object, bool mapping)
 {
     _Mapping = mapping;
     _Factory = factory;
     _Cache   = cache;
     _Object  = @object;
     _AfterChildrenUpdates = null;
 }
예제 #14
0
 public void ComputeJavascriptValue(IJavascriptObjectFactory factory, IJavascriptViewModelUpdater updater, IJavascriptSessionCache cache)
 {
     if (LocalComputeJavascriptValue(factory, updater))
     {
         GetChildren().ForEach(child => child.ComputeJavascriptValue(factory, updater, cache));
         AfterChildrenComputeJavascriptValue();
     }
 }
예제 #15
0
 public BindingInContext(IHtmlBinding binding, IJavascriptSessionCache cache)
 {
     Binding = binding;
     Cache   = cache;
 }
 private static IJavascriptObjectBuilderStrategy GetStrategy(IWebView webView, IJavascriptSessionCache cache, bool mapping)
 {
     return(webView.AllowBulkCreation ? (IJavascriptObjectBuilderStrategy) new JavascriptObjectBulkBuilderStrategy(webView, cache, mapping) :
            new JavascriptObjectSynchroneousBuilderStrategy(webView, cache, mapping));
 }
예제 #17
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);
        }
예제 #18
0
 private IJavascriptObjectBuilderStrategy GetMixtStrategy(IWebView webView, IJavascriptSessionCache cache, bool mapping)
 {
     return(new JavascriptObjectMixtBuilderStrategy(webView, cache, mapping));
 }
예제 #19
0
 public virtual void SetJsValue(IJavascriptObject value, IJavascriptSessionCache sessionCache)
 {
     SetJsValue(value);
     sessionCache.Cache(this);
 }
예제 #20
0
 public IJavascriptObjectBuilderStrategy GetStrategy(IWebView webView, IJavascriptSessionCache cache, bool mapping)
 {
     return(_StrategyFactory(webView, cache, mapping));
 }
예제 #21
0
 void IJsCsGlue.SetJsValue(IJavascriptObject value, IJavascriptSessionCache cache)
 {
     JsValue = value;
 }
 public JavascriptObjectSynchroneousBuilderAdapter(IJavascriptObjectFactory factory, IJavascriptSessionCache cache, IJSCSGlue @object, bool mapping)
 {
     _Mapping = mapping;
     _Factory = factory;
     _Cache   = cache;
     _Object  = @object;
 }