From f4c5232547ba6a6cec1dd43cccdd0dbf9880aca0 Mon Sep 17 00:00:00 2001 From: klavirshik Date: Mon, 15 Jul 2024 18:09:09 +0200 Subject: [PATCH] add class --- Reseter2/CompName.cs | 5 +++++ Reseter2/Form1.Designer.cs | 11 ++++++++++ Reseter2/Form1.cs | 12 +++++++++++ Reseter2/Form1.resx | 3 +++ Reseter2/IStatusTask.cs | 1 + Reseter2/Pinger.cs | 12 +++++++++++ Reseter2/ReseteTask.cs | 24 ++++++++++++++++++---- Reseter2/Reseter2.csproj | 1 + Reseter2/StausPreReboot.cs | 6 ++++++ Reseter2/TaskControl.Designer.cs | 1 + Reseter2/TaskControl.cs | 20 +++++++++++++++++- Reseter2/reseter.cs | 35 ++++++++++++++++++++++++++++---- 12 files changed, 122 insertions(+), 9 deletions(-) create mode 100644 Reseter2/Pinger.cs diff --git a/Reseter2/CompName.cs b/Reseter2/CompName.cs index b173579..14aa391 100644 --- a/Reseter2/CompName.cs +++ b/Reseter2/CompName.cs @@ -11,6 +11,11 @@ namespace Reseter2 private string Name { get; set; } private string Description { get; set; } private string Ip { get; set; } + + public CompId(string name) + { + this.Name = name; + } public CompId(string name, string description) { this.Name = name; diff --git a/Reseter2/Form1.Designer.cs b/Reseter2/Form1.Designer.cs index 27096e3..7bad79d 100644 --- a/Reseter2/Form1.Designer.cs +++ b/Reseter2/Form1.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.tb_comp = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); @@ -36,6 +37,7 @@ this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); this.toolStrip1.SuspendLayout(); this.SuspendLayout(); // @@ -64,6 +66,7 @@ this.bt_reset.TabIndex = 2; this.bt_reset.Text = "Перезагрузить"; this.bt_reset.UseVisualStyleBackColor = true; + this.bt_reset.Click += new System.EventHandler(this.bt_reset_Click); // // toolStrip1 // @@ -106,6 +109,13 @@ this.flowLayoutPanel1.Name = "flowLayoutPanel1"; this.flowLayoutPanel1.Size = new System.Drawing.Size(394, 380); this.flowLayoutPanel1.TabIndex = 4; + this.flowLayoutPanel1.WrapContents = false; + // + // timer1 + // + this.timer1.Enabled = true; + this.timer1.Interval = 1000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // Form1 // @@ -134,6 +144,7 @@ private System.Windows.Forms.ToolStripButton toolStripButton1; private System.Windows.Forms.ToolStripButton toolStripButton2; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Timer timer1; } } diff --git a/Reseter2/Form1.cs b/Reseter2/Form1.cs index 6a80467..df2f0bc 100644 --- a/Reseter2/Form1.cs +++ b/Reseter2/Form1.cs @@ -14,12 +14,24 @@ namespace Reseter2 { public Form1() { + InitializeComponent(); + Reseter.SetForm(flowLayoutPanel1); } private void label1_Click(object sender, EventArgs e) { } + + private void bt_reset_Click(object sender, EventArgs e) + { + Reseter.AddTask(tb_comp.Text) ; + } + + private void timer1_Tick(object sender, EventArgs e) + { + Reseter.Tick(); + } } } diff --git a/Reseter2/Form1.resx b/Reseter2/Form1.resx index 792365f..b11c861 100644 --- a/Reseter2/Form1.resx +++ b/Reseter2/Form1.resx @@ -151,4 +151,7 @@ TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + 122, 17 + \ No newline at end of file diff --git a/Reseter2/IStatusTask.cs b/Reseter2/IStatusTask.cs index 10dafbd..012a068 100644 --- a/Reseter2/IStatusTask.cs +++ b/Reseter2/IStatusTask.cs @@ -13,6 +13,7 @@ namespace Reseter2 { resetertask = reseterTask; } + public abstract void Tick(); public abstract void Stop(); public abstract void Next(); } diff --git a/Reseter2/Pinger.cs b/Reseter2/Pinger.cs new file mode 100644 index 0000000..119df18 --- /dev/null +++ b/Reseter2/Pinger.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Reseter2 +{ + internal class Pinger + { + } +} diff --git a/Reseter2/ReseteTask.cs b/Reseter2/ReseteTask.cs index 5ee9541..4de5555 100644 --- a/Reseter2/ReseteTask.cs +++ b/Reseter2/ReseteTask.cs @@ -6,21 +6,37 @@ using System.Threading.Tasks; namespace Reseter2 { - internal class ReseterTask + class ReseterTask { private IComp Comp; private AStatusTask StatusTask; + private TaskControl taskControl; - - public ReseterTask(IComp comp) + public ReseterTask(IComp comp, TaskControl taskCntrl) { Comp = comp; + taskControl = taskCntrl; StatusTask = new StatusPreReboot(this); } + public string GetName() + { + return Comp.GetName(); + } + + public void Tick() + { + StatusTask.Tick(); + } + + public void DataContrl(string srt) + { + taskControl.DataContrl(srt); + } private void Clear() { - Reseter.Clear(this); + Reseter.Clear(this, taskControl); } + } } diff --git a/Reseter2/Reseter2.csproj b/Reseter2/Reseter2.csproj index e7d2ceb..ceaa893 100644 --- a/Reseter2/Reseter2.csproj +++ b/Reseter2/Reseter2.csproj @@ -55,6 +55,7 @@ + diff --git a/Reseter2/StausPreReboot.cs b/Reseter2/StausPreReboot.cs index 331133e..a8a12ef 100644 --- a/Reseter2/StausPreReboot.cs +++ b/Reseter2/StausPreReboot.cs @@ -8,10 +8,16 @@ namespace Reseter2 { internal class StatusPreReboot : AStatusTask { + private int time; public StatusPreReboot(ReseterTask reseterTask) : base(reseterTask) { } + public override void Tick() + { + time++; + resetertask.DataContrl(time.ToString()); + } public override void Next() { diff --git a/Reseter2/TaskControl.Designer.cs b/Reseter2/TaskControl.Designer.cs index 90a641d..8425d2c 100644 --- a/Reseter2/TaskControl.Designer.cs +++ b/Reseter2/TaskControl.Designer.cs @@ -133,6 +133,7 @@ this.button1.TabIndex = 9; this.button1.Text = "Остановить"; this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // diff --git a/Reseter2/TaskControl.cs b/Reseter2/TaskControl.cs index 57c2591..bc774ee 100644 --- a/Reseter2/TaskControl.cs +++ b/Reseter2/TaskControl.cs @@ -11,16 +11,34 @@ using System.Windows.Forms; namespace Reseter2 { [DefaultEvent(nameof(TaskControl))] - public partial class TaskControl : UserControl + partial class TaskControl : UserControl { + ReseterTask reseterTask; public TaskControl() { + reseterTask = null; InitializeComponent(); } + public void Intit(ReseterTask res) + { + reseterTask = res; + lb_name.Text = reseterTask.GetName(); + } + + public void DataContrl(string ping) + { + label5.Text = ping; + + } private void label1_Click(object sender, EventArgs e) { + + } + private void button1_Click(object sender, EventArgs e) + { + Reseter.Clear(reseterTask, this); } } } diff --git a/Reseter2/reseter.cs b/Reseter2/reseter.cs index cb1ba4e..a6f3ecd 100644 --- a/Reseter2/reseter.cs +++ b/Reseter2/reseter.cs @@ -1,24 +1,51 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; +using System.Reflection.Emit; +using System.Runtime.Remoting.Metadata.W3cXsd2001; using System.Text; using System.Threading.Tasks; +using System.Windows.Forms; namespace Reseter2 { internal static class Reseter { - private static List list_task; + private static List list_task = new List(); + private static Panel flow_conteiner; - + public static void SetForm(Panel flow_cntr) + { + flow_conteiner = flow_cntr; + } + public static void AddTask(String name) + { + CompId compid = new CompId(name); + AddTask(compid); + } public static void AddTask(IComp compName) { - list_task.Add(new ReseterTask(compName)); + + TaskControl taskControl = new TaskControl(); + ReseterTask reseterTask = new ReseterTask(compName, taskControl); + taskControl.Intit(reseterTask); + flow_conteiner.Controls.Add(taskControl); + list_task.Add(reseterTask); } - public static void Clear(ReseterTask reseterTask) + public static void Clear(ReseterTask reseterTask, TaskControl taskControl) { + flow_conteiner.Controls.Remove(taskControl); list_task.Remove(reseterTask); + + } + public static void Tick() + { + foreach (var item in list_task) + { + item.Tick(); + } } } }