cloudflight
2024-08-05 46f88867a2d3561a701535bcc6c41d0f76634b52
Desktop/HStation.Xhs.Hydro.Test.Core/Form2.cs
@@ -1,4 +1,6 @@
using System;

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -7,9 +9,8 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Hydro.MapUI;
using Hydro.MapView;
using Hydro.MapView.Common;
using Yw.EPAnet.Calcu;
using Yw.WinFrmUI.Q3D;
namespace Hydro.ClientTool
{
@@ -21,31 +22,84 @@
            InitializeComponent();
        }
        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            模板管理 form = new 模板管理();
            if (form.ShowDialog() == DialogResult.OK)
            {
                var temp = TemplateList.GetTemplate(form.TemplateID);
                mapViewer1.SetData(temp);
            }
        }
        private void Form2_Load(object sender, EventArgs e)
        {
            this.mapViewer1.showToolBar = true;
            if (TemplateList.Inited == false)
            NetWork network = new NetWork();
            network.BuildFromInp(@"temp/temp.inp");
            MapViewNetWork mapNetwork = new MapViewNetWork();
            foreach (var node in network.Nodes)
            {
                TemplateList.Init();
                NodeViewModel viewNode=null;
                if (node is MeterModel meter)
                {
                    viewNode = new MeterViewModel();
                    viewNode.X = meter.X;
                    viewNode.Y = meter.Y;
                    viewNode.Name = meter.Name;
                    viewNode.ID = meter.ID;
                    viewNode.Z = meter.Elev;
                    viewNode.Demand = meter.Demand;
                }
                else if (node is JunctionModel j)
                {
                    viewNode = new JunctionViewModel();
                    viewNode.X = j.X;
                    viewNode.Y = j.Y;
                    viewNode.Name = j.Name;
                    viewNode.ID = j.ID;
                    viewNode.Z = j.Elev;
                    viewNode.Demand = j.Demand;
                }
                else if (node is ReservoisModel res)
                {
                    viewNode= new ReservoirViewModel();
                    viewNode.X = res.X;
                    viewNode.Y = res.Y;
                    viewNode.Name = res.Name;
                    viewNode.ID = res.ID;
                    viewNode.Z = res.Elev;
                    ((ReservoirViewModel)viewNode).Head = res.Head;
                }
                mapNetwork.Nodes.Add(viewNode);
            }
            GlobalObject.map = this.mapViewer1;
            ////GlobalObject.PropertyForm = this.propertyForm1;
            foreach(var link in network.Links)
            {
                LinkViewModel viewLink = null;
                //判断如果是管道
                if (link is PipeModel pipe)
                {
                    viewLink = new PipeViewModel();
                    viewLink.ID = pipe.ID;
                    viewLink.Node1 = pipe.Node1;
                    viewLink.Node2 = pipe.Node2;
                    viewLink.Diameter = pipe.Diameter;
                    viewLink.Length = pipe.Length;
                    viewLink.Roughness = pipe.Roughness;
                }
                else if (link is ValveModel valve)
                {
                    viewLink = new ValveViewModel();
                    viewLink.ID= valve.ID;
                    viewLink.Node1 = valve.Node1;
                    viewLink.Node2 = valve.Node2;
                    viewLink.Diameter = valve.Diameter;
                    viewLink.Length = valve.Length;
                    viewLink.Roughness = valve.Roughness;
                }
                 mapNetwork.Links.Add(viewLink);
            }
            mapNetwork.BuildRelation();
            map.SetData(mapNetwork);
        }
        private void Form2_KeyDown(object sender, KeyEventArgs e)
        {
            mapViewer1.MapViewer_KeyDown(sender, e);
            map.MapViewer_KeyDown(sender, e);
        }
    }
}