using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; namespace VEPROMS.CSLA.Library { [Serializable] [TypeConverter(typeof(ExpandableObjectConverter))] public class DocumentConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged { #region XML private XMLProperties _Xp; private XMLProperties Xp { get { return _Xp; } } #endregion #region Constructors public Document _Document; private DocumentInfo _DocumentInfo; public DocumentConfig(Document document) { _Document = document; string xml = _Document.Config; if (xml == string.Empty) xml = ""; _Xp = new XMLProperties(xml); } public DocumentConfig(DocumentInfo documentInfo) { _DocumentInfo = documentInfo; string xml = _DocumentInfo.Config; if (xml == string.Empty) xml = ""; _Xp = new XMLProperties(xml); } internal string GetValue(string group, string item) { return _Xp[group, item]; } #endregion #region Properties [Category("General")] [DisplayName("Name")] [Description("Name")] public string Name { get { return (_Document != null ? _Document.LibTitle : _DocumentInfo.LibTitle); } set { if (_Document != null) _Document.LibTitle = value; } } [Category("General")] [DisplayName("Comment")] [RefreshProperties(RefreshProperties.All)] [Description("Comment")] public string LibDoc_Comment { get { string s = _Xp["LibDoc", "Comment"];// get the saved value return s; } set { _Xp["LibDoc", "Comment"] = value; OnPropertyChanged("LibDoc_Comment"); } } #endregion #region ToString public override string ToString() { string s = _Xp.ToString(); if (s == "" || s == "") return string.Empty; return s; } #endregion } }