private ILayerItem GetGroupLayerItems(IElementGroup group)
        {
            ILayerItemGroup itemGroup = new LayerItemGroup(group.Name ?? string.Empty, group.Name ?? string.Empty);

            (itemGroup as LayerItemGroup).Tag = group;
            itemGroup.IsSelected = group.IsSelected;
            itemGroup.IsVisible  = group.Visible;
            foreach (IElement it in group.Elements)
            {
                if (it is IElementGroup)
                {
                    ILayerItem layer = GetGroupLayerItems(it as IElementGroup);
                    itemGroup.Items.Add(layer);
                }
                else
                {
                    LayerItemLayout item = new LayerItemLayout();
                    item.Name       = it.Name;
                    item.IsVisible  = it.Visible;
                    item.IsSelected = it.IsSelected;
                    item.Tag        = it;
                    if (it.Icon != null)
                    {
                        item.Image = it.Icon;
                    }
                    itemGroup.Items.Add(item);
                }
            }
            return(itemGroup);
        }
        private ILayerItem GetLayerItemLayout(ILayerObjectContainer layerObjContainer)
        {
            ILayerItemGroup g = new LayerItemGroup("数据层", "数据层");

            (g as LayerItemGroup).Tag = layerObjContainer;
            if (layerObjContainer.LayerObjects != null && layerObjContainer.LayerObjects.Count != 0)
            {
                GetLayerItemLayouts(g, layerObjContainer);
            }
            return(g);
        }
        private void GetItems(ICanvas canvas)
        {
            if (canvas == null || canvas.LayerContainer == null)
            {
                return;
            }
            foreach (GeoDo.RSS.Core.DrawEngine.ILayer layer in canvas.LayerContainer.Layers)
            {
                if (layer is IVectorHostLayer)
                {
                    IVectorHostLayer hostLayer = layer as IVectorHostLayer;
                    IMap             map       = hostLayer.Map as IMap;
                    if (map != null)
                    {
                        LayerItemGroup vectorGroup = new LayerItemGroup("矢量层", "矢量层");
                        vectorGroup.IsVisible = true;

                        /*
                         * 为了能够在层管理器中修改整个地图的参数将tag设置为map对象
                         */
                        //vectorGroup.Tag = layer;
                        vectorGroup.Tag = map;
                        if (map.LayerContainer.Layers != null && map.LayerContainer.Layers.Count() != 0)
                        {
                            foreach (CodeCell.AgileMap.Core.ILayer it in map.LayerContainer.Layers)
                            {
                                LayerItemCanvasViewer item = new LayerItemCanvasViewer(enumLayerTypes.BaseVector, null);
                                item.Name      = it.Name;
                                item.IsVisible = it.IsRendered;
                                item.Tag       = it;
                                vectorGroup.Items.Add(item);
                            }
                        }
                        this.Items.Add(vectorGroup);
                    }
                }
                else if (layer is IRenderLayer)
                {
                    LayerItemCanvasViewer item = new LayerItemCanvasViewer(enumLayerTypes.Raster, null);
                    item.Name       = layer.Name;
                    item.IsVisible  = (layer as IRenderLayer).Visible;
                    item.IsSelected = true;
                    item.Tag        = layer;
                    this.Items.Add(item);
                }
            }
        }
 private void GetLayerItemLayouts(ILayerItemGroup g, ILayerObjectBase[] objs)
 {
     foreach (ILayerObjectBase obj in objs)
     {
         if (obj is ILayerObject)
         {
             ILayerObject layerObj = obj as ILayerObject;
             ILayerItem   it       = new LayerObjectItem(layerObj);
             g.Items.Add(it);
         }
         else
         {
             ILayerItemGroup group = new LayerItemGroup(obj.Text ?? string.Empty, obj.Text ?? string.Empty);
             g.Items.Add(group);
             GetLayerItemLayouts(group, (obj as ILayerObjecGroup).Children.ToArray());
         }
     }
 }
 private void GetLayerItemLayouts(ILayerItemGroup g, ILayerObjectContainer layerObjContainer)
 {
     ILayerObjectBase[] layers = layerObjContainer.LayerObjects.ToArray();
     foreach (ILayerObjectBase obj in layers)
     {
         if (obj is ILayerObject)
         {
             ILayerObject layerObj = obj as ILayerObject;
             ILayerItem   it       = new LayerObjectItem(layerObj);
             g.Items.Add(it);
         }
         else
         {
             LayerItemGroup group = new LayerItemGroup(obj.Text ?? string.Empty, obj.Text ?? string.Empty);
             IDataFrame     df    = layerObjContainer as IDataFrame;
             if (df != null)
             {
                 IDataFrameDataProvider prd = df.Provider as IDataFrameDataProvider;
                 if (prd != null)
                 {
                     ICanvas canvas = prd.Canvas;
                     if (canvas != null)
                     {
                         GeoDo.RSS.Core.DrawEngine.ILayerContainer lc = canvas.LayerContainer as GeoDo.RSS.Core.DrawEngine.ILayerContainer;
                         if (lc != null)
                         {
                             IVectorHostLayer hostLayer = canvas.LayerContainer.VectorHost;
                             if (hostLayer != null)
                             {
                                 group.Tag = hostLayer.Map;
                             }
                         }
                     }
                 }
             }
             g.Items.Add(group);
             GetLayerItemLayouts(group, (obj as ILayerObjecGroup).Children.ToArray());
         }
     }
 }