private void LayersChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: foreach (ILayer layer in e.NewItems) { AddLayer(layer); } break; case NotifyCollectionChangedAction.Remove: foreach (ILayer layer in e.OldItems) { RemoveLayer(layer); } break; case NotifyCollectionChangedAction.Move: int oldIndex = e.OldStartingIndex; int newIndex = e.NewStartingIndex; if (oldIndex != -1 && newIndex != -1) { IProjectExplorerNodeViewModel entry = this.LayerNodes[oldIndex]; this.LayerNodes[oldIndex] = this.LayerNodes[newIndex]; this.LayerNodes[newIndex] = entry; } break; default: break; } }
public void ChangeCurrentProject(ProjectNodeViewModel projectEntry) { if (projectEntry == null) { return; } if (projectEntry == this.selectedNode) { return; } this.selectedNode = projectEntry; this.Session.CurrentProject.Value = projectEntry.Project; }
public static IProjectExplorerNodeViewModel GenerateLayer(IEventAggregator eventAggregator, IActionHandler handler, ILayer layer) { IProjectExplorerNodeViewModel entry = null; if (typeof(Layer).IsInstanceOfType(layer)) { entry = new LayerNodeViewModel(eventAggregator, handler, layer as Layer); } else if (typeof(LayerGroup).IsInstanceOfType(layer)) { entry = new LayerGroupViewModel(eventAggregator, handler, layer as LayerGroup); } return(entry); }
private void CurrentMapsChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: foreach (Map map in e.NewItems) { MapNodeViewModel node = new MapNodeViewModel(this.eventAggregator, actionHandler, map); this.ExplorerNodes.Add(node); } break; case NotifyCollectionChangedAction.Remove: IEnumerable <MapNodeViewModel> projectViewModels = this.ExplorerNodes.OfType <MapNodeViewModel>(); foreach (Map map in e.OldItems) { MapNodeViewModel toRemove = projectViewModels.FirstOrDefault(entry => entry.Map == map); this.ExplorerNodes.Remove(toRemove); } break; case NotifyCollectionChangedAction.Move: int oldIndex = e.OldStartingIndex; int newIndex = e.NewStartingIndex; if (oldIndex != -1 && newIndex != -1) { IProjectExplorerNodeViewModel entry = this.ExplorerNodes[oldIndex]; this.ExplorerNodes[oldIndex] = this.ExplorerNodes[newIndex]; this.ExplorerNodes[newIndex] = entry; } break; default: break; } }
public void AddLayer(ILayer layer) { IProjectExplorerNodeViewModel node = ProjectExplorerMethods.GenerateLayer(this.eventAggregator, this.actionHandler, layer); this.LayerNodes.Add(node); }