using Hydro.MapView;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Runtime.CompilerServices;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace CloudWaterNetwork.Magnifier
|
{
|
public partial class Form_Magnifier : Form
|
{
|
Template _template = null;
|
float xMin = 9999999999999, yMin = 9999999999999;
|
public Form_Magnifier(List<IBaseViewModel> list)
|
{
|
InitializeComponent();
|
_template = new Template();
|
_template.network = new MapViewNetWork();
|
_template.network.Nodes.AddRange(list.FindAll(o=>o is NodeViewModel).Select(o=>o as NodeViewModel).ToList());
|
_template.network.Links.AddRange(list.FindAll(o => o is LinkViewModel).Select(o => o as LinkViewModel).ToList());
|
_template.network.Links.ForEach(l=>
|
{
|
if (!_template.network.Nodes.Contains( l.StartNode))
|
{
|
_template.network.Nodes.Add(l.StartNode);
|
}
|
if (!_template.network.Nodes.Contains(l.EndNode))
|
{
|
_template.network.Nodes.Add(l.EndNode);
|
}
|
});
|
_template.network.Nodes.ForEach(n =>
|
{
|
if (xMin > n.X) xMin = n.X;
|
if (yMin > n.Y) yMin = n.Y;
|
});
|
//_template.network.MapObjects.ForEach(o => o.Selected = false);
|
转换器();
|
|
|
|
|
}
|
private void Form_Magnifier_Load(object sender, EventArgs e)
|
{
|
MapViewer map = new MapViewer();
|
map.Dock = DockStyle.Fill;
|
this.Controls.Add(map);
|
old_map = GlobalObject.map;
|
GlobalObject.map = map;
|
old_fr = GlobalObject.PropertyForm.GetWindow();
|
GlobalObject.PropertyForm.SetWindows(this);
|
|
|
map.SetData(_template);
|
map.SetInvalidated();
|
}
|
private void 转换器()
|
{
|
_template.network.Nodes.ForEach(n =>
|
{
|
n.X -= xMin;
|
n.X *= 10;
|
n.Y -= yMin;
|
n.Y *= 10;
|
});
|
}
|
private void 还原器()
|
{
|
_template.network.Nodes.ForEach(n =>
|
{
|
n.X /= 10;
|
n.X += xMin;
|
n.Y /= 10;
|
n.Y += yMin;
|
|
});
|
}
|
|
private void Form_Magnifier_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
还原器();
|
//_template.network.MapObjects.ForEach(o => o.Selected = true);
|
GlobalObject.map = old_map;
|
|
//GlobalObject.PropertyForm.SetWindows(old_fr);
|
}
|
MapViewer old_map;
|
Form old_fr;
|
|
}
|
}
|