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()); } } }