This commit is contained in:
157
PROMS/VEPROMS.CSLA.Library/Config/RODbConfig.cs
Normal file
157
PROMS/VEPROMS.CSLA.Library/Config/RODbConfig.cs
Normal file
@@ -0,0 +1,157 @@
|
||||
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
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user