//调整二级及以上节点顺序 public void AdjustOrder(int insertIndex, ILayerItem item, ILayerItem parentItem) { if (parentItem == null) { return; } (parentItem as ILayerItemGroup).Items.Remove(item); (parentItem as ILayerItemGroup).Items.Insert(insertIndex, item); foreach (IElement ele in _viewer.LayoutHost.LayoutRuntime.Layout.Elements) { if (ele is ILayerObjectContainer) { ILayerObjectContainer container = ele as ILayerObjectContainer; //ILayerObjectBase insertObj = item.Tag as ILayerObjectBase; foreach (ILayerObjectBase obj in container.LayerObjects) { if (obj is ILayerObject) { ILayerObject layerObj = obj as ILayerObject; if (layerObj.Tag.Equals(item.Tag)) { container.LayerObjects.Remove(layerObj); container.LayerObjects.Insert(insertIndex, layerObj); RefreshViewer(); return; } } if (obj is ILayerObjecGroup) { ILayerObjecGroup layerGrp = obj as ILayerObjecGroup; foreach (ILayerObjectBase it in layerGrp.Children) { if ((it as ILayerObject).Tag.Equals(item.Tag)) { layerGrp.Children.Remove(it); layerGrp.Children.Insert(insertIndex, it); RefreshViewer(); return; } } } } } if (ele.Equals(parentItem) && ele is IElementGroup) { IElementGroup group = ele as IElementGroup; group.Elements.Remove(item.Tag as IElement); group.Elements.Insert(insertIndex, item.Tag as IElement); RefreshViewer(); return; } } }
public LayerObjectItem(ILayerObject layerObject) { _layerObject = layerObject; if (_layerObject != null) { if (layerObject.Tag is CodeCell.AgileMap.Core.FeatureLayer) { _layerType = enumLayerTypes.BaseVector; } _name = (_layerObject.Text ?? string.Empty); } }
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()); } } }