Ejemplo n.º 1
0
 internal void OnChecked(object sender, RoutedEventArgs e)
 {
     if (sender is RadioButton)
     {
         RadioButton rb = sender as RadioButton;
         if ((bool)rb.IsChecked)
         {
             if (rb.Tag is VectorMapDoc)
             {
                 this.ActiveMapDoc = rb.Tag as VectorMapDoc;
             }
             else if (rb.Tag is VectorLayer)
             {
                 this.ActiveLayerObj = rb.Tag as VectorLayer;
             }
         }
     }
 }
 private void layerList_DropDownOpened(object sender, EventArgs e)
 {
     if (m_mapDocDataViewer != null && m_mapDocDataViewer.IMSCatalog.ActiveMapDoc == null)
     {
         MessageBox.Show("请激活一个文档图层!", "提示", MessageBoxButton.OK);
         return;
     }
     if (m_mapDocDataViewer != null &&
         (!m_mapDocDataViewer.IMSCatalog.ActiveMapDoc.Equals(activeMapDoc) || layerList.Items.Count <= 0))
     {
         activeMapDoc = m_mapDocDataViewer.IMSCatalog.ActiveMapDoc;
         if (activeMapDoc.LoadMapResult == null || activeMapDoc.LoadMapResult.LayerAccessInfo.LayerAccessInfo.Length == 0)
         {
             return;
         }
         int layerNum = activeMapDoc.LoadMapResult.LayerCount;
         for (int i = 0; i < layerNum; i++)
         {
             layerList.Items.Add(activeMapDoc.GetLayerInfo(i).LayerDataName);//new FontFamily(activeMapDoc.GetLayerInfo(i).LayerDataName));
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 查询完毕回调
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SelectCallback(object sender, UploadStringCompletedEventArgs e)
        {
            //if (activeMapDoc != null && !activeMapDoc.Equals(m_catalog.ActiveMapDoc))
            //{//不是同一个图层,清除原来的结果
            //    tabControl1.Items.Clear();
            //}
            dataPager1.DataContext = null;
            tabControl1.Items.Clear();
            pageSize     = m_catalog.ActiveMapDoc.GetPageSize();
            activeMapDoc = m_catalog.ActiveMapDoc;
            CMapSelectAndGetAtt selRlt = m_catalog.ActiveMapDoc.OnSelect(e);

            _lastSelRlt = selRlt;
            TabItem  item;
            string   name;
            DataGrid grid     = null;
            int      maxCount = 0;

            for (int i = 0; i < selRlt.Count[0].Length; i++)
            {
                if (selRlt.Count[0][i] > 0 && selRlt.AttDS[0].attTables != null && selRlt.AttDS[0].attTables[i].Rows != null)
                {
                    name = activeMapDoc.GetLayerInfo(i).LayerDataName;
                    if (this.FindName(name) == null)
                    {
                        item = new TabItem()
                        {
                            Header = name,
                            Name   = name
                        };
                        grid = new DataGrid()
                        {
                            Name   = "datagrid" + name + "_" + i,
                            Height = 221,
                            Width  = 493,
                            AutoGenerateColumns = false,
                            IsReadOnly          = true,
                            Tag = new TmpInfo()
                            {
                                LayerIndex = i
                            }
                        };
                        grid.MouseLeftButtonUp += new MouseButtonEventHandler(DataGrid_MouseLeftButtonUp);
                        grid.LoadingRow        += new EventHandler <DataGridRowEventArgs>(DataGrid_LoadingRow);
                        item.Content            = grid;
                        if (ContextMenuService.GetContextMenu(grid) == null)
                        {
                            ContextMenu contextMenu = GetContexMenu(i);
                            ContextMenuService.SetContextMenu(grid, contextMenu);
                        }
                        tabControl1.Items.Add(item);
                    }
                    else
                    {
                        item = this.FindName(name) as TabItem;
                        grid = item.Content as DataGrid;
                        grid.Columns.Clear();
                        grid.ItemsSource = null;
                    }
                    List <string> addColumnlHeadArr = new List <string>();
                    addColumnlHeadArr.Add("FID");
                    string[][] arr = new string[/*selRlt.Count[0][i]*/ selRlt.AttDS[0].attTables[i].Rows.Length + 1][];
                    arr[0] = selRlt.AttDS[0].attTables[i].Columns.FldName;

                    List <string[]> addColumnlContentArr = new List <string[]>();
                    string[]        fidArr = new string[selRlt.AttDS[0].attTables[i].Rows.Length];
                    for (int j = 0; j < selRlt.AttDS[0].attTables[i].Rows.Length; j++)
                    {
                        fidArr[j]  = selRlt.AttDS[0].attTables[i].Rows[j].FID.ToString();
                        arr[j + 1] = selRlt.AttDS[0].attTables[i].Rows[j].Values;
                    }
                    addColumnlContentArr.Add(fidArr);
                    if (maxCount < selRlt.Count[0][i])
                    {
                        maxCount = selRlt.Count[0][i];
                    }
                    BindClass bingclass = new BindClass();
                    dataPager1.DataContext = new PagedCollectionView(bingclass.ColumnDisplay(grid, arr, addColumnlHeadArr, addColumnlContentArr));
                    item.IsSelected        = true;
                }
            }
            if (maxCount > 0)
            {
                dataPager1.PageSize          = (int)Math.Ceiling(Convert.ToDouble(pageSize * pageSize) / maxCount);
                dataPager1.PageIndexChanged += new EventHandler <EventArgs>(dataPager1_PageIndexChanged);
            }
            if (tabControl1.Items.Count <= 0) //&& grid != null && grid.ItemsSource == null)
            {
                m_graphicsLayer.MapContainer.SetErrorText("矢量文档查询结果为空,请检查图层是否设置为可查询状态或者输入条件是否正确后重试!");
            }
            //MessageBox.Show("没有查询到结果,请更换条件后重试!", "提示", MessageBoxButton.OK);
            else
            {
                this.Show();
            }
        }
        private void OnTick(object sender = null, EventArgs e = null)
        {
            if (sender != null)
            {
                (sender as DispatcherTimer).Stop();
            }
            //m_flg = false;
            if (m_layerObj is VectorLayerBase && dictionary.ContainsKey((m_layerObj as VectorLayerBase).ClientUID) &&
                dictionary[(m_layerObj as VectorLayerBase).ClientUID].IsEnabled)
            {
                dictionary[(m_layerObj as VectorLayerBase).ClientUID].Stop();
            }
            if (m_layerObj != null) //&& m_layerTreeNodeType == LayerTreeNodeType.ChildLayer)
            {
                //progressBar. Show( );
                if (m_layerType == LayerType.VectorMapDoc)
                {
                    VectorMapDoc vectorMapDoc = m_layerObj as VectorMapDoc;
                    if (mapDocStatusArrOld == null || mapDocStatusArrOld.Length < vectorMapDoc.LoadMapResult.MapLayerInfo.Length)
                    {
                        mapDocStatusArrOld = new EnumLayerStatus[vectorMapDoc.LoadMapResult.MapLayerInfo.Length];
                        for (int i = 0; i < vectorMapDoc.LoadMapResult.MapLayerInfo.Length; i++)
                        {
                            mapDocStatusArrOld[i] = EnumLayerStatus.Visiable;
                        }
                    }
                    //保存发送之前的状态
                    for (int i = 0; i < vectorMapDoc.LoadMapResult.MapLayerInfo.Length; i++)
                    {
                        if ((mapDocStatusArrOld[i] == EnumLayerStatus.Invisiable && vectorMapDoc.LoadMapResult.MapLayerInfo[i].LayerStatus == EnumLayerStatus.Visiable) ||
                            (mapDocStatusArrOld[i] != EnumLayerStatus.Invisiable && vectorMapDoc.LoadMapResult.MapLayerInfo[i].LayerStatus == EnumLayerStatus.Invisiable))
                        {
                            m_isRefresh = true;
                        }
                        mapDocStatusArrOld[i] = vectorMapDoc.LoadMapResult.MapLayerInfo[i].LayerStatus;
                    }

                    vectorMapDoc.UpdateAllLayerInfo(new UploadStringCompletedEventHandler(OnTick_Callback));
                }
                else if (m_layerType == LayerType.VectorLayer)
                {
                    VectorLayer vectorLayer = m_layerObj as VectorLayer;
                    if (layerStatusArrOld == null || layerStatusArrOld.Length < vectorLayer.LayerStatus.Length * vectorLayer.LayerStatus[0].Count)
                    {
                        layerStatusArrOld = new EnumLayerStatus[vectorLayer.LayerStatus.Length, vectorLayer.LayerStatus[0].Count];
                        for (int i = 0; i < vectorLayer.LayerStatus.Length; i++)
                        {
                            for (int j = 0; j < vectorLayer.LayerStatus[0].Count; j++)
                            {
                                layerStatusArrOld[i, j] = EnumLayerStatus.Visiable;
                            }
                        }
                    }
                    //保存发送之前的状态
                    for (int i = 0; i < vectorLayer.LayerStatus.Length; i++)
                    {
                        for (int j = 0; j < vectorLayer.LayerStatus[0].Count; j++)
                        {
                            if ((layerStatusArrOld[i, j] == EnumLayerStatus.Invisiable && vectorLayer.LayerStatus[i][j] == EnumLayerStatus.Visiable) ||
                                layerStatusArrOld[i, j] != EnumLayerStatus.Invisiable && vectorLayer.LayerStatus[i][j] == EnumLayerStatus.Invisiable)
                            {
                                m_isRefresh = true;
                            }
                            layerStatusArrOld[i, j] = vectorLayer.LayerStatus[i][j];
                        }
                    }

                    CSetEnumLayerStatus setLayerStatus;
                    for (int i = 0; i < vectorLayer.LayerStatus.Length; i++)
                    {
                        setLayerStatus             = new CSetEnumLayerStatus();
                        setLayerStatus.GdbIndex    = i;
                        setLayerStatus.LayerStatus = new EnumLayerStatus[vectorLayer.LayerStatus[i].Count];
                        vectorLayer.LayerStatus[i].CopyTo(setLayerStatus.LayerStatus);
                        if (i == vectorLayer.LayerStatus.Length - 1)
                        {
                            vectorLayer.SetEnumLayerStatus(setLayerStatus, new UploadStringCompletedEventHandler(OnTick_Callback));
                        }
                        else
                        {
                            vectorLayer.SetEnumLayerStatus(setLayerStatus, null);
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private void VectorMapDoc_LayerOpenSuccEvent(IVector vLayer)
        {
            if (vLayer is VectorMapDoc)
            {
                VectorMapDoc vectorMapDoc = vLayer as VectorMapDoc;

                vectorMapDoc.LayerOpenSuccEvent -= new LayerOpenSuccEventHandler(VectorMapDoc_LayerOpenSuccEvent);
                StackPanel panel = new StackPanel();
                panel.Orientation = Orientation.Horizontal;
                RadioButton vRadioButton = new RadioButton()
                {
                    GroupName = "VectorMapDocRadioButton",
                    Tag       = vectorMapDoc
                };
                if (this.ActiveMapDoc != null)
                {
                    if (this.ActiveMapDoc.Equals(vLayer))
                    {
                        vRadioButton.IsChecked = true;
                    }
                }
                vRadioButton.Checked += new RoutedEventHandler(OnChecked);
                panel.Children.Add(vRadioButton);
                Image img = new Image();
                panel.Children.Add(img);
                panel.Children.Add(new TextBlock()
                {
                    Text   = vectorMapDoc.MapDocName,
                    Margin = new Thickness(2)
                });
                TreeViewItem item = new TreeViewItem()
                {
                    Header = panel
                };
                mapDocItem.Items.Add(item);
                item.Tag = new LayerStateManager(this, vectorMapDoc, item, img, LayerTreeNodeType.ParentLayer);
                item.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                ContextMenuService.SetContextMenu(item, GetContextMenu2(item));

                TreeViewItem layerItem;
                RadioButton  radioButton;
                int          index = m_mapContainer.VectorLayerList.IndexOf(vectorMapDoc);
                for (int j = 0; j < vectorMapDoc.LoadMapResult.LayerCount; j++)
                {
                    panel             = new StackPanel();
                    panel.Orientation = Orientation.Horizontal;
                    radioButton       = new RadioButton()
                    {
                        IsChecked = false,
                        GroupName = "ActiveVectorMapDocRadioButton" + index
                    };
                    panel.Children.Add(radioButton);
                    img     = new Image();
                    img.Tag = radioButton;
                    panel.Children.Add(img);
                    panel.Children.Add(new TextBlock()
                    {
                        Text   = vectorMapDoc.GetLayerInfo(j).LayerDataName,
                        Margin = new Thickness(2)
                    });
                    layerItem = new TreeViewItem()
                    {
                        Header = panel
                    };
                    item.Items.Add(layerItem);
                    layerItem.Tag = new LayerStateManager(this, vectorMapDoc, layerItem, img,
                                                          LayerTreeNodeType.ChildLayer, GetLayerStatus(vectorMapDoc.GetMapLayerInfo(j).LayerStatus))
                    {
                        LayerRadioBtn = vRadioButton
                    };
                    layerItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    ContextMenuService.SetContextMenu(layerItem, GetContextMenu1(layerItem));
                    radioButton.Tag = layerItem.Tag;
                }
            }
        }
Ejemplo n.º 6
0
        private void InitCatalogTree()
        {
            this.Items.Clear();
            if (m_mapContainer != null)
            {
                if (OnlyVecFlag == 1)
                {
                    StackPanel panel = new StackPanel();

                    TreeViewItem item = new TreeViewItem()
                    {
                        Header = panel
                    };

                    //panel.Orientation = Orientation.Horizontal;
                    //panel.Children.Add(new Image()
                    //{
                    //    Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    //});
                    //panel.Children.Add(new TextBlock()
                    //{
                    //    Text = "瓦片集",
                    //    Margin = new Thickness(2)
                    //});

                    //this.Items.Add(item);
                    //item.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    //ContextMenuService.SetContextMenu(item, GetContextMenu3(item));


                    //for (int i = 0; i < m_mapContainer.TileLayerList.Length; i++)
                    //{
                    //    panel = new StackPanel();
                    //    panel.Orientation = Orientation.Horizontal;
                    //    Image img = new Image();
                    //    panel.Children.Add(img);
                    //    panel.Children.Add(new TextBlock()
                    //    {
                    //        Text = (m_mapContainer.TileLayerList.GetItemByIndex(i) as TileLayer).HdfName,
                    //        Margin = new Thickness(2)
                    //    });
                    //    item.Items.Add(new TreeViewItem() { Header = panel });
                    //    item.Tag = new LayerStateManager(this, m_mapContainer.TileLayerList.GetItemByIndex(i) as IMap, item, img, LayerTreeNodeType.ParentLayer);
                    //    ContextMenuService.SetContextMenu(item, GetContextMenu4(item));
                    //}

                    //panel = new StackPanel();
                    panel.Orientation = Orientation.Horizontal;
                    panel.Children.Add(new Image()
                    {
                        Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    });
                    panel.Children.Add(new TextBlock()
                    {
                        Text   = "矢量图(文档)",
                        Margin = new Thickness(2)
                    });
                    mapDocItem = new TreeViewItem()
                    {
                        Header = panel
                    };

                    this.Items.Add(mapDocItem);
                    mapDocItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    ContextMenuService.SetContextMenu(mapDocItem, GetContextMenu3(mapDocItem));


                    //panel = new StackPanel();
                    //panel.Orientation = Orientation.Horizontal;
                    //panel.Children.Add(new Image()
                    //{
                    //    Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    //});
                    //panel.Children.Add(new TextBlock()
                    //{
                    //    Text = "矢量图(图层)",
                    //    Margin = new Thickness(2)
                    //});
                    //vLayerItem = new TreeViewItem() { Header = panel };
                    //this.Items.Add(vLayerItem);
                    //vLayerItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    //ContextMenuService.SetContextMenu(vLayerItem, GetContextMenu3(vLayerItem));


                    VectorMapDoc vectorMapDoc;
                    VectorLayer  vectorLayer;
                    for (int i = 0; i < m_mapContainer.VectorLayerList.Length; i++)
                    {
                        if (m_mapContainer.VectorLayerList.GetItemByIndex(i) is VectorMapDoc)
                        {
                            vectorMapDoc = m_mapContainer.VectorLayerList.GetItemByIndex(i) as VectorMapDoc;
                            if (vectorMapDoc.LoadMapResult != null && vectorMapDoc.LoadMapResult.LayerCount > 0)
                            {
                                VectorMapDoc_LayerOpenSuccEvent(vectorMapDoc);
                            }
                            else
                            {
                                vectorMapDoc.LayerOpenSuccEvent += new LayerOpenSuccEventHandler(VectorMapDoc_LayerOpenSuccEvent);
                            }
                            if (this.ActiveMapDoc == null)
                            {
                                this.ActiveMapDoc = vectorMapDoc;
                            }
                        }
                        else
                        {
                            vectorLayer = m_mapContainer.VectorLayerList.GetItemByIndex(i) as VectorLayer;

                            panel             = new StackPanel();
                            panel.Orientation = Orientation.Horizontal;
                            RadioButton vRadioButton = new RadioButton()
                            {
                                GroupName = "VectorLayerRadioButton",
                                Tag       = vectorLayer
                            };
                            if (this.ActiveLayerObj == null)
                            {
                                this.ActiveLayerObj    = vectorLayer;
                                vRadioButton.IsChecked = true;
                            }
                            vRadioButton.Checked += new RoutedEventHandler(OnChecked);
                            panel.Children.Add(vRadioButton);
                            Image img = new Image();
                            panel.Children.Add(img);

                            int s = vectorLayer.ServerAddress.IndexOf("//");
                            s = s < 0 ? 0 : s;
                            string str = vectorLayer.ServerAddress.Substring(s + 2);
                            int    e   = str.IndexOf("/");
                            e = e < 0 ? str.Length - 1 : e;
                            panel.Children.Add(new TextBlock()
                            {
                                Text   = "位于:" + str.Substring(0, e),//vectorLayer.ServerAddress,
                                Margin = new Thickness(2)
                            });
                            TreeViewItem vlItem = new TreeViewItem()
                            {
                                Header = panel
                            };
                            if (vLayerItem == null)
                            {
                                vLayerItem = new TreeViewItem()
                                {
                                    Header = panel
                                };
                            }
                            vLayerItem.Items.Add(vlItem);
                            vlItem.Tag = new LayerStateManager(this, vectorLayer, vlItem, img, LayerTreeNodeType.ParentLayer);

                            vlItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                            ContextMenuService.SetContextMenu(vlItem, GetContextMenu2(vlItem));


                            TreeViewItem layerItem;
                            RadioButton  radioButton;
                            for (int j = 0; j < vectorLayer.LayerObj.LayerAccessInfo.Length; j++)
                            {
                                panel             = new StackPanel();
                                panel.Orientation = Orientation.Horizontal;
                                img = new Image();
                                panel.Children.Add(img);
                                panel.Children.Add(new TextBlock()
                                {
                                    Text   = vectorLayer.LayerObj.LayerAccessInfo[j].GdbInfo.GDBName,
                                    Margin = new Thickness(2)
                                });
                                layerItem = new TreeViewItem()
                                {
                                    Header = panel
                                };
                                vlItem.Items.Add(layerItem);
                                layerItem.Tag = new LayerStateManager(this, vectorLayer, layerItem, img, LayerTreeNodeType.GDBLayer);
                                layerItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                                ContextMenuService.SetContextMenu(layerItem, GetContextMenu2(layerItem));


                                for (int k = 0; k < vectorLayer.LayerObj.LayerAccessInfo[j].LayerInfoList.Length; k++)
                                {
                                    panel             = new StackPanel();
                                    panel.Orientation = Orientation.Horizontal;
                                    radioButton       = new RadioButton()
                                    {
                                        IsChecked = false,
                                        GroupName = "ActiveVectorLayerRadioButton" + i
                                    };
                                    panel.Children.Add(radioButton);
                                    img     = new Image();
                                    img.Tag = radioButton;
                                    panel.Children.Add(img);
                                    panel.Children.Add(new TextBlock()
                                    {
                                        Text   = vectorLayer.LayerObj.LayerAccessInfo[j].LayerInfoList[k].LayerDataName,
                                        Margin = new Thickness(2)
                                    });
                                    item = new TreeViewItem()
                                    {
                                        Header = panel
                                    };
                                    layerItem.Items.Add(item);
                                    item.Tag = new LayerStateManager(this, vectorLayer, item, img)
                                    {
                                        LayerRadioBtn = vRadioButton
                                    };
                                    radioButton.Tag            = item.Tag;
                                    item.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                                    ContextMenuService.SetContextMenu(item, GetContextMenu1(item));
                                }
                            }
                        }
                    }
                }
                else
                {
                    StackPanel panel = new StackPanel();
                    panel.Orientation = Orientation.Horizontal;
                    panel.Children.Add(new Image()
                    {
                        Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    });
                    panel.Children.Add(new TextBlock()
                    {
                        Text   = "瓦片集",
                        Margin = new Thickness(2)
                    });
                    TreeViewItem item = new TreeViewItem()
                    {
                        Header = panel
                    };
                    this.Items.Add(item);
                    item.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    ContextMenuService.SetContextMenu(item, GetContextMenu3(item));


                    for (int i = 0; i < m_mapContainer.TileLayerList.Length; i++)
                    {
                        panel             = new StackPanel();
                        panel.Orientation = Orientation.Horizontal;
                        Image img = new Image();
                        panel.Children.Add(img);
                        panel.Children.Add(new TextBlock()
                        {
                            Text   = (m_mapContainer.TileLayerList.GetItemByIndex(i) as TileLayer).HdfName,
                            Margin = new Thickness(2)
                        });
                        item.Items.Add(new TreeViewItem()
                        {
                            Header = panel
                        });
                        item.Tag = new LayerStateManager(this, m_mapContainer.TileLayerList.GetItemByIndex(i) as IMap, item, img, LayerTreeNodeType.ParentLayer);
                        ContextMenuService.SetContextMenu(item, GetContextMenu4(item));
                    }

                    panel             = new StackPanel();
                    panel.Orientation = Orientation.Horizontal;
                    panel.Children.Add(new Image()
                    {
                        Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    });
                    panel.Children.Add(new TextBlock()
                    {
                        Text   = "矢量图(文档)",
                        Margin = new Thickness(2)
                    });
                    mapDocItem = new TreeViewItem()
                    {
                        Header = panel
                    };
                    this.Items.Add(mapDocItem);
                    mapDocItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    ContextMenuService.SetContextMenu(mapDocItem, GetContextMenu3(mapDocItem));


                    panel             = new StackPanel();
                    panel.Orientation = Orientation.Horizontal;
                    panel.Children.Add(new Image()
                    {
                        Source = new BitmapImage(new Uri("/images/tree/data.PNG", UriKind.Relative))
                    });
                    panel.Children.Add(new TextBlock()
                    {
                        Text   = "矢量图(图层)",
                        Margin = new Thickness(2)
                    });
                    vLayerItem = new TreeViewItem()
                    {
                        Header = panel
                    };
                    this.Items.Add(vLayerItem);
                    vLayerItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                    ContextMenuService.SetContextMenu(vLayerItem, GetContextMenu3(vLayerItem));


                    VectorMapDoc vectorMapDoc;
                    VectorLayer  vectorLayer;
                    for (int i = 0; i < m_mapContainer.VectorLayerList.Length; i++)
                    {
                        if (m_mapContainer.VectorLayerList.GetItemByIndex(i) is VectorMapDoc)
                        {
                            vectorMapDoc = m_mapContainer.VectorLayerList.GetItemByIndex(i) as VectorMapDoc;
                            if (vectorMapDoc.LoadMapResult != null && vectorMapDoc.LoadMapResult.LayerCount > 0)
                            {
                                VectorMapDoc_LayerOpenSuccEvent(vectorMapDoc);
                            }
                            else
                            {
                                vectorMapDoc.LayerOpenSuccEvent += new LayerOpenSuccEventHandler(VectorMapDoc_LayerOpenSuccEvent);
                            }
                            if (this.ActiveMapDoc == null)
                            {
                                this.ActiveMapDoc = vectorMapDoc;
                            }
                        }
                        else
                        {
                            vectorLayer = m_mapContainer.VectorLayerList.GetItemByIndex(i) as VectorLayer;

                            panel             = new StackPanel();
                            panel.Orientation = Orientation.Horizontal;
                            RadioButton vRadioButton = new RadioButton()
                            {
                                GroupName = "VectorLayerRadioButton",
                                Tag       = vectorLayer
                            };
                            if (this.ActiveLayerObj == null)
                            {
                                this.ActiveLayerObj    = vectorLayer;
                                vRadioButton.IsChecked = true;
                            }
                            vRadioButton.Checked += new RoutedEventHandler(OnChecked);
                            panel.Children.Add(vRadioButton);
                            Image img = new Image();
                            panel.Children.Add(img);

                            int s = vectorLayer.ServerAddress.IndexOf("//");
                            s = s < 0 ? 0 : s;
                            string str = vectorLayer.ServerAddress.Substring(s + 2);
                            int    e   = str.IndexOf("/");
                            e = e < 0 ? str.Length - 1 : e;
                            panel.Children.Add(new TextBlock()
                            {
                                Text   = "位于:" + str.Substring(0, e),//vectorLayer.ServerAddress,
                                Margin = new Thickness(2)
                            });
                            TreeViewItem vlItem = new TreeViewItem()
                            {
                                Header = panel
                            };
                            vLayerItem.Items.Add(vlItem);
                            vlItem.Tag = new LayerStateManager(this, vectorLayer, vlItem, img, LayerTreeNodeType.ParentLayer);
                            vlItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                            ContextMenuService.SetContextMenu(vlItem, GetContextMenu2(vlItem));


                            TreeViewItem layerItem;
                            RadioButton  radioButton;
                            for (int j = 0; j < vectorLayer.LayerObj.LayerAccessInfo.Length; j++)
                            {
                                panel             = new StackPanel();
                                panel.Orientation = Orientation.Horizontal;
                                img = new Image();
                                panel.Children.Add(img);
                                panel.Children.Add(new TextBlock()
                                {
                                    Text   = vectorLayer.LayerObj.LayerAccessInfo[j].GdbInfo.GDBName,
                                    Margin = new Thickness(2)
                                });
                                layerItem = new TreeViewItem()
                                {
                                    Header = panel
                                };
                                vlItem.Items.Add(layerItem);
                                layerItem.Tag = new LayerStateManager(this, vectorLayer, layerItem, img, LayerTreeNodeType.GDBLayer);
                                layerItem.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                                ContextMenuService.SetContextMenu(layerItem, GetContextMenu2(layerItem));


                                for (int k = 0; k < vectorLayer.LayerObj.LayerAccessInfo[j].LayerInfoList.Length; k++)
                                {
                                    panel             = new StackPanel();
                                    panel.Orientation = Orientation.Horizontal;
                                    radioButton       = new RadioButton()
                                    {
                                        IsChecked = false,
                                        GroupName = "ActiveVectorLayerRadioButton" + i
                                    };
                                    panel.Children.Add(radioButton);
                                    img     = new Image();
                                    img.Tag = radioButton;
                                    panel.Children.Add(img);
                                    panel.Children.Add(new TextBlock()
                                    {
                                        Text   = vectorLayer.LayerObj.LayerAccessInfo[j].LayerInfoList[k].LayerDataName,
                                        Margin = new Thickness(2)
                                    });
                                    item = new TreeViewItem()
                                    {
                                        Header = panel
                                    };
                                    layerItem.Items.Add(item);
                                    item.Tag = new LayerStateManager(this, vectorLayer, item, img)
                                    {
                                        LayerRadioBtn = vRadioButton
                                    };
                                    radioButton.Tag            = item.Tag;
                                    item.MouseRightButtonDown += new MouseButtonEventHandler(OnMouseRightButtonDown);
                                    ContextMenuService.SetContextMenu(item, GetContextMenu1(item));
                                }
                            }
                        }
                    }
                }
            }
        }