예제 #1
0
        private void CurrentProjectChanged(object sender, PropertyChangedEventArgs e)
        {
            this.CurrentProject.Value = GetNewValue(sender, e) as Project;

            IEnumerable <ProjectNodeViewModel> projectViewModels = this.ExplorerNodes.OfType <ProjectNodeViewModel>();
            ProjectNodeViewModel projectNodeViewModel            = projectViewModels.FirstOrDefault(entry => entry.Project == this.CurrentProject.Value);

            ChangeCurrentProject(projectNodeViewModel);
        }
예제 #2
0
 private void SelectedItemChanged(object item)
 {
     if (typeof(ProjectNodeViewModel).IsAssignableFrom(item.GetType()))
     {
         ProjectNodeViewModel projectViewModel = item as ProjectNodeViewModel;
         this.Session.CurrentProject.Value = projectViewModel.Project;
     }
     else if (typeof(MapNodeViewModel).IsAssignableFrom(item.GetType()))
     {
         MapNodeViewModel mapViewModel = item as MapNodeViewModel;
         this.Session.CurrentMap.Value = mapViewModel.Map;
     }
 }
예제 #3
0
 public void ChangeCurrentProject(ProjectNodeViewModel projectEntry)
 {
     if (projectEntry == null)
     {
         return;
     }
     if (projectEntry == this.selectedNode)
     {
         return;
     }
     this.selectedNode = projectEntry;
     this.Session.CurrentProject.Value = projectEntry.Project;
 }
예제 #4
0
        private void LoadProjectsAndMaps(ObservableCollection <Project> projects, ObservableCollection <Map> maps)
        {
            this.ExplorerNodes.Clear();

            foreach (Project project in projects)
            {
                ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, actionHandler, project);
                this.ExplorerNodes.Add(node);
            }
            foreach (Map map in maps)
            {
                MapNodeViewModel node = new MapNodeViewModel(this.eventAggregator, actionHandler, map);
                this.ExplorerNodes.Add(node);
            }
        }
예제 #5
0
        private void CurrentProjectsChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:
                foreach (Project project in e.NewItems)
                {
                    ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, actionHandler, project);
                    this.ExplorerNodes.Add(node);
                }
                break;

            case NotifyCollectionChangedAction.Remove:
                IEnumerable <ProjectNodeViewModel> projectViewModels = this.ExplorerNodes.OfType <ProjectNodeViewModel>();
                foreach (Project project in e.OldItems)
                {
                    ProjectNodeViewModel toRemove = projectViewModels.FirstOrDefault(entry => entry.Project == project);
                    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;
            }
        }
예제 #6
0
        public void AddProject(Project project)
        {
            ProjectNodeViewModel node = new ProjectNodeViewModel(this.eventAggregator, this.actionHandler, project);

            this.ExplorerNodes.Add(node);
        }