using DevExpress.Utils.DirectXPaint; using Yw.Model; namespace HStation.WinFrmUI { /// /// 构件可见性辅助类 /// public class SimulationVisualVisibleHelper { /// /// /// public SimulationVisualVisibleHelper(SimulationVisualListHelper visualListHelper, ISimulationVisualVisibleView view) { _visualListHelper = visualListHelper; _views = new List() { view }; } private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类 private List _views = null;//视图列表 private HydroModelInfo _hydroInfo = null;//水力信息 /// /// 初始化数据 /// public void InitialData(HydroModelInfo hydroInfo) { _hydroInfo = hydroInfo; if (_hydroInfo == null) { return; } _items = _hydroInfo.GetVisibleList(); } /// /// 可见列表 /// public List Items { get { return _items; } set { _items = value; } } private List _items = null; /// /// 设置 /// public void Set() { if (this.Items == null || this.Items.Count < 1) { return; } var dict = new Dictionary(); this.Items.ForEach(x => dict.Add(x.Catalog, x)); var allVisualList = _visualListHelper.GetVisualList(); if (allVisualList != null && allVisualList.Count > 0) { var tcodes = new List(); var ocodes = new List(); allVisualList.ForEach(x => { if (dict.ContainsKey(x.Catalog)) { var visible = dict[x.Catalog]; if (visible.Visible) { ocodes.Add(x.Code); } else { tcodes.Add(x.Code); } } }); _views?.ForEach(x => x.TranslucentComponents(tcodes)); _views?.ForEach(x => x.OpaqueComponents(ocodes)); } } } }