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));
}
}
}
}