From d2cee56db11f0ee475e9f9dbdc8bfd03ad982e18 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期一, 12 八月 2024 09:42:01 +0800 Subject: [PATCH] 报错 --- Desktop/HStation.Desktop.Xhs.Core/MainForm.cs | 671 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 646 insertions(+), 25 deletions(-) diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs index 160b758..489df8e 100644 --- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs +++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs @@ -1,46 +1,667 @@ +using DevExpress.CodeParser; +using DevExpress.Utils; +using DevExpress.XtraBars.Docking; +using DevExpress.XtraBars.Docking2010.Views; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraBars.Ribbon; +using DevExpress.XtraEditors; using HStation.WinFrmUI; -using Yw.WebBrower; +using HStation.WinFrmUI.Basic; +using HStation.WinFrmUI.Xhs.PumpProduct; +using System.IO; +using Yw.WinFrmUI; +using Yw.WinFrmUI.Page; +using static DevExpress.XtraPrinting.BarCode.DataBarExpandedPatternProcessor; namespace HStation.Desktop { - public partial class MainForm : Form + public partial class MainForm : RibbonForm { public MainForm() { InitializeComponent(); } - private MapViewProjectListHelper _helper = new(); + #region TileNavPane 相关处理 - private void MainForm_Load(object sender, EventArgs e) + //最大化最小化窗体 + private void nbNormal_ElementClick(object sender, NavElementEventArgs e) { - _helper.LoadCompletedEvent += _helper_LoadCompletedEvent; - _helper.SelectProjectEvent += _helper_SelectProjectEvent; - _helper.Initial(mapViewProjectListContainer1); + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } } - private bool _helper_SelectProjectEvent(string arg) + //最小化窗体 + private void nbMin_ElementClick(object sender, NavElementEventArgs e) { - MessageBox.Show("aaa"); + this.WindowState = FormWindowState.Minimized; + } + + //关闭窗体 + private void nabClose_ElementClick(object sender, NavElementEventArgs e) + { + this.Close(); + } + + //移动窗体 + private void tileNavPane_MouseDown(object sender, MouseEventArgs e) + { + if (e.Clicks >= 2) + { + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + } + else + { + this.WindowState = FormWindowState.Maximized; + } + } + else + { + var hitInfo = this.tileNavPane.CalcHitInfo(e.Location); + if (hitInfo.InButton) + { + return; + } + this.DragMove(); + } + } + + //功能点击事件 + private void tileNavPane_ElementClick(object sender, NavElementEventArgs e) + { + var item = e.Element as NavButton; + if (item.Tag != null) + { + if (item.Tag is string) + { + } + } + } + + //首页 + private void nbTitle_ElementClick(object sender, NavElementEventArgs e) + { + var guid = new PageGuid() + { + Modular = "Xhs", + MoudingType = eMoudingType.Tab, + Function = "Home" + }; + if (!IsExistPage(guid, true)) + { + var page = new HomeXhsProjectPage(); + CreatePage(page, guid); + } + } + + //项目管理 + private void nbProjectMgr_ElementClick(object sender, NavElementEventArgs e) + { + var guid = new PageGuid() + { + Modular = "Xhs", + MoudingType = eMoudingType.Tab, + Function = "ProjectMgr", + }; + if (!IsExistPage(guid, true)) + { + var page = new XhsProjectMgrPage(); + CreatePage(page, guid); + } + } + + //模型管理 + private void nbModelMgr_ElementClick(object sender, NavElementEventArgs e) + { + var pt = this.tileNavPane.PointToClient(MousePosition); + var hitInfo = this.tileNavPane.CalcHitInfo(pt); + if (hitInfo.ButtonInfo != null) + { + if (_bimfaceMgrBeakCtrl == null) + { + var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>() + { + new TilePeekItem() + { + Caption="水力场景", + SvgImage=svgImg32Model[0], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Hydro", + MoudingType=eMoudingType.Tab, + Function="SceneMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new Yw.WinFrmUI.HydroSceneMgrPage(); + CreatePage(page,guid); + } + } + }, + new TilePeekItem(){ + Caption="水力模型", + SvgImage=svgImg32Model[1], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Hydro", + MoudingType=eMoudingType.Tab, + Function="ModelMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new HStation.WinFrmUI.HydroModelMgrPage(); + CreatePage(page,guid); + } + } + }, + new TilePeekItem(){ + Caption="三维模型", + SvgImage=svgImg32Model[2], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Bimface", + MoudingType=eMoudingType.Tab, + Function="FileMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new Yw.WinFrmUI.BimfaceFileMgrPage(); + CreatePage(page,guid); + } + } + }, + }; + _bimfaceMgrBeakCtrl = peakItemList.CreatePeekCtrl(); + } + this.flyoutPanel1.Size = _bimfaceMgrBeakCtrl.Size; + this.flyoutPanelControl1.Controls.Clear(); + this.flyoutPanelControl1.Controls.Add(_bimfaceMgrBeakCtrl); + var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds); + this.flyoutPanel1.ShowBeakForm(rectangle); + } + + } + + private Control _bimfaceMgrBeakCtrl = null;//bimface管理弹出界面 + + //系统配置 + private void nbSystemConfig_ElementClick(object sender, NavElementEventArgs e) + { + var pt = this.tileNavPane.PointToClient(MousePosition); + var hitInfo = this.tileNavPane.CalcHitInfo(pt); + if (hitInfo.ButtonInfo != null) + { + if (_SystemConfigBeakCtrl == null) + { + var peakItemList = new List<Yw.WinFrmUI.TilePeekItem>() + { + new TilePeekItem(){ + Caption="水泵管理", + SvgImage=svgImg32Model[0], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Asstes", + MoudingType=eMoudingType.Tab, + Function="pumpMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new PumpProductMainPanel(); + CreatePage(page,guid); + } + } + }, + new TilePeekItem(){ + Caption="类型管理", + SvgImage=svgImg32Model[0], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Basic", + MoudingType=eMoudingType.Tab, + Function="TypeMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new SysTypeManageMainPanel(); + CreatePage(page,guid); + } + } + }, + new TilePeekItem(){ + Caption="分类管理", + SvgImage=svgImg32Model[0], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Basic", + MoudingType=eMoudingType.Tab, + Function="CataLogMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new SysCatalogManageMainPanel(); + CreatePage(page,guid); + } + } + }, new TilePeekItem(){ + Caption="属性管理", + SvgImage=svgImg32Model[0], + SvgImageSize=new Size(24,24), + Click=()=>{ + this.flyoutPanel1.HideBeakForm(); + var guid=new PageGuid(){ + Modular="Basic", + MoudingType=eMoudingType.Tab, + Function="PropMgr", + }; + if(!IsExistPage(guid,true)) + { + var page=new SysPropManageMainPanel(); + CreatePage(page,guid); + } + } + } + }; + _SystemConfigBeakCtrl = peakItemList.CreatePeekCtrl(); + } + this.flyoutPanel1.Size = _SystemConfigBeakCtrl.Size; + this.flyoutPanelControl1.Controls.Clear(); + this.flyoutPanelControl1.Controls.Add(_SystemConfigBeakCtrl); + var rectangle = this.RectangleToScreen(hitInfo.ButtonInfo.Bounds); + this.flyoutPanel1.ShowBeakForm(rectangle); + } + } + + private Control _SystemConfigBeakCtrl = null;//系统配置弹出界面 + + #endregion TileNavPane 相关处理 + + #region 窗体事件 + + //界面记载事件 + private void MainForm_Load(object sender, EventArgs e) + { + } + + //界面显示事件 + private void MainForm_Shown(object sender, EventArgs e) + { + var guid = new PageGuid() + { + Modular = "Xhs", + MoudingType = eMoudingType.Tab, + Function = "Home" + }; + if (!IsExistPage(guid, true)) + { + var page = new HomeXhsProjectPage(); + CreatePage(page, guid); + } + } + + //界面正在退出时确认 + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + if (XtraMessageBox.Show("是否关闭程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + //界面退出 + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) + { + } + + //窗体尺寸改变 + private void MainForm_Resize(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + { + } + else + { + } + } + + #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; + SelectModular(surfaceGuid.Modular, surfaceGuid); + } + + //添加 + 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 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 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 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 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; } - private async void _helper_LoadCompletedEvent() + //关闭Page + private void ClosePage(PageGuid pguid) { - await _helper.SetProjectList(new List<MapProjectViewModel>() { - new MapProjectViewModel(){ - Id="1", - Name="TEST01", - Description="CESHI01", - Point=new MapPointViewModel(121.516899,31.132442) - }, - new MapProjectViewModel(){ - Id="1", - Name="TEST01", - Description="CESHI01", - Point=new MapPointViewModel(116.422636,39.884519) - } - }); + 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 + + #region Modular + + //选择模块 + private void SelectModular(string modular, PageGuid pageGuid = null) + { + //foreach (NavButton item in this.tileNavPane.Buttons) + //{ + // if (item.Tag == null) + // continue; + // if (item.Tag is int) + // { + // if (((int)item.Tag) == (int)modular) + // { + // item.Appearance.BackColor = Color.FromArgb(255, 128, 0); + // } + // else + // { + // item.Appearance.BackColor = Color.Transparent; + // } + // } + //} + //this.docPnlFuncList.Text = modular.ToString(); + //this.funcTreeListCtrl1.SetBindingData(modular, surfaceGuid); + //if (surfaceGuid == null) + //{ + // var func = this.funcTreeListCtrl1.SetDefault(); + // if (func != null) + // CreateFuncPage(func); + //} + } + + #endregion Modular } -} +} \ No newline at end of file -- Gitblit v1.9.3