157 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.ComponentModel;
 | |
| using System.Drawing;
 | |
| using System.IO;
 | |
| using DescriptiveEnum;
 | |
| 
 | |
| namespace VEPROMS.CSLA.Library
 | |
| {
 | |
| 	[Serializable]
 | |
| 	[TypeConverter(typeof(ExpandableObjectConverter))]
 | |
| 	public class RODbConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged
 | |
| 	{
 | |
| 		#region DynamicTypeDescriptor
 | |
| 		internal override bool IsReadOnly
 | |
| 		{
 | |
| 			get { return _RODb == null; }
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region XML
 | |
| 		private XMLProperties _Xp;
 | |
| 		private XMLProperties Xp
 | |
| 		{
 | |
| 			get { return _Xp; }
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region Constructors
 | |
| 		private RODb _RODb;
 | |
| 		public RODbConfig(RODb roDb)
 | |
| 		{
 | |
| 			_RODb = roDb;
 | |
| 			string xml = roDb.Config;
 | |
| 			if (xml == string.Empty) xml = "<Config/>";
 | |
| 			_Xp = new XMLProperties(xml);
 | |
| 		}
 | |
| 		private RODbInfo _RODbInfo;
 | |
| 		public RODbConfig(RODbInfo roDbInfo)
 | |
| 		{
 | |
| 			_RODbInfo = roDbInfo;
 | |
| 			string xml = roDbInfo.Config;
 | |
| 			if (xml == string.Empty) xml = "<Config/>";
 | |
| 			_Xp = new XMLProperties(xml);
 | |
| 		}
 | |
| 		public RODbConfig(string xml)
 | |
| 		{
 | |
| 			if (xml == string.Empty) xml = "<Config/>";
 | |
| 			_Xp = new XMLProperties(xml);
 | |
| 		}
 | |
| 		public RODbConfig()
 | |
| 		{
 | |
| 			string xml = "<Config/>";
 | |
| 			_Xp = new XMLProperties(xml);
 | |
| 		}
 | |
| 		internal string GetValue(string group, string item)
 | |
| 		{
 | |
| 			return _Xp[group, item];
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region Local Properties
 | |
| 		[Category("General")]
 | |
| 		[DisplayName("ROName")]
 | |
| 		[Description("ROName")]
 | |
| 		public string ROName
 | |
| 		{
 | |
| 			get { return (_RODb != null ? _RODb.ROName : _RODbInfo.ROName); }
 | |
| 			set { if (_RODb != null) _RODb.ROName = value; }
 | |
| 		}
 | |
| 		[Category("General")]
 | |
| 		[DisplayName("FolderPath")]
 | |
| 		[Description("FolderPath")]
 | |
| 		public string FolderPath
 | |
| 		{
 | |
| 			get { return (_RODb != null ? _RODb.FolderPath : _RODbInfo != null?_RODbInfo.FolderPath:null); }
 | |
| 			set { if (_RODb != null) _RODb.FolderPath = value; }
 | |
| 		}
 | |
|         public RODb MyRODb
 | |
|         { get { return _RODb; } }
 | |
| 		#endregion
 | |
| 		#region ToString
 | |
| 		public override string ToString()
 | |
| 		{
 | |
| 			string s = _Xp.ToString();
 | |
| 			if (s == "<Config/>" || s == "<Config></Config>") return string.Empty;
 | |
| 			return s;
 | |
| 		}
 | |
| 		#endregion
 | |
| 		#region RODefaults
 | |
| 		[Category("Referenced Objects")]
 | |
| 		[DisplayName("Graphic File Extension")]
 | |
| 		[RefreshProperties(RefreshProperties.All)]
 | |
| 		[Description("Default File Extension")]
 | |
| 		public string Graphics_defaultext
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				// For this data:
 | |
| 				//  look in roapp.ini in the FolderPath directory;
 | |
| 				//  look in top folder's config
 | |
| 				//  set to Volian default, i.e. "TIF".
 | |
| 				string s = GetRoAppIniValue("ROAPP", "Extention");
 | |
| 				if (s == null || s == string.Empty)
 | |
| 					s = TopFolderConfigValue("Graphics", "defaultext");
 | |
| 				if (s == null || s == string.Empty)
 | |
| 					return s = "TIF";
 | |
| 
 | |
| 				return s;
 | |
| 			}
 | |
| 		}
 | |
| 		private string GetRoAppIniValue(string p, string p_2)
 | |
| 		{
 | |
| 			if (FolderPath == null) return null;
 | |
| 			string inipath = FolderPath + @"\roapp.ini";
 | |
| 			if (!File.Exists(inipath)) return null;
 | |
| 			StreamReader myReader = new StreamReader(inipath);
 | |
| 			string sLine;
 | |
| 			int indx = -1;
 | |
| 			while ((sLine = myReader.ReadLine()) != null)
 | |
| 			{
 | |
| 				if (sLine.Length > 0 && sLine.Substring(0, 1) != ";")
 | |
| 				{
 | |
| 					if ((indx = sLine.ToLower().IndexOf(p_2.ToLower())) >= 0)
 | |
| 					{
 | |
| 						indx = sLine.IndexOf("=", indx + 9);
 | |
| 						return sLine.Substring(indx + 1, sLine.Length - indx - 1).Trim();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			myReader.Close();
 | |
| 			return null;
 | |
| 		}
 | |
| 		private string TopFolderConfigValue(string p, string p_2)
 | |
| 		{
 | |
| 			FolderInfo fi = FolderInfo.GetTop();
 | |
| 			return fi.FolderConfig.Graphics_defaultext;
 | |
| 		}
 | |
| 		public string GetDefaultGraphicExtension()
 | |
| 		{
 | |
| 			if (_RODb != null)
 | |
| 				return Graphics_defaultext;
 | |
| 			if (_RODbInfo != null)
 | |
| 				return Graphics_defaultext;
 | |
| 			else
 | |
| 				return "TIF"; // this is the Volian Default
 | |
| 		}
 | |
| 		public string GetDefaultGraphicExtensionLocation()
 | |
| 		{
 | |
| 			string s = GetRoAppIniValue("ROAPP", "Extention");
 | |
| 			if (s != null && s != string.Empty) return "Default Extension found in roapp.ini";
 | |
| 			s = TopFolderConfigValue("Graphics", "defaultext");
 | |
| 			if (s != null && s != string.Empty) return "Default Extension defined in veproms properties";
 | |
| 			return "Used program default";
 | |
| 		}
 | |
| 
 | |
| 		#endregion
 | |
| 	}
 | |
| } |