|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using ComponentFactory.Krypton.Toolkit;
|
|
|
|
|
|
using ComponentFactory.Krypton.Navigator;
|
|
|
|
|
|
using ComponentFactory.Krypton.Workspace;
|
|
|
|
|
|
using ComponentFactory.Krypton.Docking;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
using SigmaDrawerStyle;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GeoSigmaViewer
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class FormViewer : Form
|
|
|
|
|
|
{
|
|
|
|
|
|
List<Viewer> viewers = new List<Viewer>();
|
|
|
|
|
|
List<LayerTree> layers = new List<LayerTree>();
|
|
|
|
|
|
Viewer viewer;// = new Viewer();
|
|
|
|
|
|
LayerTree layerTree;
|
|
|
|
|
|
PanelProperty panelProperty = new PanelProperty();
|
|
|
|
|
|
KryptonPage pageProperty = new KryptonPage();
|
|
|
|
|
|
int nViewCount = 0;
|
|
|
|
|
|
public FormViewer()
|
|
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void FormViewer_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
KryptonDockingWorkspace w = kryptonDockingManager.ManageWorkspace(kryptonDockableWorkspace);
|
|
|
|
|
|
kryptonDockingManager.ManageControl(kryptonPanel, w);
|
|
|
|
|
|
kryptonDockingManager.ManageFloating(this);
|
|
|
|
|
|
LoadPropertyPanel();
|
|
|
|
|
|
// OpenFile("c:\\temp\\钻探目标分布图2.dfd");
|
|
|
|
|
|
OpenFile("c:\\temp\\钻探目标分布图.dfd");
|
|
|
|
|
|
//OpenFile("c:\\temp\\self_a.dfd");
|
|
|
|
|
|
}
|
|
|
|
|
|
private void btnOpenFile_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
OpenFileDialog ofd = new OpenFileDialog();
|
|
|
|
|
|
if(ofd.ShowDialog()!=DialogResult.OK)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
OpenFile(ofd.FileName);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OpenFile(string fileName)
|
|
|
|
|
|
{
|
|
|
|
|
|
Viewer viewerCur = new Viewer();
|
|
|
|
|
|
if (viewerCur.OpenFile(fileName)==false)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
panelProperty.DrawViewer=viewerCur;
|
|
|
|
|
|
// Create new page with title and image
|
|
|
|
|
|
KryptonPage pageView = new KryptonPage();
|
|
|
|
|
|
pageView.Text="图形 "+(nViewCount+1);
|
|
|
|
|
|
pageView.TextTitle=pageView.Text;
|
|
|
|
|
|
pageView.TextDescription=pageView.Text;
|
|
|
|
|
|
pageView.UniqueName=viewerCur.ID+"";
|
|
|
|
|
|
pageView.ImageSmall=imageListSmall.Images[0];
|
|
|
|
|
|
|
|
|
|
|
|
// Add the control for display inside the page
|
|
|
|
|
|
viewerCur.Dock=DockStyle.Fill;
|
|
|
|
|
|
pageView.Controls.Add(viewerCur);
|
|
|
|
|
|
nViewCount++;
|
|
|
|
|
|
viewers.Add(viewerCur);
|
|
|
|
|
|
viewer=viewerCur;
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i<layers.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
kryptonDockingManager.RemovePage(layers[i].ID+"", false);
|
|
|
|
|
|
}
|
|
|
|
|
|
//TriStateTreeView tree = new TriStateTreeView();
|
|
|
|
|
|
//tree.ImageList=imlLayer;
|
|
|
|
|
|
LayerTree tree = new LayerTree();
|
|
|
|
|
|
tree.DrawViewer=viewer;
|
|
|
|
|
|
tree.LayerSelectedEvent+=layerTree_LayerSelect;
|
|
|
|
|
|
// Create new page with title and image
|
|
|
|
|
|
KryptonPage pageTree = new KryptonPage();
|
|
|
|
|
|
pageTree.Text="图层";
|
|
|
|
|
|
pageTree.TextTitle=pageTree.Text;
|
|
|
|
|
|
pageTree.TextDescription=pageTree.Text;
|
|
|
|
|
|
pageTree.UniqueName=tree.ID+"";
|
|
|
|
|
|
//p.ImageSmall=imageListSmall.Images[1];
|
|
|
|
|
|
|
|
|
|
|
|
// Add the control for display inside the page
|
|
|
|
|
|
tree.Dock=DockStyle.Fill;
|
|
|
|
|
|
pageTree.Controls.Add(tree);
|
|
|
|
|
|
layers.Add(tree);
|
|
|
|
|
|
layerTree=tree;
|
|
|
|
|
|
// Add docking pages
|
|
|
|
|
|
kryptonDockingManager.AddDockspace("Control", DockingEdge.Left, new KryptonPage[] { pageTree });
|
|
|
|
|
|
kryptonDockingManager.AddToWorkspace("Workspace", new KryptonPage[] { pageView });
|
|
|
|
|
|
|
|
|
|
|
|
viewer.ActiveTool=DrawToolType.Default;
|
|
|
|
|
|
//viewer.Redraw();
|
|
|
|
|
|
string strLayers = viewer.GetLayers();
|
|
|
|
|
|
string strCurrentLayer = viewer.GetCurrentLayer();
|
|
|
|
|
|
layerTree.ResetLayers(strLayers);
|
|
|
|
|
|
layerTree.SetCurrentLayer(strCurrentLayer);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void layerTree_LayerSelect(string layerName)
|
|
|
|
|
|
{
|
|
|
|
|
|
string strCurveData="";
|
|
|
|
|
|
string strPointData="";
|
|
|
|
|
|
viewer.GetLayerStyleData(layerName, ref strCurveData, ref strPointData);
|
|
|
|
|
|
//Console.WriteLine(strCurveData);
|
|
|
|
|
|
DrawerStyle drawerStyle = new DrawerStyle();
|
|
|
|
|
|
drawerStyle.DeserializeCurve(strCurveData);
|
|
|
|
|
|
drawerStyle.DeserializePoint(strPointData);
|
|
|
|
|
|
if (drawerStyle.CurveStyle!=null||drawerStyle.PontStyle != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
panelProperty.CurrentStyle=drawerStyle;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
panelProperty.CurrentStyle=null;
|
|
|
|
|
|
}
|
|
|
|
|
|
panelProperty.LayerName=layerName;
|
|
|
|
|
|
//MessageBox.Show(layerName);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void LoadPropertyPanel()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (kryptonDockingManager.FindPageElement(pageProperty.UniqueName)!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
pageProperty.Text="属性";
|
|
|
|
|
|
pageProperty.TextTitle=pageProperty.Text;
|
|
|
|
|
|
pageProperty.TextDescription="属性管理";
|
|
|
|
|
|
pageProperty.UniqueName="图形属性";
|
|
|
|
|
|
pageProperty.ImageSmall=imageListSmall.Images[0];
|
|
|
|
|
|
|
|
|
|
|
|
// Add the control for display inside the page
|
|
|
|
|
|
panelProperty.Dock=DockStyle.Fill;
|
|
|
|
|
|
pageProperty.Controls.Add(panelProperty);
|
|
|
|
|
|
kryptonDockingManager.AddDockspace("Control", DockingEdge.Right, new KryptonPage[] { pageProperty });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 放大
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
private void btnZoomIn_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ZoomIn();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void btnZoomOut_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ZoomOut();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void btnTestScroll_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.Scroll2(400);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void FormViewer_Resize(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (viewer==null) return;
|
|
|
|
|
|
viewer.ReDrawWindow();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void tsbViewAll_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ViewAll();
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 恢复缺省状态
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
private void tsbToolDefault_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool=DrawToolType.Default;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void tsbPan_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool=DrawToolType.ViewPan;
|
|
|
|
|
|
}
|
|
|
|
|
|
private void tsbViewWindow_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool=DrawToolType.ViewWindow;
|
|
|
|
|
|
}
|
|
|
|
|
|
private void tsbSelect_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool=DrawToolType.Select;
|
|
|
|
|
|
}
|
|
|
|
|
|
private void tsbPointAdd_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Point;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void tsbCurveAdd_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
//viewer.
|
|
|
|
|
|
//this.ContextMenuStrip = this.contextMenuStrip1;
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Curve;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void tsbProportionAdd_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Proportion;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void rectangularCSGridButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.RectangularCSGrid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawRectangleButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Rectangle;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawEllipseButton_ButtonClick(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Ellipse;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawArcButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Arc;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawChordButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Chord;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawPieButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Pie;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawEquilateralButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Equilateral;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void drawTextButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Text;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void breakDirectButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.BreakDirect;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void breakCurveButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void deleteNormalButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.Delete;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void deleteInButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.DeleteIn;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void deleteOutButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
viewer.ActiveTool = DrawToolType.DeleteOut;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|