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
|
|
}
|
|
} |