Newer
Older
GHFX_REFACTOR / FrmHongXianManage.cs
using DevComponents.DotNetBar;
using DXFLibrary;
using GeoScene.Globe;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Cyberpipe
{
    public partial class FrmHongXianManage : Office2007Form
    {
        GSOGlobeControl _globeControl1;
        MyTreeView _layerTree;
        public FrmHongXianManage(GSOGlobeControl globeControl1, MyTreeView layerTree)
        {
            InitializeComponent();
            ///////// 待实现
            _globeControl1 = globeControl1;
            _layerTree = layerTree;
        }


        private void FrmFrmHongXianManage_Load(object sender, EventArgs e)
        {
            reloadGrid();
        }

        private void reloadGrid()
        {
            string sql = "select LSSYS_ID,LSSYS_GEOTYPE,文件名称,导入时间 from 红线";
            DataTable dt = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sql).Tables[0];
            dataGridViewX1.DataSource = dt;
        }

        private void dataGridViewX1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            Debug.WriteLine("dataGridViewX1_CellContentClick");
            if (e.RowIndex < 0 || e.ColumnIndex < 0)
            {
                return;
            }

            string cell = dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            if (cell.Equals("删除"))
            {
                try
                {
                    string LSSYS_ID = dataGridViewX1.Rows[e.RowIndex].Cells["LSSYS_ID"].Value.ToString();
                    string fileName = dataGridViewX1.Rows[e.RowIndex].Cells["文件名称"].Value.ToString();
                    if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        // 删除数据库里的数据
                        string sql = "delete from 红线 where LSSYS_ID=" + LSSYS_ID;
                        OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql);
                        reloadGrid();
                        

                        // 删除左侧树节点 和 图层数据
                        // 获取 临时图层节点
                        TreeNode linShiTuCengNode = _layerTree.TopNode;
                        foreach (TreeNode t in linShiTuCengNode.Nodes) {
                            // 根据节点text 和 文件名 获得该节点
                            if (t.Text == fileName) {
                                Debug.WriteLine(t.Text);
                                if (!(t.Tag is GSOLayer)) return;
                                GSOLayer tempLayer = t.Tag as GSOLayer;
                                _globeControl1.Globe.Layers.Remove(tempLayer);
                                _globeControl1.Globe.Refresh();
                                t.Remove();
                                break;
                            }
                        }
                        //if (nodes[0] != null)
                        //{
                        //    nodes[0].Remove();
                        //}

                         MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information);

  
                    }
                }



                catch (Exception ex)
                {
                    MessageBox.Show("删除失败:" + ex, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }


        //递归查询,找到返回该节点
        private TreeNode FindNode(TreeNode node, string name)
        {
            //接受返回的节点
            TreeNode ret = null;
            //循环查找
            foreach (TreeNode temp in node.Nodes)
            {
                //是否有子节点
                if (temp.Nodes.Count != 0)
                {
                    //如果找到
                    if ((ret = FindNode(temp, name)) != null)
                    {
                        return ret;
                    }
                }
                //如果找到
                if (string.Equals(temp.Text, name))
                {
                    return temp;
                }
            }
            return ret;
        }
    }
}