|
|
|
|
using DevExpress.XtraEditors;
|
|
|
|
|
using DevExpress.XtraTreeList;
|
|
|
|
|
using DevExpress.XtraTreeList.Nodes;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using KGIS.Plugin.LayerProperty.EventHandler;
|
|
|
|
|
using KGIS.Plugin.LayerProperty.Interface;
|
|
|
|
|
using KGIS.Plugin.LayerProperty.Utils;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace KGIS.Plugin.LayerProperty.View
|
|
|
|
|
{
|
|
|
|
|
public partial class FormGalleryPathSelector : XtraForm, IUIPlugIn, IPlugIn
|
|
|
|
|
{
|
|
|
|
|
private TreeListNode m_LocalRootNode;
|
|
|
|
|
private TreeListNode m_DBRootNode;
|
|
|
|
|
private KGIS.Framework.Utils.Dialog.OpenFileDialog m_OpenFileDialog;
|
|
|
|
|
private IDoStyleGalleryStorage m_DistStyleGalleryStorage;
|
|
|
|
|
private IDoStyleGallery m_DistStyleGallery;
|
|
|
|
|
private object selectedPath;
|
|
|
|
|
public string UpdateTextName;
|
|
|
|
|
public object SelectedPath
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.selectedPath;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.selectedPath = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public ICoreRDBHelper RDBHelper
|
|
|
|
|
{
|
|
|
|
|
get;
|
|
|
|
|
//{
|
|
|
|
|
// return RdbUtil.RDBHelper;
|
|
|
|
|
//}
|
|
|
|
|
set;
|
|
|
|
|
//{
|
|
|
|
|
// RdbUtil.RDBHelper = value;
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
public ITraceHandler TraceHandler
|
|
|
|
|
{
|
|
|
|
|
get;
|
|
|
|
|
//{
|
|
|
|
|
// return RdbUtil.TraceHandler;
|
|
|
|
|
//}
|
|
|
|
|
set;
|
|
|
|
|
//{
|
|
|
|
|
// RdbUtil.TraceHandler = value;
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
public ILogEvent Log
|
|
|
|
|
{
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.Log = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public FormGalleryPathSelector()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
public void Init()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
this.tlstGalleryTree.Nodes.Clear();
|
|
|
|
|
this.tlstGalleryTree.OptionsBehavior.Editable = false;
|
|
|
|
|
TreeListNode treeListNode = this.tlstGalleryTree.AppendNode(new object[]
|
|
|
|
|
{
|
|
|
|
|
"数据库图库"
|
|
|
|
|
}, null);
|
|
|
|
|
treeListNode.Tag = null;
|
|
|
|
|
treeListNode.StateImageIndex = 0;
|
|
|
|
|
this.RefreshRootNode(treeListNode);
|
|
|
|
|
this.m_DBRootNode = treeListNode;
|
|
|
|
|
TreeListNode treeListNode2 = this.tlstGalleryTree.AppendNode(new object[]
|
|
|
|
|
{
|
|
|
|
|
"本地图库"
|
|
|
|
|
}, null);
|
|
|
|
|
treeListNode2.Tag = "local";
|
|
|
|
|
treeListNode2.StateImageIndex = 0;
|
|
|
|
|
this.m_LocalRootNode = treeListNode2;
|
|
|
|
|
AddLocalFile();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.AddException(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void AddLocalFile()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"工作空间\符号库");
|
|
|
|
|
if (Directory.Exists(path))
|
|
|
|
|
{
|
|
|
|
|
string[] fileInfo = Directory.GetFiles(path, "*.ServerStyle?");
|
|
|
|
|
if (fileInfo != null && fileInfo.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
foreach (string text in fileInfo)
|
|
|
|
|
{
|
|
|
|
|
this.AddFile(text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw ex;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void RefreshRootNode(TreeListNode node)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (node != null)
|
|
|
|
|
{
|
|
|
|
|
node.Nodes.Clear();
|
|
|
|
|
StyleGalleryFactory.Clear();
|
|
|
|
|
StyleGalleryFactory.LoadAllDistStyleGalleryPath();
|
|
|
|
|
List<IDoStyleGalleryPath> distStyleGalleryPathList = StyleGalleryFactory.DistStyleGalleryPathList;
|
|
|
|
|
foreach (IDoStyleGalleryPath current in distStyleGalleryPathList)
|
|
|
|
|
{
|
|
|
|
|
TreeListNode treeListNode = this.tlstGalleryTree.AppendNode(new object[]
|
|
|
|
|
{
|
|
|
|
|
current.Name
|
|
|
|
|
}, node);
|
|
|
|
|
treeListNode.Tag = current;
|
|
|
|
|
treeListNode.StateImageIndex = 5;
|
|
|
|
|
}
|
|
|
|
|
if (node.Nodes.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
this.tlstGalleryTree.FocusedNode = node.Nodes[0];
|
|
|
|
|
node.Nodes[0].Selected = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.AddException(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void tlstGalleryTree_FocusedNodeChanged(object sender, FocusedNodeChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
this.btnOK.Enabled = true;
|
|
|
|
|
if (e.Node == null)
|
|
|
|
|
{
|
|
|
|
|
this.btnOK.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
if (e.Node == this.m_LocalRootNode)
|
|
|
|
|
{
|
|
|
|
|
this.btnOK.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
if (e.Node == this.m_DBRootNode)
|
|
|
|
|
{
|
|
|
|
|
this.btnOK.Enabled = false;
|
|
|
|
|
}
|
|
|
|
|
this.selectedPath = e.Node.Tag;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.AddException(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private string OpenServerStyleFile()
|
|
|
|
|
{
|
|
|
|
|
if (this.m_OpenFileDialog == null)
|
|
|
|
|
{
|
|
|
|
|
this.m_OpenFileDialog = new KGIS.Framework.Utils.Dialog.OpenFileDialog();
|
|
|
|
|
}
|
|
|
|
|
this.m_OpenFileDialog.Filter = "ESRI ServerStyle(*.ServerStyle)|*.ServerStyle";
|
|
|
|
|
if (this.m_DistStyleGalleryStorage != null)
|
|
|
|
|
this.m_OpenFileDialog.InitialDirectory = this.m_DistStyleGalleryStorage.DefaultStylePath;
|
|
|
|
|
if (this.m_OpenFileDialog.ShowDialog())
|
|
|
|
|
{
|
|
|
|
|
return this.m_OpenFileDialog.FileName;
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
private void AddFile(string filename)
|
|
|
|
|
{
|
|
|
|
|
if (!File.Exists(filename))
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
bool flag = false;
|
|
|
|
|
if (this.m_LocalRootNode != null && this.m_LocalRootNode.Nodes != null && this.m_LocalRootNode.Nodes.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
foreach (TreeListNode treeListNode in this.m_LocalRootNode.Nodes)
|
|
|
|
|
{
|
|
|
|
|
if (treeListNode.Tag.ToString() == filename)
|
|
|
|
|
{
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!flag)
|
|
|
|
|
{
|
|
|
|
|
FileInfo fileInfo = new FileInfo(filename);
|
|
|
|
|
TreeListNode treeListNode2 = this.tlstGalleryTree.AppendNode(new object[]
|
|
|
|
|
{
|
|
|
|
|
fileInfo.Name
|
|
|
|
|
}, this.m_LocalRootNode);
|
|
|
|
|
treeListNode2.Tag = fileInfo.FullName;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public bool Save()
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
public void DiscardModify()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
public bool CanLeave()
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
public void RefreshData()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
public void SimpleCallBack(CallBack<string> param)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
public void Initialize()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
private void btnOK_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (this.tlstGalleryTree.FocusedNode != null && this.tlstGalleryTree.FocusedNode.Tag != null)
|
|
|
|
|
{
|
|
|
|
|
base.DialogResult = DialogResult.OK;
|
|
|
|
|
this.UpdateTextName = this.tlstGalleryTree.FocusedNode.Tag.ToString();
|
|
|
|
|
base.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void btnCancel_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.DialogResult = DialogResult.Cancel;
|
|
|
|
|
base.Close();
|
|
|
|
|
}
|
|
|
|
|
private void btnAddStyleFile_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
string text = this.OpenServerStyleFile();
|
|
|
|
|
if (text != "")
|
|
|
|
|
{
|
|
|
|
|
this.AddFile(text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void btnDelete_Click(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string str = null;
|
|
|
|
|
TreeListNodes treeListNode = this.tlstGalleryTree.Nodes;
|
|
|
|
|
if (tlstGalleryTree.FocusedNode.Tag == null)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.Show("数据库图库不能删除!!!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
str = tlstGalleryTree.FocusedNode.Tag.ToString();
|
|
|
|
|
|
|
|
|
|
if (this.m_LocalRootNode != null && this.m_LocalRootNode.Nodes.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
TreeListNodes localtreeListNode = this.m_LocalRootNode.Nodes;//删除本地图库下的节点
|
|
|
|
|
foreach (TreeListNode item in localtreeListNode)
|
|
|
|
|
{
|
|
|
|
|
if (str != null && item.Tag != null && item.Tag.ToString() == str)
|
|
|
|
|
{
|
|
|
|
|
this.m_LocalRootNode.Nodes.Remove(item);
|
|
|
|
|
MessageHelper.ShowTips("删除成功!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (TreeListNode item in treeListNode)//删除数据库图库,本地图库节点
|
|
|
|
|
{
|
|
|
|
|
if (str != null && item.Tag != null && item.Tag.ToString() == str)
|
|
|
|
|
{
|
|
|
|
|
this.tlstGalleryTree.Nodes.Remove(item);
|
|
|
|
|
MessageHelper.ShowTips("删除成功!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
MessageHelper.ShowError("删除失败!");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private void tlstGalleryTree_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
TreeListHitInfo treeListHitInfo = this.tlstGalleryTree.CalcHitInfo(System.Windows.Forms.Control.MousePosition);
|
|
|
|
|
if (treeListHitInfo != null)
|
|
|
|
|
{
|
|
|
|
|
TreeListNode treeListNode = treeListHitInfo.Node;
|
|
|
|
|
if (treeListNode == null)
|
|
|
|
|
{
|
|
|
|
|
treeListNode = this.tlstGalleryTree.FocusedNode;
|
|
|
|
|
}
|
|
|
|
|
if (treeListNode != null && treeListNode != this.m_LocalRootNode && treeListNode != this.m_DBRootNode)
|
|
|
|
|
{
|
|
|
|
|
this.selectedPath = treeListNode.Tag;
|
|
|
|
|
this.btnOK_Click(null, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//RdbUtil.AddException(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool IUIPlugIn.Visible
|
|
|
|
|
{
|
|
|
|
|
get;
|
|
|
|
|
set;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|