예제 #1
0
        public override bool Paint(Writeable writeContext)
        {
            if (!Dirty)
            {
                return(false);
            }

            Coord nextMessage = new Coord(0, 0);

            _linkMask.Clear();

            writeContext.Clear();

            foreach (LogMessage message in _logger.MostRecent())
            {
                LinkPrint linkPrint = StringPrinter.PrintLinkedText(message, writeContext, 255 - nextMessage.Y * 255 / writeContext.Height, nextMessage.X, nextMessage.Y);

                foreach (var(key, value) in linkPrint.LinkMask)
                {
                    _linkMask.Add(key, value);
                }

                nextMessage = new Coord(0, linkPrint.End.Y + 1);

                if (nextMessage.Y >= writeContext.Height)
                {
                    break;
                }
            }

            Dirty = false;
            return(true);
        }
예제 #2
0
        private Readable SendRequest(Writeable payload)
        {
            // build the request header
            PlayerRqst request = CreateHeader(payload);

            // build request data
            MemoryStream  requestStream = new MemoryStream();
            XmlDataWriter requestWriter = new XmlDataWriter(requestStream);

            requestWriter.WriteObject(request.GetType().Name, request);
            requestWriter.Flush();
            if (Logger.Enabled)
            {
                Logger.LogInfo(this, "SendRequest", String.Format("Request: {0}", Encoding.UTF8.GetString(requestStream.ToArray())));
            }

            // send request
            MemoryStream responseStream = SendRequestViaHttp(requestStream);

            if (Logger.Enabled)
            {
                Logger.LogInfo(this, "SendRequest", String.Format("Response: {0}", Encoding.UTF8.GetString(responseStream.ToArray())));
            }

            // read response
            XmlDataReader responseReader = new XmlDataReader(responseStream);
            PlayerResp    response       = (PlayerResp)responseReader.ReadObject("PlayerResp", PlayerResp.CtorDataReader);

            // parse response header
            return(ParseHeader(response));
        }
예제 #3
0
        public override void WriteObject(string fieldName, Writeable data)
        {
            if (data == null)
            {
                return;
            }

            fXmlTextWriter.WriteStartElement(fieldName);
            data.WriteTo(this);
            fXmlTextWriter.WriteEndElement();
        }
예제 #4
0
        public override bool Paint(Writeable writeContext)
        {
            throw new NotImplementedException();

            /*
             * writeContext.SetGlyph(0, 0, new Glyph(BorderSet.ThinBorder.NorthWest, Color.White));
             * _inside.Paint(new TextWriteContext(writeContext, writeContext.Width - 2, writeContext.Height - 2, 1, 1));
             *
             * return true;
             */
        }
예제 #5
0
        public override bool Paint(Writeable writeContext)
        {
            for (int i = 0; i < writeContext.Width; i++)
            {
                for (int j = 0; j < writeContext.Height; j++)
                {
                    writeContext.SetGlyph(j, i, Fill);
                }
            }

            return(true);
        }
예제 #6
0
        public override bool Paint(Writeable writeContext)
        {
            bool childPainted = false;

            foreach (OverlapPaneChild child in _children)
            {
                // TODO: child.Pane.Dirty = true;
                childPainted |= child.Pane.Paint(new TextWriteContext(writeContext, child.Pane.Width, child.Pane.Height, child.Offset.X, child.Offset.Y));
            }

            return(childPainted);
        }
예제 #7
0
        private PlayerRqst CreateHeader(Writeable payload)
        {
            PlayerRqst  request;
            RequestData requestData;

            request             = PlayerRqst.NewInstance();
            request.Version     = "1.0.0";              //TODO:
            request.SessionData = fSessionData.ToString();

            requestData = RequestData.NewInstance(payload);
            //requestData.Request = payload;
            request.RequestData = requestData;

            return(request);
        }
예제 #8
0
        public override bool Paint(Writeable writeContext)
        {
            int xOffset = 0;
            int yOffset = 0;

            bool childPainted = false;

            foreach (StackPaneChild child in _children)
            {
                childPainted |= child.Pane.Paint(new TextWriteContext(writeContext, child.Pane.Width, child.Pane.Height, xOffset, yOffset));

                xOffset += Direction == StackDirection.Horizontal ? child.Pane.Width : 0;
                yOffset += Direction == StackDirection.Vertical ? child.Pane.Height : 0;
            }

            return(childPainted);
        }
예제 #9
0
        public override bool Paint(Writeable writeContext)
        {
            if (!Dirty)
            {
                return(false);
            }

            int width = writeContext.Width;
            int fill  = width * ResourceMeter.CurrentValue / ResourceMeter.MaxCapacity;
            int cap   = width * ResourceMeter.CurrentCapacity / ResourceMeter.MaxCapacity;

            writeContext.Clear();
            for (int i = 0; i < cap; i++)
            {
                writeContext.SetGlyph(0, i, new Glyph(i < Label.Length ? (Characters)Label[i] : Characters.SPACE, _fillColor.Inverted(), i < fill ? _fillColor : _capacityColor));
            }

            Dirty = false;
            return(true);
        }
예제 #10
0
 /// <summary>
 /// Write a complex object.
 /// </summary>
 /// <param name="fieldName"></param>
 /// <param name="data"></param>
 public abstract void WriteObject(string fieldName, Writeable data);
예제 #11
0
 public abstract bool Paint(Writeable writeContext);
예제 #12
0
 public static RequestData NewInstance(Writeable request)
 {
     return(new RequestData(request));
 }
예제 #13
0
 private RequestData(Writeable request)
 {
     fRequestType = new TString(request.GetType().Name);
     fRequest     = request;
 }