using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace DTS.Serialization.TSV { public partial class TSVSettingsWindow : Form { protected TSVSettingsWindow() { InitializeComponent(); } private volatile bool _bPopulating = false; private TSVTest _test; public TSVSettingsWindow(TSVTest test) { InitializeComponent(); _test = test; _bPopulating = true; try { c1GridGlobal.AutoGenerateColumns = false; c1GridGlobal.Styles.Alternate.BackColor = Properties.Settings1.Default.AlternatingRow; c1GridGlobal.Styles.Fixed.BackColor = Properties.Settings1.Default.TableHeader; TSVTest.Fields[] fields = Enum.GetValues(typeof(TSVTest.Fields)).Cast().ToArray(); foreach (var field in fields) { switch (field) { case TSVTest.Fields.AAFilterCutoffDescription: case TSVTest.Fields.BitResolution: case TSVTest.Fields.ChannelErrors: case TSVTest.Fields.DataType: case TSVTest.Fields.DigitalFilterType: case TSVTest.Fields.EngineeringUnits: case TSVTest.Fields.SensorAxis: case TSVTest.Fields.SensorLocation: case TSVTest.Fields.SensorMakeModelSerial: case TSVTest.Fields.SensorMountType: //do not display break; default: var row = c1GridGlobal.Rows.Add(); row["colField"] = TSVStrings.ResourceManager.GetString(string.Format("{0}_Title", field.ToString())); row["colDescription"] = TSVStrings.ResourceManager.GetString(string.Format("{0}_Description", field.ToString())); row["colValue"] = test.GetValue(field); row.UserData = field; break; } } c1GridChannels.Styles.Fixed.BackColor = Properties.Settings1.Default.TableHeader; c1GridChannels.Styles.Alternate.BackColor = Properties.Settings1.Default.AlternatingRow; var c = c1GridChannels.Cols.Add(); c.Caption = "Channel Number"; c.AllowEditing = false; c.DataType = typeof(int); c.Name = "colNumber"; c.UserData = null; c = c1GridChannels.Cols.Add(); c.Caption = "File Name"; c.AllowEditing = true; c.DataType = typeof(string); c.Name = "colFileName"; c.UserData = null; foreach (var field in fields) { c = c1GridChannels.Cols.Add(); c.Caption = TSVStrings.ResourceManager.GetString(string.Format("{0}_Title", field.ToString())); c.DataType = typeof(string); c.AllowEditing = true; c.Name = "col" + field.ToString(); c.UserData = field; } foreach (var channel in test.Channels) { var r = c1GridChannels.Rows.Add(); r["colNumber"] = channel.ChannelNumber; r["colFileName"] = channel.FileName; foreach (var field in fields) { r["col" + field.ToString()] = channel.GetValue(field); } r.UserData = channel; } } finally { _bPopulating = false; } } private void button1_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; Close(); } private void c1GridGlobal_CellChanged(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) { } private void gridChannels_CellChanged(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) { } private void c1GridChannels_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) { if (_bPopulating) { return; } try { _bPopulating = true; if (null != c1GridChannels.Rows[e.Row].UserData) { TSVChannel channel = c1GridChannels.Rows[e.Row].UserData as TSVChannel; if (null == channel) { return; } if (null != c1GridChannels.Cols[e.Col].UserData) { TSVTest.Fields field = (TSVTest.Fields)c1GridChannels.Cols[e.Col].UserData; channel.SetValue(field, c1GridChannels.Rows[e.Row][e.Col] as string); } } } finally { _bPopulating = false; } } private void c1GridGlobal_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) { if (_bPopulating) { return; } try { if (null != c1GridGlobal.Rows[e.Row].UserData) { TSVTest.Fields field = (TSVTest.Fields)c1GridGlobal.Rows[e.Row].UserData; _test.SetValue(field, c1GridGlobal.Rows[e.Row]["colValue"] as string); for (int i = 0; i < c1GridChannels.Rows.Count; i++) { if (null != c1GridChannels.Rows[i].UserData) { TSVChannel channel = c1GridChannels.Rows[i].UserData as TSVChannel; if (null != channel) { c1GridChannels.Rows[i]["col" + field.ToString()] = channel.GetValue(field); } } } } } finally { _bPopulating = false; } } } }