Rich b480a879c5 Sql Script to Build Empty VE-PROMS Database
Use new settings (ConvertTo and ExecutableMode)
New Settings
Use new setting (PDF Folder)
Use and Control new settings
2012-01-13 18:38:41 +00:00

109 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace DataLoader
{
public partial class frmPG : Form
{
private object _SelectedObject;
public object SelectedObject
{
get { return _SelectedObject; }
set { _SelectedObject = value; }
}
public frmPG(string title, object selectedObject)
{
InitializeComponent();
this.Text = title;
_SelectedObject = selectedObject;
}
private void CheckValidity()
{
if (SelectedObject.GetType().Name == "DataLoaderSettings")
{
DataLoaderSettings myDls = (DataLoaderSettings)SelectedObject;
string validity = myDls.ValidityCheck;
pg.SelectedObject = SelectedObject;
tbError.Text = validity;
if (validity == "")
tbError.Visible = false;
else
{
using (Graphics gr = tbError.CreateGraphics())
{
SizeF sf = gr.MeasureString(validity, tbError.Font,tbError.ClientRectangle.Width-10);
tbError.Height = (int)(tbError.Font.GetHeight(gr.DpiY) + sf.Height);
}
tbError.Visible = true;
}
}
else
tbError.Visible = false;
btnOK.Enabled = !tbError.Visible;
}
private void frmPG_Load(object sender, EventArgs e)
{
pg.PropertyValueChanged += new PropertyValueChangedEventHandler(pg_PropertyValueChanged);
pg.SelectedObject = SelectedObject;
Resize += new EventHandler(frmPG_Resize);
CheckValidity();
MoveSplitterTo(pg, SplitterWidth);
}
void pg_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
{
if (e.ChangedItem.Label == "VEProms Exe Folder")
{
DataLoaderSettings dls = SelectedObject as DataLoaderSettings;
if (dls != null)
dls.VESamFile = dls.VEPromsPath + "\\vesam.opt";
}
if (e.ChangedItem.Label == "Procedure Folder")
{
DataLoaderSettings dls = SelectedObject as DataLoaderSettings;
if (dls != null)
dls.PDFFolder = "";
}
CheckValidity();
}
void frmPG_Resize(object sender, EventArgs e)
{
MoveSplitterTo(pg, SplitterWidth);
}
private int _SplitterWidth = 0;
public int SplitterWidth
{
get
{
if (_SplitterWidth == 0)
{
using (Graphics gr = this.CreateGraphics())
_SplitterWidth = 180 * ((int)gr.DpiX) / 96;
}
return _SplitterWidth;
}
}
static void MoveSplitterTo(PropertyGrid grid, int x)
{
// HEALTH WARNING: reflection can be brittle...
FieldInfo field = typeof(PropertyGrid)
.GetField("gridView",
BindingFlags.NonPublic | BindingFlags.Instance);
field.FieldType
.GetMethod("MoveSplitterTo",
BindingFlags.NonPublic | BindingFlags.Instance)
.Invoke(field.GetValue(grid), new object[] { x });
}
private void btnCancel_Click(object sender, EventArgs e)
{
PropertyDescriptor pd = pg.SelectedGridItem.PropertyDescriptor;
pd.ResetValue(pg.SelectedObject);
}
}
}