792 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			792 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Collections.ObjectModel;
 | 
						|
using System.Text;
 | 
						|
using System.ComponentModel;
 | 
						|
using DescriptiveEnum;
 | 
						|
using System.Xml;
 | 
						|
using System.Xml.Serialization;
 | 
						|
using System.Xml.Schema;
 | 
						|
using System.Windows.Forms;
 | 
						|
using Volian.Base.Library;
 | 
						|
using System.Drawing;
 | 
						|
 | 
						|
namespace VEPROMS.CSLA.Library
 | 
						|
{
 | 
						|
	#region FormatConfig
 | 
						|
	// FormatConfig is the data structure that holds the UCF (User Control Of Format) data.  It is stored in the database as xml in the 
 | 
						|
	// Formats table's Config field.  This uses Xml Serialization to translate the data from these data structures back/forth from the
 | 
						|
	// xml stored in the database.  Note that fields that the user can change have an associate 'Orig' field which contains the original
 | 
						|
	// data from the format this is derived from.  This is used for the 'Reset' to the original value.
 | 
						|
	[Serializable]
 | 
						|
	[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
	public class FormatConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged
 | 
						|
	{
 | 
						|
		#region DynamicTypeDescriptor
 | 
						|
		internal override bool IsReadOnly
 | 
						|
		{
 | 
						|
			get { return false; }
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region XML
 | 
						|
		private XMLProperties _Xp;
 | 
						|
		private XMLProperties Xp
 | 
						|
		{
 | 
						|
			get { return _Xp; }
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
		#region Attributes
 | 
						|
		[XmlAttribute("Name")]
 | 
						|
		private string _Name;
 | 
						|
		[Category(" Identification")]
 | 
						|
		[DisplayName(" Name")]
 | 
						|
		[Description("Names user control of format")]
 | 
						|
		[XmlIgnore]			// ignore it when doing serialization
 | 
						|
		public string Name
 | 
						|
		{
 | 
						|
			get { return _Name; }
 | 
						|
			set { _Name = value; }
 | 
						|
		}
 | 
						|
		[XmlAttribute("Description")]
 | 
						|
		private string _Description;
 | 
						|
		[Category(" Identification")]
 | 
						|
		[Description("Describes user control of format")]
 | 
						|
		[XmlIgnore]			// ignore it when doing serialization
 | 
						|
		public string Description
 | 
						|
		{
 | 
						|
			get { return _Description; }
 | 
						|
			set { _Description = value; }
 | 
						|
		}
 | 
						|
		#endregion Attributes
 | 
						|
		#region Elements
 | 
						|
		private PlantFormatx _PlantFormat;
 | 
						|
		[DisplayName("Plant Format")]
 | 
						|
		[Description("Format values and settings that be modified for the selected format")]
 | 
						|
		public PlantFormatx PlantFormat
 | 
						|
		{
 | 
						|
			get { return _PlantFormat; }
 | 
						|
			set { _PlantFormat = value; }
 | 
						|
		}
 | 
						|
		#endregion Elements
 | 
						|
		#region Constructors
 | 
						|
		private Format _Format;
 | 
						|
		private FormatInfo _FormatInfo;
 | 
						|
		public FormatConfig(string xml)
 | 
						|
		{
 | 
						|
			if (xml == string.Empty) xml = "<FormatConfig/>";
 | 
						|
		}
 | 
						|
		public FormatConfig(FormatInfo fi)
 | 
						|
		{
 | 
						|
			_FormatInfo = fi;
 | 
						|
		}
 | 
						|
		public FormatConfig(Format f)
 | 
						|
		{
 | 
						|
			_Format = f;
 | 
						|
		}
 | 
						|
		public FormatConfig()
 | 
						|
		{
 | 
						|
			PlantFormat = new PlantFormatx();
 | 
						|
		}
 | 
						|
		#endregion Constructors
 | 
						|
		#region Serialize
 | 
						|
		public string ConvertToString()
 | 
						|
		{
 | 
						|
			return GenericSerializer<FormatConfig>.StringSerialize(this);
 | 
						|
		}
 | 
						|
		public static FormatConfig Get(string xml)
 | 
						|
		{
 | 
						|
			return GenericSerializer<FormatConfig>.StringDeserialize(xml);
 | 
						|
		}
 | 
						|
		public override string ToString()
 | 
						|
		{
 | 
						|
			return "PlantFormat";
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
	#endregion FormatConfig
 | 
						|
		#region PlantFormat
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Category("Data")]
 | 
						|
		public class PlantFormatx
 | 
						|
		{
 | 
						|
			[XmlElement]
 | 
						|
			private FormatData _FormatData = new FormatData();
 | 
						|
			[DisplayName("Step Settings")]
 | 
						|
			[Description("Values used when formatting of steps (edit and print)")]
 | 
						|
			public FormatData FormatData
 | 
						|
			{
 | 
						|
				get { return _FormatData; }
 | 
						|
				set { _FormatData = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private DocStyles _DocStyles;
 | 
						|
			[DisplayName("Section Type Settings")]
 | 
						|
			[Description("Values used when printing sections")]
 | 
						|
			public DocStyles DocStyles
 | 
						|
			{
 | 
						|
				get { return _DocStyles; }
 | 
						|
				set { _DocStyles = value; }
 | 
						|
			}
 | 
						|
			public PlantFormatx()
 | 
						|
			{
 | 
						|
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Plant Format";
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion PlantFormat
 | 
						|
		#region FormatData
 | 
						|
		// FormatData maps to the PlantFormat/Format data and contains properties & data objects that are implemented for the user to 
 | 
						|
		// control of the format.  NOTE that any additional format items must be added here or in docstyles.
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class FormatData
 | 
						|
		{
 | 
						|
			[XmlElement]
 | 
						|
			private Flags _Flags = new Flags();
 | 
						|
			[Description("Various flags that affect editing and printing")]
 | 
						|
			public Flags Flags
 | 
						|
			{
 | 
						|
				get { return _Flags; }
 | 
						|
				set { _Flags = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private CheckOffHeaderList _CheckOffHeaderList;
 | 
						|
			[DisplayName("CheckOff Headers List")]
 | 
						|
			[Description("CheckOff Headers Usage")]
 | 
						|
			public CheckOffHeaderList CheckOffHeaderList
 | 
						|
			{
 | 
						|
				get { return _CheckOffHeaderList; }
 | 
						|
				set { _CheckOffHeaderList = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private CheckOffList _CheckOffList;
 | 
						|
			[DisplayName("CheckOff List")]
 | 
						|
			[Description("CheckOff Usage")]
 | 
						|
			public CheckOffList CheckOffList
 | 
						|
			{
 | 
						|
				get { return _CheckOffList; }
 | 
						|
				set { _CheckOffList = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private float? _CheckOffXOffAdj;
 | 
						|
			//[XmlAttribute("CheckOffXOff")]
 | 
						|
			[DisplayName("CheckOff XOffset Adjust")]
 | 
						|
			[Description("Check Off X Offset Adjustment (in)")]
 | 
						|
			public float? CheckOffXOffAdj
 | 
						|
			{
 | 
						|
				get { return _CheckOffXOffAdj; }
 | 
						|
				set { _CheckOffXOffAdj = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private ReplaceStrData _ReplaceStrData;
 | 
						|
			[DisplayName("Replace Words List")]
 | 
						|
			[Description("Replace Words with Other Text and/or attributes")]
 | 
						|
			public ReplaceStrData ReplaceStrData
 | 
						|
			{
 | 
						|
				get { return _ReplaceStrData; }
 | 
						|
				set { _ReplaceStrData = value; }
 | 
						|
			}
 | 
						|
			[XmlElement]
 | 
						|
			private StepData _StepData;
 | 
						|
			[DisplayName("Step List")]
 | 
						|
			[Description("List of step types for which formatting can be set")]
 | 
						|
			public StepData StepData
 | 
						|
			{
 | 
						|
				get { return _StepData; }
 | 
						|
				set { _StepData = value; }
 | 
						|
			}
 | 
						|
			public FormatData()
 | 
						|
			{
 | 
						|
				ReplaceStrData = new ReplaceStrData();
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Format Data";
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion FormatData
 | 
						|
		#region Flags
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class Flags
 | 
						|
		{
 | 
						|
 | 
						|
			private bool? _PartialStepCompression;
 | 
						|
			[DisplayName("Partial Step Compression")]
 | 
						|
			[Description("Automatically compress last sub-steps to fit on page")]
 | 
						|
			public bool? PartialStepCompression
 | 
						|
			{
 | 
						|
				get { return _PartialStepCompression; }
 | 
						|
				set { _PartialStepCompression = value; }
 | 
						|
			}
 | 
						|
			private bool? _CompressSteps;
 | 
						|
			[DisplayName("Compress Steps")]
 | 
						|
			[Description("Automatically compress entire step to fit on page")]
 | 
						|
			public bool? CompressSteps
 | 
						|
			{
 | 
						|
				get { return _CompressSteps; }
 | 
						|
				set { _CompressSteps = value; }
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return " ";
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion Flags
 | 
						|
		#region ReplaceStrData (list)
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Editor(typeof(PropGridCollEditor), typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
		public class ReplaceStrData : List<ReplaceStr>
 | 
						|
		{
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Capacity { get { return base.Capacity; } }
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Count { get { return base.Count; } }
 | 
						|
			public ReplaceStr this[int index]
 | 
						|
			{
 | 
						|
				get { return (ReplaceStr)base[index]; }
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<ReplaceStrData>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Replace Words List Count = " + base.Count.ToString();
 | 
						|
			}
 | 
						|
			public static ReplaceStrData Get(string xml)
 | 
						|
			{
 | 
						|
				return GenericSerializer<ReplaceStrData>.StringDeserialize(xml);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion ReplaceStrData
 | 
						|
		#region ReplaceStr
 | 
						|
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class ReplaceStr
 | 
						|
		{
 | 
						|
			private int _State = 0;			// 0 = no change, -1 deleted, 1 added, 2 modified
 | 
						|
			[XmlAttribute("State")]
 | 
						|
			[Browsable(false)]		        // Don't show in the property grid
 | 
						|
			public int State
 | 
						|
			{
 | 
						|
				get { return _State; }
 | 
						|
				set { _State = value; }
 | 
						|
			}
 | 
						|
 | 
						|
			private string _ReplaceWord;
 | 
						|
			[XmlAttribute("ReplaceWord")]
 | 
						|
			[DisplayName("Replace Word")]
 | 
						|
			public string ReplaceWord
 | 
						|
			{
 | 
						|
				get { return _ReplaceWord; }
 | 
						|
				set
 | 
						|
				{
 | 
						|
					if (this._ReplaceWith == null) _ReplaceWith = value;
 | 
						|
					_ReplaceWord = value;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			private string _ReplaceWith;
 | 
						|
 | 
						|
			[XmlAttribute("ReplaceWith")]
 | 
						|
			[DisplayName("With")]
 | 
						|
			public string ReplaceWith
 | 
						|
			{
 | 
						|
				get { return _ReplaceWith; }
 | 
						|
				set { _ReplaceWith = value; }
 | 
						|
			}
 | 
						|
			public ReplaceStr()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<ReplaceStr>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return ReplaceWord;
 | 
						|
			}
 | 
						|
			public static ReplaceStr Get(string xml)
 | 
						|
			{
 | 
						|
				return GenericSerializer<ReplaceStr>.StringDeserialize(xml);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion ReplaceStr
 | 
						|
		#region CheckOffHeaders (list)
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Editor(typeof(PropGridCollEditor), typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
		public class CheckOffHeaderList : List<CheckOffHeader>
 | 
						|
		{
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Capacity { get { return base.Capacity; } }
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Count { get { return base.Count; } }
 | 
						|
			public CheckOffHeader this[int index]
 | 
						|
			{
 | 
						|
				get { return (CheckOffHeader)base[index]; }
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<CheckOffHeaderList>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "CheckOffHeader Count = " + base.Count.ToString();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion CheckOffHeaders
 | 
						|
		#region CheckOffHeader
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class CheckOffHeader
 | 
						|
		{
 | 
						|
			private string _CheckOffHeading;
 | 
						|
			[XmlAttribute("CheckOffHeading")]
 | 
						|
			[Browsable(false)]
 | 
						|
			public string CheckOffHeading
 | 
						|
			{
 | 
						|
				get { return _CheckOffHeading; }
 | 
						|
				set { _CheckOffHeading = value; }
 | 
						|
			}
 | 
						|
			private string _Index;
 | 
						|
			[XmlAttribute("Index")]
 | 
						|
			[Browsable(false)]				// Don't show in the property grid
 | 
						|
			public string Index
 | 
						|
			{
 | 
						|
				get { return _Index; }
 | 
						|
				set { _Index = value; }
 | 
						|
			}
 | 
						|
 | 
						|
			private bool? _Active;
 | 
						|
			[DisplayName("Active CheckOff Header")]
 | 
						|
			[Description("Allow use of this CheckOff Header")]
 | 
						|
			public bool? Active
 | 
						|
			{
 | 
						|
				get { return _Active; }
 | 
						|
				set { _Active = value; }
 | 
						|
			}
 | 
						|
			private bool? _OrigActive;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public bool? OrigActive
 | 
						|
			{
 | 
						|
				get { return _OrigActive; }
 | 
						|
				set { _OrigActive = value; }
 | 
						|
			}
 | 
						|
			public CheckOffHeader()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<CheckOffHeader>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return CheckOffHeading;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion CheckOffHeader
 | 
						|
		#region CheckOffs (list)
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Editor(typeof(PropGridCollEditor), typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
		public class CheckOffList : List<CheckOff>
 | 
						|
		{
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Capacity { get { return base.Capacity; } }
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Count { get { return base.Count; } }
 | 
						|
			public CheckOff this[int index]
 | 
						|
			{
 | 
						|
				get { return (CheckOff)base[index]; }
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<CheckOffList>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "CheckOff Count = " + base.Count.ToString();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion CheckOffs
 | 
						|
		#region CheckOff
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class CheckOff
 | 
						|
		{
 | 
						|
			private string _MenuItem;
 | 
						|
			[XmlAttribute("MenuItem")]
 | 
						|
			[Browsable(false)]
 | 
						|
			public string MenuItem
 | 
						|
			{
 | 
						|
				get { return _MenuItem; }
 | 
						|
				set { _MenuItem = value; }
 | 
						|
			}
 | 
						|
			private string _Index;
 | 
						|
			[XmlAttribute("Index")]
 | 
						|
			[Browsable(false)]				// Don't show in the property grid
 | 
						|
			public string Index
 | 
						|
			{
 | 
						|
				get { return _Index; }
 | 
						|
				set { _Index = value; }
 | 
						|
			}
 | 
						|
 | 
						|
			private bool? _Active;
 | 
						|
			[DisplayName("Active CheckOff")]
 | 
						|
			[Description("Allow use of this CheckOff")]
 | 
						|
			public bool? Active
 | 
						|
			{
 | 
						|
				get { return _Active; }
 | 
						|
				set { _Active = value; }
 | 
						|
			}
 | 
						|
			private bool? _OrigActive;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public bool? OrigActive
 | 
						|
			{
 | 
						|
				get { return _OrigActive; }
 | 
						|
				set { _OrigActive = value; }
 | 
						|
			}
 | 
						|
			public CheckOff()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<CheckOff>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return MenuItem;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion CheckOff
 | 
						|
		#region ShwRplWds
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class ShwRplWds
 | 
						|
		{
 | 
						|
			private string _MenuItem;
 | 
						|
			[XmlAttribute("MenuItem")]
 | 
						|
			[Browsable(false)]
 | 
						|
			public string MenuItem
 | 
						|
			{
 | 
						|
				get { return _MenuItem; }
 | 
						|
				set { _MenuItem = value; }
 | 
						|
			}
 | 
						|
			private string _Index;
 | 
						|
			[XmlAttribute("Index")]
 | 
						|
			[Browsable(false)]              // Don't show in the property grid
 | 
						|
			public string Index
 | 
						|
			{
 | 
						|
				get { return _Index; }
 | 
						|
				set { _Index = value; }
 | 
						|
			}
 | 
						|
 | 
						|
			private bool? _Active;
 | 
						|
			[DisplayName("Active ShwRplWds")]
 | 
						|
			[Description("Allow use of this ShwRplWds")]
 | 
						|
			public bool? Active
 | 
						|
			{
 | 
						|
				get { return _Active; }
 | 
						|
				set { _Active = value; }
 | 
						|
			}
 | 
						|
			private bool? _OrigActive;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public bool? OrigActive
 | 
						|
			{
 | 
						|
				get { return _OrigActive; }
 | 
						|
				set { _OrigActive = value; }
 | 
						|
			}
 | 
						|
			public ShwRplWds()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<ShwRplWds>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return MenuItem;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion ShwRplWds
 | 
						|
		#region StepData (list)
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Editor(typeof(PropGridCollEditor), typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
		public class StepData : List<Step>
 | 
						|
		{
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Capacity { get { return base.Capacity; } }
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Count { get { return base.Count; } }
 | 
						|
			public Step this[int index]
 | 
						|
			{
 | 
						|
				get { return (Step)base[index]; }
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<StepData>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Step Count = " + base.Count.ToString();
 | 
						|
			}
 | 
						|
			public static StepData Get(string xml)
 | 
						|
			{
 | 
						|
				return GenericSerializer<StepData>.StringDeserialize(xml);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion StepData
 | 
						|
		#region Step
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class Step
 | 
						|
		{
 | 
						|
			private string _Index;
 | 
						|
			[XmlAttribute("Index")]
 | 
						|
			[Browsable(false)]				// Don't show in the property grid
 | 
						|
			public string Index
 | 
						|
			{
 | 
						|
				get { return _Index; }
 | 
						|
				set { _Index = value; }
 | 
						|
			}
 | 
						|
			private string _Type;
 | 
						|
			[XmlAttribute("Type")]
 | 
						|
			[Browsable(false)]		// Don't show in the property grid
 | 
						|
			public string Type
 | 
						|
			{
 | 
						|
				get { return _Type; }
 | 
						|
				set { _Type = value; }
 | 
						|
			}
 | 
						|
			private FontDesc _FontDesc;
 | 
						|
			[XmlElement("FontDesc")]
 | 
						|
			public FontDesc FontDesc
 | 
						|
			{
 | 
						|
				get { return _FontDesc; }
 | 
						|
				set { _FontDesc = value; }
 | 
						|
			}
 | 
						|
			public Step()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<Step>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return Type;
 | 
						|
			}
 | 
						|
			public static Step Get(string xml)
 | 
						|
			{
 | 
						|
				return GenericSerializer<Step>.StringDeserialize(xml);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion Step
 | 
						|
		#region FontDesc
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class FontDesc
 | 
						|
		{
 | 
						|
			// The Font object allows the conversion from a windows font back/forth from a string.  This is how the
 | 
						|
			// data is stored in the database, i.e. a string representing the font.
 | 
						|
			private Font _Font;
 | 
						|
			[XmlAttribute("Font")]
 | 
						|
			[Browsable(false)]
 | 
						|
			public string Font
 | 
						|
			{
 | 
						|
				get
 | 
						|
				{
 | 
						|
					System.Drawing.FontConverter cvt = new System.Drawing.FontConverter();
 | 
						|
					return cvt.ConvertToString(_WindowsFont);
 | 
						|
				}
 | 
						|
				set
 | 
						|
				{
 | 
						|
					System.Drawing.FontConverter cvt = new System.Drawing.FontConverter();
 | 
						|
					_WindowsFont = cvt.ConvertFromString(value ?? "Arial, 10pt") as System.Drawing.Font;
 | 
						|
 | 
						|
				}
 | 
						|
			}
 | 
						|
			private System.Drawing.Font _OrigWindowsFont;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public System.Drawing.Font OrigWindowsFont
 | 
						|
			{
 | 
						|
				get { return _OrigWindowsFont; }
 | 
						|
				set { _OrigWindowsFont = value; }
 | 
						|
			}
 | 
						|
			private System.Drawing.Font _WindowsFont;
 | 
						|
			[XmlIgnore]
 | 
						|
			public System.Drawing.Font WindowsFont
 | 
						|
			{
 | 
						|
				get { return _WindowsFont; }
 | 
						|
				set { _WindowsFont = value; }
 | 
						|
			}
 | 
						|
			public FontDesc()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<FontDesc>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "FontDescription";
 | 
						|
			}
 | 
						|
			public static FontDesc Get(string xml)
 | 
						|
			{
 | 
						|
				return GenericSerializer<FontDesc>.StringDeserialize(xml);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion Font
 | 
						|
		#region DocStyles
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		[Editor(typeof(PropGridCollEditor), typeof(System.Drawing.Design.UITypeEditor))]
 | 
						|
		public class DocStyles : List<DocStyle>
 | 
						|
		{
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Capacity { get { return base.Capacity; } }
 | 
						|
			[Browsable(false)]
 | 
						|
			public int Count { get { return base.Count; } }
 | 
						|
			public DocStyle this[int index]
 | 
						|
			{
 | 
						|
				get { return (DocStyle)base[index]; }
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<DocStyles>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Section Type Count = " + base.Count.ToString();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion DocStyles
 | 
						|
		#region DocStyle
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class DocStyle
 | 
						|
		{
 | 
						|
			private string _Name;
 | 
						|
			[XmlAttribute("Name")]
 | 
						|
			[Browsable(false)]
 | 
						|
			public string Name
 | 
						|
			{
 | 
						|
				get { return _Name; }
 | 
						|
				set { _Name = value; }
 | 
						|
			}
 | 
						|
			private string _Index;
 | 
						|
			[Browsable(false)]
 | 
						|
			[XmlAttribute("Index")]
 | 
						|
			public string Index
 | 
						|
			{
 | 
						|
				get { return _Index; }
 | 
						|
				set { _Index = value; }
 | 
						|
			}
 | 
						|
			private Layout _Layout;
 | 
						|
			[XmlElement("Layout")]
 | 
						|
			public Layout Layout
 | 
						|
			{
 | 
						|
				get { return _Layout; }
 | 
						|
				set { _Layout = value; }
 | 
						|
			}
 | 
						|
			public DocStyle()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<DocStyle>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return Name;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		#endregion DocStyle
 | 
						|
		#region Layout
 | 
						|
		[Serializable]
 | 
						|
		[TypeConverter(typeof(ExpandableObjectConverter))]
 | 
						|
		public class Layout : IXmlSerializable
 | 
						|
		{
 | 
						|
			private float? _PageLength;
 | 
						|
			[XmlAttribute("PageLength")]
 | 
						|
			[DisplayName("Page Length (in)")]
 | 
						|
			public float? PageLength
 | 
						|
			{
 | 
						|
				get { return _PageLength; }
 | 
						|
				set { _PageLength = value; }
 | 
						|
			}
 | 
						|
			private float? _OrigPageLength;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public float? OrigPageLength
 | 
						|
			{
 | 
						|
				get { return _OrigPageLength; }
 | 
						|
				set { _OrigPageLength = value; }
 | 
						|
			}
 | 
						|
			private float? _LeftMargin;
 | 
						|
			[XmlAttribute("LeftMargin")]
 | 
						|
			[DisplayName("Left Margin (in)")]
 | 
						|
			public float? LeftMargin
 | 
						|
			{
 | 
						|
				get { return _LeftMargin; }
 | 
						|
				set { _LeftMargin = value; }
 | 
						|
			}
 | 
						|
			private float? _OrigLeftMargin;
 | 
						|
			[XmlIgnore]
 | 
						|
			[Browsable(false)]
 | 
						|
			public float? OrigLeftMargin
 | 
						|
			{
 | 
						|
				get { return _OrigLeftMargin; }
 | 
						|
				set { _OrigLeftMargin = value; }
 | 
						|
			}
 | 
						|
			public Layout()
 | 
						|
			{
 | 
						|
			}
 | 
						|
			public string ConvertToString()
 | 
						|
			{
 | 
						|
				return GenericSerializer<Layout>.StringSerialize(this);
 | 
						|
			}
 | 
						|
			public override string ToString()
 | 
						|
			{
 | 
						|
				return "Layout";
 | 
						|
			}
 | 
						|
			#region IXmlSerializable members
 | 
						|
			// The read & write for these is necessary since they are within same xml element, and one may be empty, so
 | 
						|
			// no attribute should be listed in the xml.
 | 
						|
			public void WriteXml(XmlWriter writer)
 | 
						|
			{
 | 
						|
				if (LeftMargin != null) writer.WriteAttributeString("LeftMargin", LeftMargin.ToString());
 | 
						|
				if (PageLength != null) writer.WriteAttributeString("PageLength", PageLength.ToString());
 | 
						|
			}
 | 
						|
 | 
						|
			public void ReadXml(XmlReader reader)
 | 
						|
			{
 | 
						|
				if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "Layout")
 | 
						|
				{
 | 
						|
					string str = reader["PageLength"];
 | 
						|
					if (str != null && str != "") PageLength = float.Parse(str);
 | 
						|
					str = reader["LeftMargin"];
 | 
						|
					if (str != null && str != "") LeftMargin = float.Parse(str);
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			public XmlSchema GetSchema()
 | 
						|
			{
 | 
						|
				return (null);
 | 
						|
			}
 | 
						|
			#endregion
 | 
						|
		}
 | 
						|
		#endregion Layout
 | 
						|
	}
 | 
						|
}
 |