Пример #1
0
        public void addView(JsString url, object viewData)
        {
            if (!hasView(url)) {
                //this is one point that I conced we should consider making async
                var content = contentParser.parse( contentLoader.synchronousFragmentLoad( url ) );
                var div = new HtmlDivElement();
                var fragment = jQueryContext.J( div );
                fragment.hide();
                fragment.html( content );
                fragment.css( "width", "100%" );
                fragment.css( "height", "100%" );
                fragment.css( "position", "absolute" );
                fragment.css( "top", "0" );
                fragment.css( "left", "0" );

                var mediatorCapturer = new MediatorCapturer();
                domWalker.walkDomFragment( div, mediatorCapturer );

                rootElement.append( div );
                views[ url ] = fragment;
                mediators[ url ] = mediatorCapturer.mediator;
            }

            selectView( url, viewData );
        }
Пример #2
0
        public Promise<AbstractMediator> pushView(JsString url )
        {
            Promise<AbstractMediator> promise;

            var stack = this;
            var div = new HtmlDivElement();
            var fragment = jQueryContext.J(div);
            fragment.hide();
            fragment.css("width", "100%");
            fragment.css("height", "100%");
            fragment.css("position", "absolute");
            fragment.css("top", "0");
            fragment.css("left", "0");
            fragment.data( "url", url ) ;

            promise = contentLoader.asynchronousLoad(url).thenR<AbstractMediator>(delegate(string result) {
                var content = contentParser.parse(result);

                fragment.html(content);
                fragment.attr( "data-url", url );
                decoratedNode.append(div);

                var mediatorCapturer = new MediatorCapturer();
                domWalker.walkDomFragment(div, mediatorCapturer);

                viewFragmentStack.push(fragment);
                var mediator = mediatorCapturer.mediator;
                mediators[ url ] = mediator;

                showView(_currentView, fragment);
                _currentView = fragment;

                return mediator;
            } );

            return promise;
        }