First Commit

This commit is contained in:
Wesley Hofman
2025-08-29 18:13:03 +02:00
commit ecb076ce8b
39 changed files with 6982 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace daq_testing
{
public partial class UserControlPslineConfig : UserControl
{
private BindingList<PslineConfig> gridData;
private FileHandler fileHandler;
public event EventHandler UpdateBtnClick;
public void OnUpdateBtnClick(EventArgs e)
{
LoadDgv();
UpdateBtnClick?.Invoke(this, EventArgs.Empty);
}
public List<PslineConfig> Data { get; set; }
public UserControlPslineConfig()
{
InitializeComponent();
dgvPslinesConfig.CellContentClick += dgvPslinesConfig_CellContentClick;
dgvPslinesConfig.CurrentCellDirtyStateChanged += dgvPslinesConfig_CurrentCellDirtyStateChanged;
}
public void button1_Click(object sender, EventArgs e)
{
LoadDgv();
OnUpdateBtnClick(EventArgs.Empty);
}
public void LoadDgv_old()
{
BindingSource bs = new BindingSource();
bs.DataSource = Data;
dgvPslinesConfig.DataSource = bs;
dgvPslinesConfig.Update();
}
public void LoadDgv()
{
string filePath = @"c:\configs\data.json";
fileHandler = new FileHandler(filePath);
// Load data
gridData = fileHandler.LoadData();
// Bind data to DataGridView
dgvPslinesConfig.DataSource = gridData;
// Set column properties
dgvPslinesConfig.Columns["Psline"].HeaderText = "Psline";
dgvPslinesConfig.Columns["Description"].HeaderText = "Description";
dgvPslinesConfig.Columns["Setpoint"].HeaderText = "Setpoint";
dgvPslinesConfig.Columns["Tolerance"].HeaderText = "Tolerance";
dgvPslinesConfig.Columns["Enabled"].HeaderText = "Enabled";
}
private void btnSave_Click(object sender, EventArgs e)
{
fileHandler.SaveData(gridData);
OnUpdateBtnClick(EventArgs.Empty);
}
private void dgvPslinesConfig_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == dgvPslinesConfig.Columns["Enabled"].Index)
{
// Check if the Enabled cell was set to true
if (Convert.ToBoolean(dgvPslinesConfig.Rows[e.RowIndex].Cells["Enabled"].Value) == true)
{
// Check for duplicates
var pslineValue = dgvPslinesConfig.Rows[e.RowIndex].Cells["Psline"].Value;
var hasDuplicate = dgvPslinesConfig.Rows
.Cast<DataGridViewRow>()
.Where(row => Convert.ToBoolean(row.Cells["Enabled"].Value) == true &&
row.Cells["Psline"].Value.Equals(pslineValue) &&
row.Index != e.RowIndex) // Exclude the current row
.Any();
if (hasDuplicate)
{
// Revert the change and notify the user
dgvPslinesConfig.Rows[e.RowIndex].Cells["Enabled"].Value = false; // Set back to false
MessageBox.Show("Cannot enable this row because a duplicate Psline entry exists.", "Duplicate Entry", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
private void dgvPslinesConfig_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgvPslinesConfig.IsCurrentCellDirty)
{
dgvPslinesConfig.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
}
}