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