From d4898c5d7e1bbbbba384a0e29f29c066d6f502a7 Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期一, 25 十一月 2024 17:44:18 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/06-mark/SimulationMarkHelper.cs |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/06-mark/SimulationMarkHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/06-mark/SimulationMarkHelper.cs
new file mode 100644
index 0000000..8a1270d
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/06-mark/SimulationMarkHelper.cs
@@ -0,0 +1,154 @@
+锘縰sing Yw.Model;
+using Yw.WinFrmUI.Bimface;
+
+namespace HStation.WinFrmUI
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class SimulationMarkHelper
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public SimulationMarkHelper(SimulationVisualListHelper visualListHelper, ISimulationMarkView view)
+        {
+            _visualListHelper = visualListHelper;
+            _views = new List<ISimulationMarkView>() { view };
+        }
+
+        private SimulationVisualListHelper _visualListHelper = null;//鍙鍒楄〃杈呭姪绫�
+        private List<ISimulationMarkView> _views = null;//瑙嗗浘鍒楄〃
+
+        /// <summary>
+        /// 鍙鎬�
+        /// </summary>
+        public bool Visible
+        {
+            get { return _visible; }
+            set { _visible = value; }
+        }
+        private bool _visible = false;
+
+        /// <summary>
+        /// 璁剧疆鍒楄〃
+        /// </summary>
+        public List<HydroMarkSetViewModel> Sets
+        {
+            get
+            {
+                if (_sets == null)
+                {
+                    var hydroInfo = _visualListHelper.HydroInfo;
+                    _sets = HydroMarkHelper.GetSetList(hydroInfo);
+                    if (_sets == null)
+                    {
+                        _sets = new List<HydroMarkSetViewModel>();
+                    }
+                }
+                return _sets;
+            }
+            set
+            {
+                _results = null;
+                _sets = value;
+                if (_sets == null)
+                {
+                    _sets = new List<HydroMarkSetViewModel>();
+                }
+            }
+        }
+        private List<HydroMarkSetViewModel> _sets = null;
+
+        /// <summary>
+        /// 缁撴灉鍒楄〃
+        /// </summary>
+        public List<HydroMarkResultViewModel> Results
+        {
+            get
+            {
+                if (_results == null)
+                {
+                    _results = HydroMarkHelper.GetResultList(_visualListHelper.HydroInfo, this.Sets);
+                    if (_results == null)
+                    {
+                        _results = new List<HydroMarkResultViewModel>();
+                    }
+                }
+                return _results;
+            }
+            set
+            {
+                _results = value;
+                if (_results == null)
+                {
+                    _results = new List<HydroMarkResultViewModel>();
+                }
+            }
+        }
+        private List<HydroMarkResultViewModel> _results = null;
+
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹�
+        /// </summary>
+        public void InitialData()
+        {
+            _sets = null;
+            _results = null;
+        }
+
+        /// <summary>
+        /// 璁剧疆
+        /// </summary>
+        public void Set()
+        {
+            if (this.Visible)
+            {
+                var leadLabels = this.Results?.Select(x => new LogicMarkLeadLabel(x.Code, x.Text, null)).ToList();
+                _views?.ForEach(x => x.SetLogicMarkLeadLabels(leadLabels));
+            }
+            else
+            {
+                _views?.ForEach(x => x.ClearLogicMarkLeadLabels());
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆
+        /// </summary>
+        public void Set(HydroVisualInfo visual)
+        {
+            if (visual == null)
+            {
+                return;
+            }
+            var result = HydroMarkHelper.GetResult(visual, this.Sets);
+            if (result == null)
+            {
+                return;
+            }
+            this.Results.RemoveAll(x => x.Code == visual.Code);
+            this.Results.Add(result);
+            if (this.Visible)
+            {
+                var leadLabel = new LogicMarkLeadLabel() { Id = result.Code, Text = result.Text, Distance = null };
+                _views?.ForEach(x => x.UpdateLogicMarkLeadLabel(leadLabel));
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆
+        /// </summary>
+        public void Set(List<HydroVisualInfo> visuals)
+        {
+            if (visuals == null || visuals.Count < 1)
+            {
+                return;
+            }
+            visuals.ForEach(x => Set(x));
+        }
+
+
+
+    }
+}

--
Gitblit v1.9.3