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 System.IO;
using SuperMap.Data; //引入SuperMap控件
using SuperMap.Mapping;
using SuperMap.UI;
namespace Spatial_Data_management
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
workspaceTree.Workspace = workspace1;
}
//打开工作空间
private void mnuopenWks_Click_1(object sender, EventArgs e)
{
this.openFileDialog.Title = "打开工作空间";
this.openFileDialog.FileName = "";
this.openFileDialog.Filter = "工作空间文件(*.smwu)|*.smwu|工作空间文件(*.sxwu)|*.sxwu";
if (this.openFileDialog.ShowDialog() == DialogResult.OK)
{
workspace1.Close();
string fileName = openFileDialog.FileName;
WorkspaceConnectionInfo wsinfo = new WorkspaceConnectionInfo(fileName);
workspace1.Open(wsinfo);
workspaceTree.Refresh();
}
}
//保存工作空间
private void mnusaveWks_Click_1(object sender, EventArgs e)
{
if (workspace1.Save())
{
MessageBox.Show("工作空间保存成功!", "提示");
}
else
{
MessageBox.Show("工作空间保存失败!", "提示");
return;
}
}
//另存工作空间
private void mnusaveWksAs_Click_1(object sender, EventArgs e)
{
this.saveFileDialog1.Title = "保存工作空间";
this.saveFileDialog1.Filter = "工作空间文件(*.smwu)|*.smwu|工作空间文件(*.sxwu)|*.sxwu";
if (this.saveFileDialog1.FileName != null && this.saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string name = System.IO.Path.GetFileNameWithoutExtension(this.saveFileDialog1.FileName);
WorkspaceConnectionInfo conInfo = new WorkspaceConnectionInfo();
conInfo.Server = this.saveFileDialog1.FileName;
conInfo.Password = "";
if (this.saveFileDialog1.FilterIndex == 1)
{
conInfo.Type = WorkspaceType.SMWU;
}
else
{
conInfo.Type = WorkspaceType.SXWU;
}
workspace1.Caption = name;
if (workspace1.SaveAs(conInfo))
{
MessageBox.Show("工作空间另存成功!");
}
else
{
MessageBox.Show("另存工作空间失败!", "提示");
return;
}
}
}
//创建数据源
private void mnucreateDS_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "新建文件型数据源";
saveFileDialog.CheckPathExists = true;
saveFileDialog.AddExtension = true;
saveFileDialog.Filter = "文件型数据库(*.udb)|*.udb";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
String name = Path.GetFileNameWithoutExtension(saveFileDialog.FileName);
for (int m = 0; m < workspace1.Datasources.Count; m++)
{
bool test = (String.Compare(name, workspace1.Datasources[m].Alias) == 0);
if (test)
{
MessageBox.Show("指定数据源名称已存在!");
return;
}
}
DatasourceConnectionInfo conInfo = new DatasourceConnectionInfo(name, name, "");
conInfo.Server = saveFileDialog.FileName;
workspace1.Datasources.Create(conInfo);
}
}
//打开文件型数据源
private void mnuopenFileDS_Click_1(object sender, EventArgs e)
{
if (workspace1 != null)
{
OpenFileDialog openFileDialog1= new OpenFileDialog();
openFileDialog1.Filter = "文件型数据源(*.udb)|*.udb";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
DatasourceConnectionInfo m_datasourceInfo = new DatasourceConnectionInfo();
m_datasourceInfo.Server = openFileDialog1.FileName;
m_datasourceInfo.Alias = System.IO.Path.GetFileNameWithoutExtension(openFileDialog.FileName);
bool test = workspace1.Datasources.Contains(m_datasourceInfo.Alias);
if (test)
{
MessageBox.Show("该数据源已打开!");
return;
}
m_datasourceInfo.Password = "";
m_datasourceInfo.EngineType = EngineType.UDB;
workspace1.Datasources.Open(m_datasourceInfo);
workspaceTree.Refresh();
}
}
}
//打开数据库型数据源
private void mnuopenDBDS_Click_1(object sender, EventArgs e)
{
if (workspace1 != null)
{
DatasourceConnectionInfo info = new DatasourceConnectionInfo();
info.EngineType = EngineType.PostgreSQL;
info.Server = "localhost";
info.Database = "jiangsu";
info.User = "postgres";
info.Password = "111111";
workspace1.Datasources.Open(info);
workspaceTree.Refresh();
}
}
//关闭数据源
private void mnucloseDS_Click_1(object sender, EventArgs e)
{
if (workspaceTree.SelectedNode.Parent == workspaceTree.DatasourcesNode)
{
workspace1.Datasources[workspaceTree.SelectedNode.Text].Close();
workspaceTree.Refresh();
}
else
{
MessageBox.Show("请先选中要关闭的数据源!");
}
}
// 工作空间树节点添加右键菜单函数
private void CreateContextMenuStrip()
{
// 为工作空间树中的矢量数据集节点指定一个右键菜单
workspaceTree.NodeContextMenuStrips[WorkspaceTreeNodeDataType.DatasetVector] =??
}
}
}