/// <summary> /// Moves the given layer to the new position. /// </summary> /// <param name="layer">Layer that gets moved.</param> /// <param name="newPosition">Position the layer gets moved to.</param> public void MoveLayer(ILayer layer, int newPosition) { IFeatureLayer mLayer = layer as IFeatureLayer; if (mLayer == null) { return; } int index = _layers.FindIndex(f => ReferenceEquals(f.Layer, mLayer)); if (index < 0 || index == newPosition) { return; } LayerSelection old = _layers[index]; _layers.RemoveAt(index); if (_layers.Count <= newPosition) // after the list { _layers.Add(old); } else if (newPosition < 0) // before the list { _layers.Insert(0, old); } else { _layers.Insert(newPosition, old); // somewhere inside } ChangeDataSource(); }
/// <summary> /// Moves the given layer to the new position. /// </summary> /// <param name="layer">Layer that gets moved.</param> /// <param name="newPosition">Position the layer gets moved to.</param> public void MoveLayer(ILayer layer, int newPosition) { IFeatureLayer mLayer = layer as IFeatureLayer; if (mLayer == null) { return; } int index = _layers.FindIndex(f => object.ReferenceEquals(f.Layer, mLayer)); if (index < 0 || index == newPosition) { return; } LayerSelection old = _layers[index]; _layers.RemoveAt(index); if (_layers.Count <= newPosition) //hinter der Liste { _layers.Add(old); } else if (newPosition < 0) //vor der liste { _layers.Insert(0, old); } else { _layers.Insert(newPosition, old); //irgendwo innerhalb } ChangeDataSource(); }
/// <summary> /// Adds the given layer to the list. /// </summary> /// <param name="layer">Layer, that should be added.</param> public void AddLayer(ILayer layer) { IFeatureLayer mLayer = layer as IFeatureLayer; if (mLayer != null) { mLayer.SelectionChanged += SelectionChanged; LayerSelection layerSelection = _layers.FirstOrDefault(f => object.ReferenceEquals(f.Layer, mLayer)); if (layerSelection != null) _layers.Remove(layerSelection); else layerSelection = new LayerSelection(mLayer); _layers.Insert(0, layerSelection); ChangeDataSource(); } }
/// <summary> /// Adds the given layer to the list. /// </summary> /// <param name="layer">Layer, that should be added.</param> public void AddLayer(ILayer layer) { if (layer is IFeatureLayer mLayer) { mLayer.SelectionChanged += SelectionChanged; LayerSelection layerSelection = _layers.FirstOrDefault(f => ReferenceEquals(f.Layer, mLayer)); if (layerSelection != null) { _layers.Remove(layerSelection); } else { layerSelection = new LayerSelection(mLayer); } _layers.Insert(0, layerSelection); ChangeDataSource(); } }