|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using SigmaDrawerStyle;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GeoSigmaViewer
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class PanelProperty : UserControl
|
|
|
|
|
|
{
|
|
|
|
|
|
public Viewer DrawViewer { get; set; }
|
|
|
|
|
|
public string LayerName { get; set; }
|
|
|
|
|
|
private int propertyType = 0;//0-层位属性;1-元素属性
|
|
|
|
|
|
private int propertyIndex = -1;
|
|
|
|
|
|
public PanelProperty()
|
|
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
}
|
|
|
|
|
|
private DrawerStyle _CurrentStyle;
|
|
|
|
|
|
|
|
|
|
|
|
public DrawerStyle CurrentStyle {
|
|
|
|
|
|
get => _CurrentStyle;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_CurrentStyle=value;
|
|
|
|
|
|
propertyGrid.SelectedObject=null;
|
|
|
|
|
|
lsvLayer.Items.Clear();
|
|
|
|
|
|
//lsvElement.Items.Clear();
|
|
|
|
|
|
if (_CurrentStyle==null)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (_CurrentStyle.CurveStyle!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<CurveView> lstCurve = _CurrentStyle.CurveStyle.Properties;
|
|
|
|
|
|
if (lstCurve!=null&&lstCurve.Count>0)
|
|
|
|
|
|
{
|
|
|
|
|
|
int nIndex = 0;
|
|
|
|
|
|
foreach (CurveView curve in lstCurve)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (curve is CurveStyleBase) { continue; }
|
|
|
|
|
|
nIndex++;
|
|
|
|
|
|
ListViewItem lvi = new ListViewItem(""+nIndex);
|
|
|
|
|
|
lvi.SubItems.Add(new ListViewItem.ListViewSubItem(lvi, curve.TypeName));
|
|
|
|
|
|
lvi.SubItems.Add(new ListViewItem.ListViewSubItem(lvi, "线"));
|
|
|
|
|
|
lvi.Tag=curve;
|
|
|
|
|
|
lsvLayer.Items.Add(lvi);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (_CurrentStyle.PontStyle!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
ListViewItem lvi = new ListViewItem("1");
|
|
|
|
|
|
lvi.SubItems.Add(new ListViewItem.ListViewSubItem(lvi, "点属性"));
|
|
|
|
|
|
lvi.SubItems.Add(new ListViewItem.ListViewSubItem(lvi, "点"));
|
|
|
|
|
|
lvi.Tag=_CurrentStyle.PontStyle;
|
|
|
|
|
|
lsvLayer.Items.Add(lvi);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (lsvLayer.Items.Count>0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//CurveProperty property = lsvCurve.Items[0].Tag as CurveProperty;
|
|
|
|
|
|
propertyGrid.SelectedObject=lsvLayer.Items[0].Tag;
|
|
|
|
|
|
}
|
|
|
|
|
|
//else
|
|
|
|
|
|
//{
|
|
|
|
|
|
// if (lsvPoint.Items.Count>0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// propertyGrid.SelectedObject=lsvPoint.Items[0];
|
|
|
|
|
|
// tabControl1.SelectTab(1);
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
lsvLayer.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void lsvCurve_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(lsvLayer.SelectedItems.Count>0)
|
|
|
|
|
|
{
|
|
|
|
|
|
propertyGrid.SelectedObject=lsvLayer.SelectedItems[0].Tag;
|
|
|
|
|
|
propertyType=0;
|
|
|
|
|
|
propertyIndex=lsvLayer.SelectedItems[0].Index;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void tsbLayerDel_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(lsvLayer.SelectedItems.Count==0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
ListViewItem lviSelect = lsvLayer.SelectedItems[0];
|
|
|
|
|
|
int nIndex = lviSelect.Index;
|
|
|
|
|
|
string strType = lviSelect.SubItems[2].Text+"";
|
|
|
|
|
|
lviSelect.Remove();
|
|
|
|
|
|
int nCount = lsvLayer.Items.Count;
|
|
|
|
|
|
if (nIndex==nCount)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (lsvLayer.Items.Count>0)
|
|
|
|
|
|
{ lsvLayer.Items[0].Selected=true; }
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
lsvLayer.Items[nIndex].Selected=true;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (strType.Equals("线"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (DrawViewer.RemoveCurveStyle(LayerName, nIndex))
|
|
|
|
|
|
{
|
|
|
|
|
|
DrawViewer.Redraw();
|
|
|
|
|
|
}
|
|
|
|
|
|
ResetLayerIndex();
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (strType.Equals("点"))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (DrawViewer.RemovePointStyle(LayerName))
|
|
|
|
|
|
{
|
|
|
|
|
|
DrawViewer.Redraw();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if(nCount ==0)
|
|
|
|
|
|
{
|
|
|
|
|
|
propertyGrid.SelectedObject=null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void ResetLayerIndex()
|
|
|
|
|
|
{
|
|
|
|
|
|
int nCount = lsvLayer.Items.Count;
|
|
|
|
|
|
int nIndex = 0;
|
|
|
|
|
|
for (int i=0;i<nCount;i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
ListViewItem lviSelect = lsvLayer.Items[i];
|
|
|
|
|
|
if (lviSelect.SubItems[2].Text.Equals("线"))
|
|
|
|
|
|
{
|
|
|
|
|
|
nIndex++;
|
|
|
|
|
|
lviSelect.Text=nIndex+"";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 属性修改事件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="s"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
private void propertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
var varStyle = propertyGrid.SelectedObject;
|
|
|
|
|
|
if(varStyle is DrawerPointStyle)
|
|
|
|
|
|
{
|
|
|
|
|
|
string strPointStyle = ((DrawerPointStyle)varStyle).SerialXml();
|
|
|
|
|
|
if( DrawViewer.SetLayerHowtoViewPoint(LayerName, strPointStyle)==true)
|
|
|
|
|
|
{
|
|
|
|
|
|
DrawViewer.Redraw();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
string strCurveStyle = ((CurveView)varStyle).SerialXml();
|
|
|
|
|
|
Console.WriteLine(strCurveStyle);
|
|
|
|
|
|
if (DrawViewer.SetLayerHowtoViewCurve(LayerName, strCurveStyle, propertyIndex)==true)
|
|
|
|
|
|
{
|
|
|
|
|
|
DrawViewer.Redraw();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|