frmMain.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using qdr.app.tools.qfu.gui.Subforms;
  2. using Quadarax.Foundation.Core.QConsole;
  3. using Quadarax.Foundation.Core.Reflection.Extensions;
  4. using System.Reflection;
  5. namespace qdr.app.tools.qfu.gui
  6. {
  7. public partial class frmMain : Form
  8. {
  9. private IList<ICommanControl> _views = new List<ICommanControl>();
  10. private ICommanControl? _lastSelectedCommandControl;
  11. private ICommanControl CurrentCommandControl => _views[tscbCommand.SelectedIndex];
  12. #region *** Constructors ***
  13. public frmMain()
  14. {
  15. InitializeComponent();
  16. Text = $"{Application.ProductName} GUI - {Application.ProductVersion?.Split("+")?.FirstOrDefault()} / supports qfu v.{Assembly.GetAssembly(typeof(ConsoleRunner))?.GetVersion()?.ToString()}";
  17. Console.SetOut(new RTFConsoleTextWriter(tbConsole));
  18. var ctrl = new CtrlImgList();
  19. ctrl.Dock = DockStyle.Fill;
  20. ctrl.Name = "ctrlImgList";
  21. _views.Add(ctrl);
  22. var ctrl1 = new CtrlClearDir();
  23. ctrl1.Dock = DockStyle.Fill;
  24. ctrl1.Name = "ctrlClearDir";
  25. _views.Add(ctrl1);
  26. var ctrl2 = new CtrlClone();
  27. ctrl2.Dock = DockStyle.Fill;
  28. ctrl2.Name = "ctrlClone";
  29. _views.Add(ctrl2);
  30. tscbCommand.Items.AddRange(_views.Select(v => v.ViewName).ToArray());
  31. tscbCommand.SelectedIndex = 0;
  32. //tlpLevel0.Controls.Add(ctrlImgList, 0, 1);
  33. }
  34. #endregion
  35. #region *** Form handlers ***
  36. private void frmMain_Load(object sender, EventArgs e)
  37. {
  38. }
  39. #endregion
  40. private void tscbCommand_SelectedIndexChanged(object sender, EventArgs e)
  41. {
  42. tbDescription.Text = CurrentCommandControl.Description;
  43. tbDescription.SelectionStart = 0;
  44. tbDescription.SelectionLength = 0;
  45. if (_lastSelectedCommandControl != null)
  46. {
  47. foreach (var control in tlpLevel0.Controls)
  48. {
  49. if (control is ICommanControl cmdControl && cmdControl.ViewName == _lastSelectedCommandControl.ViewName)
  50. {
  51. tlpLevel0.Controls.Remove((Control)cmdControl);
  52. break;
  53. }
  54. }
  55. }
  56. tlpLevel0.Controls.Add((Control)CurrentCommandControl, 0, 1);
  57. _lastSelectedCommandControl = CurrentCommandControl;
  58. }
  59. private void tsbutExecute_Click(object sender, EventArgs e)
  60. {
  61. try
  62. {
  63. CurrentCommandControl.Execute();
  64. }
  65. catch (Exception ex)
  66. {
  67. MessageBox.Show(this, $"Error executing command: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  68. }
  69. }
  70. private void tsbutClear_Click(object sender, EventArgs e)
  71. {
  72. tbConsole.Clear();
  73. }
  74. }
  75. }