842 lines
22 KiB
C#
842 lines
22 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? _CheckOffUCF;
|
|
[DisplayName("UCF CheckOffs")]
|
|
[Description("Additional UCF Check Offs and Sign Offs")]
|
|
public bool? CheckOffUCF
|
|
{
|
|
get { return _CheckOffUCF; }
|
|
set { _CheckOffUCF = value; }
|
|
}
|
|
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
|
|
[Flags]
|
|
public enum E_ReplaceFlagsUCF : uint
|
|
{
|
|
High = 0x0001, // Do ReplaceWords in HIGH LEVEL STEPS
|
|
RNO = 0x0002, // Do ReplaceWords in RNOS
|
|
Caution = 0x0004, // Do ReplaceWords in CAUTIONS
|
|
Note = 0x0008, // Do ReplaceWords in NOTES
|
|
Table = 0x0010, // Do ReplaceWords in TABLES
|
|
Substep = 0x0020, // Do ReplaceWords in SUBSTEPS
|
|
Attach = 0x0040, // Do ReplaceWords in ATTACHMENTS
|
|
Bkgd = 0x0080, // Do ReplaceWords in BACKGROUNDS
|
|
DiffUnit = 0x0100, // Do ReplaceWords ONLY for different UNIT #
|
|
TOC = 0x0200, // Do in auto table-of-contents
|
|
StatTree = 0x0400,
|
|
HLSSetpnt = 0x0800, // Do ReplaceWords in HighLevelStep SETPoiNTs
|
|
Trans = 0x1000, // Do ReplaceWords in TRANSITIONS
|
|
Setpoint = 0x2000, // Do ReplaceWords in SETPOINTS
|
|
|
|
// Case Sensitivity Flags - default is off (Case Sensitive Replace)
|
|
CaseInsens = 0x0000C000, // Do ReplaceWords for all words thatmatch, regardless of case,
|
|
// and replace with the ReplaceWith string as is
|
|
// B2019-022: do not support CaseInsensFirst & CaseInsensAll - there is no supporting replace word code:
|
|
//CaseInsensFirst = 0x4000, // Do ReplaceWords for all words thatexactly match the ReplaceWord,
|
|
// except the case of the first character may be different
|
|
//CaseInsensAll = 0x8000, // Do ReplaceWords for all words that match the ReplaceWord, regardless of case
|
|
|
|
Partials = 0x10000, // Do replace even on partial matches
|
|
Plackeep = 0x20000, // Do replace in PlaceKeepers
|
|
InSecTitle = 0x40000,
|
|
BeforeTrans = 0x80000, // Only do replace if the string occurs immediately before a transition.
|
|
BeforeList = 0x100000, // C2021-045 Only if the text ends with a colon ":"
|
|
PageList = 0x200000, // F2021-053 Do replace words for PageList items that are ROs
|
|
FirstWord = 0x400000, // C2021-056 Do only if is the first word in the text
|
|
NotInRO = 0x800000 // B2022-015 BNPPalr: Determine whether RO text should have Replace Words applied
|
|
}
|
|
[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 E_ReplaceFlagsUCF _Flag;
|
|
[Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))]
|
|
[XmlAttribute("Flag")]
|
|
[DisplayName("Flags (Use In)")] // Note that [Description] is not used in collection items (that use collection editor)
|
|
public E_ReplaceFlagsUCF Flag
|
|
{
|
|
get { return (E_ReplaceFlagsUCF)_Flag; }
|
|
set { _Flag = 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;
|
|
[Editor(typeof(RtfEditor), typeof(System.Drawing.Design.UITypeEditor))]
|
|
|
|
[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
|
|
}
|
|
}
|