コード例 #1
0
ファイル: Client.cs プロジェクト: mgerasika/unroll-me
        public void init() {

            _div = new HtmlDivElement();
            HtmlContext.document.body.appendChild(_div);
            _welcomeDiv = new HtmlDivElement();
            _div.appendChild(_welcomeDiv);

            Server.Connect();

            /*
            Server.Subscribe(delegate(Object e) {
                Data data = e.As<Data>();
                if (null != data)
                {
                    string methodName = data._cstype.Replace("Data", "");
                    Type type = MvcHlp.Inst.GetType();
                    MethodInfo method = type.GetMethod(methodName);
                    Debug.Assert(null != method);
                    method.Invoke(MvcHlp.Inst, new object[] { data });
                    //request.Send();
                }
            });
             * */

            HtmlContext.window.addEventListener("unload", OnBeforeUnload);
        }
コード例 #2
0
ファイル: client.cs プロジェクト: mgerasika/unroll-me
        public void onStartGame(StartGameResponse response)
        {
            _turnClientId = "";
            _figure = EState.empty;

            _welcomeDiv.innerHTML = "";
            if (_welcomeDiv.parentNode != null)
            {
                _welcomeDiv.parentNode.removeChild(_welcomeDiv);
            }

            if (null != _tableCnt && _tableCnt.parentNode != null)
            {
                _tableCnt.parentNode.removeChild(_tableCnt);
            }

            if (null != _turn && _turn.parentNode != null)
            {
                _turn.parentNode.removeChild(_turn);
            }

            _turn = new HtmlDivElement();
            js.addClass(_turn, "turn");
            _div.appendChild(_turn);

            _tableCnt = new HtmlSpanElement();
            js.addClass(_tableCnt, "tableCnt");

            _table = new HtmlTableElement();
            _tableCnt.appendChild(_table);
            js.attach(_table, "click", onTableClick);
            js.attach(_table, "touchstart", onTableClick);
            js.addClass(_table, "table");
            for (int y = 0; y < 3; ++y)
            {
                var row = new HtmlTableRowElement();
                _table.appendChild(row);
                row.setAttribute("rowIdx", y.ToString());
                for (int x = 0; x < 3; ++x)
                {
                    var cell = new HtmlTableCellElement();
                    row.appendChild(cell);
                    js.addClass(cell, "tableCell");
                }
            }
            _div.appendChild(_tableCnt);


            //_div.innerHTML += "Start Game ID = " + response.GameId + "<br/>";
            _figure = (response.FirstClientId == ClientId) ? EState.blue : EState.red;
            //_div.innerHTML += "You are " + _figure + "<br/>";

            _turnClientId = response.FirstClientId;

            RefreshTurn();
        }
コード例 #3
0
ファイル: itemBase.cs プロジェクト: mgerasika/unroll-me
 public itemBase(string type, int x, int y, bool f)
 {
     _x = x;
     _y = y;
     _type = type;
     _fixed = f;
     __id = js.generateId();
     __div = new HtmlDivElement();
     __div.setAttribute("id", __id);
     js.addClass(this.__div, "item");
 }
コード例 #4
0
ファイル: client.cs プロジェクト: mgerasika/unroll-me
        public void init() {

            _div = new HtmlDivElement();
            HtmlContext.document.body.appendChild(_div);
            _welcomeDiv = new HtmlDivElement();
            _div.appendChild(_welcomeDiv);

            server.connect();

            server.subscribe(delegate(Object e) {
                var response = e.As<Response>();
                response.Analise();
            });

            HtmlContext.window.addEventListener("unload", OnBeforeUnload);
        }
コード例 #5
0
ファイル: client.cs プロジェクト: mgerasika/unroll-me
        private void init()
        {
            commet.subscribe(delegate(objectEx e)
            {
                response r = e.As<response>();
                if (r is startGameResponse)
                {
                    startGameResponse response = r as startGameResponse;
                    OnStartGame(response);
                }
                if (r is messageResponse)
                {
                    messageResponse response = r as messageResponse;
                    //_div.innerHTML += "Message From:" + response.From + " Message:" + response.Message + "<br/>";
                }
                if (r is turnResponse)
                {
                    turnResponse response = r as turnResponse;
                    if (response.message == "")
                    {
                        HtmlTableRowElement row = _table.rows[response.y].As<HtmlTableRowElement>();
                        HtmlTableCellElement cell = row.cells[response.x].As<HtmlTableCellElement>();
                        cell.innerHTML = (response.figure == EState.x) ? "x" : "o";
                        if((response.figure == EState.x))
                        {
                            js.addClass(cell,"tableCellX");
                        }
                        else
                        {
                            js.addClass(cell, "tableCell0");
                        }

                        _turnClientId = response.nextClientId;
                        RefreshTurn();
                    }
                    else if (response.message == "turn again")
                    {
                        
                    }
                    else if (response.message == "winn")
                    {
                        HtmlContext.window.alert("You winn");
                    }
                    else if (response.message == "loss")
                    {
                        HtmlContext.window.alert("You loss");
                    }
                    else if (response.message == "equal")
                    {
                        HtmlContext.window.alert("equal");
                    }

                }
                if (r is connectResponse)
                {
                    OnConnectResponse(r as connectResponse);
                }
                if (r is disconnectResponse)
                {
                    disconnectResponse response = r as disconnectResponse;
                    //_div.innerHTML += "Disconnect ID = " + response.ClientID + "<br/>";
                }
            });

            HtmlDivElement myButton = new HtmlDivElement();
            js.addClass(myButton, "button");
            myButton.innerHTML = "[Connect]";
            myButton.addEventListener("click", OnConnectClick);
            HtmlContext.document.body.appendChild(myButton);

            HtmlContext.window.addEventListener("unload", OnBeforeUnload);
        }
コード例 #6
0
ファイル: client.cs プロジェクト: mgerasika/unroll-me
        private void OnConnectResponse(connectResponse response)
        {
            _turn = new HtmlDivElement();
            js.addClass(_turn,"turn");
            HtmlContext.document.body.appendChild(_turn);

            _table = new HtmlTableElement();
            js.attach(_table, "click", onTableClick);
            js.addClass(_table, "table");
            for (int y = 0; y < 3; ++y)
            {
                HtmlTableRowElement row = new HtmlTableRowElement();
                _table.appendChild(row);
                for (int x = 0; x < 3; ++x)
                {
                    HtmlTableCellElement cell = new HtmlTableCellElement();
                    row.appendChild(cell);
                    js.addClass(cell,"tableCell");
                }
            }
            HtmlContext.document.body.appendChild(_table);
        }
コード例 #7
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 );
        }
コード例 #8
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;
        }