Files
wg_cpso/CPSO/Forms/92_Knowledge/FrmEditProcessingJobs.cs
2026-03-25 18:20:24 +08:00

136 lines
4.2 KiB
C#

using CaeGlobals;
using CaeKnowledge;
using CaeKnowledge.View;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace CPSO.Forms._92_Knowledge
{
public partial class FrmEditProcessingJobs : Form
{
// Variables
private readonly Controller _controller;
private bool _modified;
// Constructors
public FrmEditProcessingJobs(Controller controller)
{
InitializeComponent();
dgvCommands.DataBindingComplete += DataBindingComplete;
_controller = controller;
_modified = false;
}
private void tsmiClose_Click(object sender, EventArgs e)
{
Hide();
}
private void dgvCommands_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
// Color blue = Color.FromArgb(225, 245, 255);
Color green = Color.FromArgb(235, 255, 235);
// Color yellow = Color.FromArgb(255, 255, 205);
// Color red = Color.FromArgb(255, 235, 215);
dgvCommands.Rows[e.RowIndex].DefaultCellStyle.BackColor = green;
}
private void btnReorganize_Click(object sender, EventArgs e)
{
}
private void btnClearAll_Click(object sender, EventArgs e)
{
dgvCommands.DataSource = null;
_viewProcessingJobs.Clear();
SetBinding();
_modified = true;
}
private void btnOK_Click(object sender, EventArgs e)
{
try
{
DialogResult = DialogResult.OK;
if (_modified && dgvCommands.DataSource is BindingSource source
&& source.DataSource is List<ViewToolPosition> list)
{
_controller.ToolPositions.Clear();
_controller.ToolPositions.AddRange(list);
_modified = false;
}
Hide();
}
catch (Exception ex)
{
ExceptionTools.Show(this, ex);
}
}
private readonly List<ViewProcessingJob> _viewProcessingJobs = new List<ViewProcessingJob>();
// Methods
public void PrepareForm()
{
_viewProcessingJobs.Clear();
if (_controller.ProcessingJobs.Count > 0)
{
_viewProcessingJobs.AddRange(_controller.ProcessingJobs);
}
SetBinding();
}
private void SetBinding()
{
BindingSource binding = new BindingSource();
binding.DataSource = _viewProcessingJobs;
dgvCommands.DataSource = binding;
}
// Source - https://stackoverflow.com/a/24784960
// Posted by TFischer
private void DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
// Loops through each row in the DataGridView, and adds the
// row number to the header
foreach (DataGridViewRow dGVRow in dgvCommands.Rows)
{
dGVRow.HeaderCell.Value = $"{dGVRow.Index + 1}";
}
// This resizes the width of the row headers to fit the numbers
dgvCommands.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
}
private void FrmEditToolPositions_Load(object sender, EventArgs e)
{
dgvCommands.AllowUserToAddRows = false;
dgvCommands.AllowUserToDeleteRows = false;
dgvCommands.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
private void tsmiOpen_Click(object sender, EventArgs e)
{
}
private void tsmiSaveAs_Click(object sender, EventArgs e)
{
}
}
}