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