92 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.Xml;
 | |
| using VEPROMS.CSLA.Library;
 | |
| 
 | |
| namespace Volian.Print.Library
 | |
| {
 | |
| 	public class CPSGen
 | |
| 	{
 | |
| 		private vlnParagraph _MyVlnParagraph;
 | |
| 		public vlnParagraph MyVlnParagraph
 | |
| 		{
 | |
| 			get { return _MyVlnParagraph; }
 | |
| 			set { _MyVlnParagraph = value; }
 | |
| 		}
 | |
| 		public CPSGen(vlnParagraph myParagraph)
 | |
| 		{
 | |
| 			_MyVlnParagraph = myParagraph;
 | |
| 		}
 | |
| 		public void Generate(string fileName)
 | |
| 		{
 | |
| 			XmlDocument xd = new XmlDocument();
 | |
| 			XmlElement parent =  xd.AppendChild(xd.CreateElement("Items")) as XmlElement;
 | |
| 			Generate(0, 0,parent, MyVlnParagraph);
 | |
| 			xd.Save(fileName);
 | |
| 		}
 | |
| 		public void Generate(int level,int fromType,XmlElement parent, vlnParagraph para)
 | |
| 		{
 | |
| 			ItemInfo itm = para.MyItemInfo;
 | |
| 			XmlElement xe = parent.AppendChild(parent.OwnerDocument.CreateElement("Item")) as XmlElement;
 | |
| 			AddAttribute(xe, "Level", level);
 | |
| 			AddAttribute(xe, "FromType", fromType);
 | |
| 			AddAttribute(xe, "Ordinal", itm.Ordinal);
 | |
| 			AddAttribute(xe, "ParentID", (itm.ActiveParent as ItemInfo).ItemID);
 | |
| 			//AddAttribute(xe, "Xoffset", para.XOffset);
 | |
| 			AddAttribute(xe, "ItemID", itm.ItemID);
 | |
| 			AddAttribute(xe, "PreviousID", itm.PreviousID);
 | |
| 			AddAttribute(xe, "ContentID", itm.ContentID);
 | |
| 			AddAttribute(xe, "DTS", itm.MyContent.DTS);
 | |
| 			AddAttribute(xe, "UserID", itm.MyContent.UserID);
 | |
| 			AddAttribute(xe, "Number", itm.MyContent.Number);
 | |
| 			AddAttribute(xe, "Text", itm.MyContent.Text);
 | |
| 			AddAttribute(xe, "Type", itm.MyContent.Type);
 | |
| 			AddAttribute(xe, "FormatID", itm.MyContent.FormatID);
 | |
| 			AddAttribute(xe, "Config", itm.MyContent.Config);
 | |
| 			AddAttribute(xe, "Rtf", para.Rtf);
 | |
| 			//AddParts(xe, "PartsAbove", para.PartsAbove);
 | |
| 			//AddParts(xe, "PartsLeft", para.PartsLeft);
 | |
| 			//AddParts(xe, "PartsRight", para.PartsRight);
 | |
| 			//AddParts(xe, "PartsBelow", para.PartsBelow);
 | |
| 			AddChildren(level,0,  parent, "ChildrenAbove", para.ChildrenAbove);
 | |
| 			AddChildren(level,0,  parent,  "ChildrenLeft", para.ChildrenLeft);
 | |
| 			AddChildren(level,0,  parent,  "ChildrenRight", para.ChildrenRight);
 | |
| 			AddChildren(level,0,  parent,  "ChildrenBelow", para.ChildrenBelow);
 | |
| 		}
 | |
| 		private void AddChildren(int level, int fromType, XmlElement parent, string name, vlnParagraphs children)
 | |
| 		{
 | |
| 			if (children == null || children.Count == 0) return;
 | |
| 			//XmlElement xchildren = xe.OwnerDocument.AppendChild(xe.OwnerDocument.CreateElement(name)) as XmlElement;
 | |
| 			foreach(vlnParagraph child in children)
 | |
| 			{
 | |
| 				//XmlElement xechild = xe.ParentNode.AppendChild(xe.OwnerDocument.CreateElement("Item")) as XmlElement;
 | |
| 				Generate(level+1,0,parent,child);
 | |
| 			}
 | |
| 		}
 | |
| 		//private void AddParts(XmlElement xe, string name, vlnPrintObjects parts)
 | |
| 		//{
 | |
| 		//	if (parts == null || parts.Count == 0) return;
 | |
| 		//	XmlElement xpart = xe.AppendChild(xe.OwnerDocument.CreateElement(name)) as XmlElement;
 | |
| 		//	foreach (vlnPrintObject part in parts)
 | |
| 		//	{
 | |
| 		//		XmlElement xechild = xpart.AppendChild(xe.OwnerDocument.CreateElement(part.GetType().Name)) as XmlElement;
 | |
| 		//		Generate(xechild, part);
 | |
| 		//	}
 | |
| 		//}
 | |
| 		//private void Generate(XmlElement xe, vlnPrintObject part)
 | |
| 		//{
 | |
| 		//	AddAttribute(xe, "Xoffset", part.XOffset);
 | |
| 		//	AddAttribute(xe, "Width", part.Width);
 | |
| 		//	AddAttribute(xe, "Rtf", part.Rtf);			
 | |
| 		//}
 | |
| 		private void AddAttribute(XmlElement xe, string attr, object val)
 | |
| 		{
 | |
| 			if (val == null) return;
 | |
| 			XmlAttribute xa = xe.OwnerDocument.CreateAttribute(attr);
 | |
| 			xa.Value = val.ToString();
 | |
| 			xe.Attributes.Append(xa);
 | |
| 		}
 | |
| 	}
 | |
| }
 | 
