PurplePen.Leg.WriteAttributesAndContent C# (CSharp) Method

WriteAttributesAndContent() public method

public WriteAttributesAndContent ( XmlTextWriter xmloutput ) : void
xmloutput System.Xml.XmlTextWriter
return void
        public override void WriteAttributesAndContent(XmlTextWriter xmloutput)
        {
            // Write attributes
            xmloutput.WriteAttributeString("start-control", XmlConvert.ToString(controlId1.id));
            xmloutput.WriteAttributeString("end-control", XmlConvert.ToString(controlId2.id));

            // Write elements
            if (flagging != FlaggingKind.None) {
                // Flagging element. -- what kind of flagging and start/stop point.
                string flagKind;
                switch (flagging) {
                case FlaggingKind.Begin: flagKind = "beginning-part"; break;
                case FlaggingKind.End: flagKind = "end-part"; break;
                case FlaggingKind.All: flagKind = "all"; break;
                default: Debug.Fail("bad flagging kind"); flagKind = ""; break;
                }

                xmloutput.WriteStartElement("flagging");
                xmloutput.WriteAttributeString("kind", flagKind);
                if (flagging != FlaggingKind.All) {
                    xmloutput.WriteAttributeString("x", XmlConvert.ToString(flagStartStop.X));
                    xmloutput.WriteAttributeString("y", XmlConvert.ToString(flagStartStop.Y));
                }
                xmloutput.WriteEndElement();
            }

            if (bends != null && bends.Length > 0) {
                // Bends
                xmloutput.WriteStartElement("bends");

                foreach (PointF location in bends) {
                    xmloutput.WriteStartElement("location");
                    xmloutput.WriteAttributeString("x", XmlConvert.ToString(location.X));
                    xmloutput.WriteAttributeString("y", XmlConvert.ToString(location.Y));
                    xmloutput.WriteEndElement();
                }

                xmloutput.WriteEndElement();
            }

            if (gaps != null && gaps.Length > 0) {
                // Gaps
                xmloutput.WriteStartElement("gaps");

                for (int i = 0; i < gaps.Length; ++i) {
                    xmloutput.WriteStartElement("gap");
                    xmloutput.WriteAttributeString("start", XmlConvert.ToString(gaps[i].distanceFromStart));
                    xmloutput.WriteAttributeString("length", XmlConvert.ToString(gaps[i].length));
                    xmloutput.WriteEndElement();
                }

                xmloutput.WriteEndElement();
            }
        }