using DevExpress.XtraBars.Docking;
|
using DevExpress.XtraBars.Docking2010.Views;
|
using Yw.WinFrmUI.Page;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class XhsProjectSimulationMgrPage : Yw.WinFrmUI.DocumentPage
|
{
|
public XhsProjectSimulationMgrPage()
|
{
|
InitializeComponent();
|
this.PageTitle.Caption = "水力模拟";
|
this.PageTitle.HeaderSvgImage = this.svgImg32[0];
|
this.PageTitle.SvgImageSize = new Size(24, 24);
|
|
//this.xhsProjectSimulationFunctionMgrCtrl1.ProjectSiteSelectedChangedEvent += xhsProjectSimulationFunctionMgrCtrl1_ProjectSiteSelectedChangedEvent;
|
this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectInfoEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectInfoEvent;
|
this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSimulationEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSimulationEvent;
|
// this.xhsProjectSimulationFunctionMgrCtrl1.CreateXhsProjectSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_CreateXhsProjectSchemeEvent;
|
//this.xhsProjectSimulationFunctionMgrCtrl1.CompareXhsProjectSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_CompareXhsProjectSchemeEvent;
|
PumpFullInfoViewDlg.JumpPumpFullInfoCtrl += ShowPumpInfo;
|
}
|
|
private XhsProjectVmo _project = null;//项目
|
private XhsProjectSiteVmo _projectSite = null;//项目站
|
private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
|
|
/// <summary>
|
/// 初始化数据源
|
/// </summary>
|
public override void InitialDataSource()
|
{
|
base.InitialDataSource();
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public async Task SetBindingData(long projectId)
|
{
|
_project = await BLLFactory<HStation.BLL.XhsProject>.Instance.GetByID(projectId);
|
await SetBindingData(_project);
|
}
|
|
/// <summary>
|
/// 设置数据
|
/// </summary>
|
public async Task SetBindingData(XhsProjectVmo project)
|
{
|
if (project == null)
|
{
|
return;
|
}
|
_project = project;
|
this.PageTitle.Caption = $"{_project.Name}\r\n项目模拟";
|
_projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID);
|
var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance
|
.GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation);
|
_hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID);
|
|
this.xhsProjectSimulationFunctionMgrCtrl1.SetBindingData(_project, _projectSite);
|
|
//this.xhsProjectSimulationFunctionTreeCtrl1.SetBindingData(list);
|
|
// await this.xhsProjectSimulationFunctionMgrCtrl1.SetBindingData(_project);
|
}
|
|
#region 功能面板
|
|
//项目站选择改变事件
|
private async void xhsProjectSimulationFunctionMgrCtrl1_ProjectSiteSelectedChangedEvent(XhsProjectSiteVmo obj)
|
{
|
_projectSite = obj;
|
if (_projectSite != null)
|
{
|
var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance
|
.GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation);
|
_hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID);
|
|
//this.xhsProjectSimulationFunctionMgrCtrl1.ResetBindingData();
|
}
|
}
|
|
//显示项目信息事件
|
private async void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectInfoEvent(DevExpress.Utils.Svg.SvgImage obj)
|
{
|
var guid = new PageGuid()
|
{
|
Modular = this.PageGuid.Modular,
|
MoudingType = eMoudingType.Tab,
|
Function = "xhs-project-simulation-info",
|
};
|
if (!IsExistPage(guid, true))
|
{
|
var page = new XhsProjectSimulationInfoPage();
|
await page.SetBindingData(_project, _projectSite, _hydroInfo);
|
CreatePage(page, guid);
|
}
|
}
|
|
//显示水力模拟事件
|
private async void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSimulationEvent(DevExpress.Utils.Svg.SvgImage obj)
|
{
|
var guid = new PageGuid()
|
{
|
Modular = this.PageGuid.Modular,
|
MoudingType = eMoudingType.Tab,
|
Function = "xhs-project-simulation-core",
|
};
|
if (!IsExistPage(guid, true))
|
{
|
var page = new XhsProjectSimulationCorePage();
|
await page.SetBindingData(_project, _projectSite, _hydroInfo);
|
CreatePage(page, guid);
|
}
|
}
|
|
//创建项目方案事件
|
private async void XhsProjectSimulationFunctionMgrCtrl1_CreateXhsProjectSchemeEvent(DevExpress.Utils.Svg.SvgImage obj)
|
{
|
if (_projectSite == null)
|
{
|
return;
|
}
|
//var dlg = new AddXhsProjectSimulationSchemeDlg();
|
//await dlg.SetBindingData(_projectSite.ID);
|
//dlg.ReloadDataEvent += (scheme) =>
|
//{
|
// this.xhsProjectSimulationFunctionMgrCtrl1.AppendScheme(scheme);
|
//};
|
//dlg.ShowDialog();
|
|
var dlg = new AddXhsSchemeDlg();
|
await dlg.SetBindingData(_project, _projectSite, _hydroInfo);
|
dlg.ShowDialog();
|
}
|
|
//比较项目方案事件
|
private void XhsProjectSimulationFunctionMgrCtrl1_CompareXhsProjectSchemeEvent(DevExpress.Utils.Svg.SvgImage obj)
|
{
|
TipFormHelper.ShowWarn("正在开发中,敬请期待...");
|
}
|
|
#endregion 功能面板
|
|
#region TabbedView 相关事件处理程序
|
|
//选中
|
private void tabbedView1_DocumentSelected(object sender, DocumentEventArgs e)
|
{
|
if (e.Document == null)
|
return;
|
var surfaceGuid = e.Document.Tag as PageGuid;
|
if (surfaceGuid == null)
|
return;
|
}
|
|
//添加
|
private void tabbedView1_DocumentAdded(object sender, DocumentEventArgs e)
|
{
|
}
|
|
//激活
|
private void tabbedView1_DocumentActivated(object sender, DocumentEventArgs e)
|
{
|
var page = e.Document.Control as DocumentPage;
|
if (page == null)
|
return;
|
}
|
|
//关闭 此时控件已经为空
|
private void tabbedView1_DocumentClosed(object sender, DocumentEventArgs e)
|
{
|
}
|
|
#endregion TabbedView 相关事件处理程序
|
|
#region Page
|
|
//是否存在Page
|
private new bool IsExistPage(PageGuid pguid, bool isActivePage)
|
{
|
if (pguid == null)
|
{
|
return false;
|
}
|
if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0)
|
{
|
foreach (DockPanel panel in this.dockManager1.Panels)
|
{
|
if (panel.Tag != null)
|
{
|
if (panel.Tag is PageGuid)
|
{
|
if ((panel.Tag as PageGuid).ToString() == pguid.ToString())
|
{
|
if (isActivePage)
|
{
|
panel.Show();
|
}
|
return true;
|
}
|
}
|
}
|
}
|
}
|
|
if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0)
|
{
|
foreach (BaseDocument doc in this.tabbedView1.Documents)
|
{
|
if (doc.Tag != null)
|
{
|
if (doc.Tag is PageGuid)
|
{
|
if ((doc.Tag as PageGuid).ToString() == pguid.ToString())
|
{
|
if (isActivePage)
|
{
|
this.tabbedView1.Controller.Activate(doc);
|
}
|
return true;
|
}
|
}
|
}
|
}
|
}
|
|
return false;
|
}
|
|
//更新数据
|
private new void RefreshPageData(PageGuid pguid)
|
{
|
if (pguid == null)
|
{
|
return;
|
}
|
if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0)
|
{
|
var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (panel != null)
|
{
|
if (panel.ControlContainer.Controls.Count > 0)
|
{
|
var page = panel.ControlContainer.Controls[0] as DocumentPage;
|
if (page != null)
|
{
|
page.RefreshData();
|
}
|
}
|
return;
|
}
|
}
|
|
if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0)
|
{
|
var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (doc != null)
|
{
|
var page = doc.Control as DocumentPage;
|
if (page != null)
|
{
|
page.RefreshData();
|
}
|
return;
|
}
|
}
|
}
|
|
//更新PageTitle
|
private new void UpdatePageTitle(PageGuid pguid, PageTitle title)
|
{
|
if (pguid == null || title == null)
|
return;
|
|
if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0)
|
{
|
var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (panel != null)
|
{
|
panel.Text = title.Caption;
|
panel.ImageOptions.Image = title.HeaderImage;
|
panel.ImageOptions.SvgImage = title.HeaderSvgImage;
|
panel.ImageOptions.SvgImageSize = title.SvgImageSize;
|
if (panel.ControlContainer.Controls.Count > 0)
|
{
|
var page = panel.ControlContainer.Controls[0] as DocumentPage;
|
if (page != null)
|
{
|
page.PageTitle = title;
|
}
|
}
|
return;
|
}
|
}
|
|
if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0)
|
{
|
var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (doc != null)
|
{
|
doc.Caption = title.Caption;
|
doc.ImageOptions.Image = title.HeaderImage;
|
doc.ImageOptions.SvgImage = title.HeaderSvgImage;
|
doc.ImageOptions.SvgImageSize = title.SvgImageSize;
|
var page = doc.Control as DocumentPage;
|
if (page != null)
|
{
|
page.PageTitle = title;
|
}
|
return;
|
}
|
}
|
}
|
|
//创建Page
|
private new bool CreatePage(DocumentPage page, PageGuid pguid)
|
{
|
if (page == null || pguid == null)
|
{
|
return false;
|
}
|
page.PageGuid = pguid;
|
page.Dock = DockStyle.Fill;
|
page.IsExistPageEvent += IsExistPage;
|
page.CreatePageEvent += CreatePage;
|
page.RefreshPageDataEvent += RefreshPageData;
|
page.UpdatePageTitleEvent += UpdatePageTitle;
|
page.ClosePageEvent += ClosePage;
|
page.RegistEvents();
|
switch (pguid.MoudingType)
|
{
|
case eMoudingType.Dock:
|
{
|
this.dockManager1.BeginUpdate();
|
DockPanel docPnl = null;
|
if (pguid.DockType == eDockType.Left)
|
{
|
docPnl = this.dockManager1.AddPanel(DockingStyle.Left);
|
}
|
else if (pguid.DockType == eDockType.Right)
|
{
|
docPnl = this.dockManager1.AddPanel(DockingStyle.Right);
|
}
|
|
docPnl.Footer = Directory.GetCurrentDirectory();
|
if (page.PageTitle != null)
|
{
|
docPnl.Text = page.PageTitle.Caption;
|
docPnl.ImageOptions.Image = page.PageTitle.HeaderImage;
|
docPnl.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage;
|
docPnl.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize;
|
docPnl.Options.ShowCloseButton = page.PageTitle.AllowClose;
|
}
|
docPnl.ControlContainer.Controls.Add(page);
|
docPnl.Tag = pguid;
|
this.dockManager1.EndUpdate();
|
docPnl.Show();
|
}
|
break;
|
|
case eMoudingType.Tab:
|
{
|
this.tabbedView1.BeginUpdate();
|
var doc = this.tabbedView1.AddDocument(page);
|
doc.Footer = Directory.GetCurrentDirectory();
|
if (page.PageTitle != null)
|
{
|
doc.Caption = page.PageTitle.Caption;
|
doc.ImageOptions.Image = page.PageTitle.HeaderImage;
|
doc.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage;
|
doc.ImageOptions.SvgImageSize = page.PageTitle.SvgImageSize;
|
doc.Properties.AllowClose = page.PageTitle.AllowClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;
|
}
|
doc.Tag = pguid;
|
this.tabbedView1.EndUpdate();
|
this.tabbedView1.Controller.Activate(doc);
|
}
|
break;
|
|
default: break;
|
}
|
page.InitialDataSource();
|
return true;
|
}
|
|
//关闭Page
|
private new void ClosePage(PageGuid pguid)
|
{
|
switch (pguid.MoudingType)
|
{
|
case eMoudingType.Dock:
|
{
|
if (this.dockManager1.Panels != null && this.dockManager1.Panels.Count > 0)
|
{
|
var panel = this.dockManager1.Panels.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (panel != null)
|
{
|
if (panel.Visibility != DockVisibility.Hidden)
|
panel.Close();//会触发正在关闭和关闭事件
|
//this.dockManager1.RemovePanel(panel);//不会触发正在关闭和关闭事件
|
}
|
}
|
}
|
break;
|
|
case eMoudingType.Tab:
|
{
|
if (this.tabbedView1.Documents != null && this.tabbedView1.Documents.Count > 0)
|
{
|
var doc = this.tabbedView1.Documents.ToList().Find(x => x.Tag != null && x.Tag is PageGuid && (x.Tag as PageGuid).ToString() == pguid.ToString());
|
if (doc != null)
|
{
|
this.tabbedView1.Controller.Close(doc);//会触发正在关闭和关闭事件
|
}
|
}
|
}
|
break;
|
|
default: break;
|
}
|
}
|
|
#endregion Page
|
|
private void ShowPumpInfo(PumpFullInfoCtrl pumpFullInfoCtrl)
|
{
|
var guid = new PageGuid()
|
{
|
Modular = this.PageGuid.Modular,
|
MoudingType = eMoudingType.Tab,
|
Function = "xhs-project-pump-info",
|
};
|
if (!IsExistPage(guid, true))
|
{
|
CreatePage(pumpFullInfoCtrl, guid);
|
}
|
}
|
}
|
}
|