예제 #1
0
        private void LoadWorkspace(CShell.Workspace workspace)
        {
            tree       = new TreeViewModel();
            CShellFile = new CShellFileViewModel(workspace.CShellFile);
            tree.Children.Add(cShellFile);

            //add the assembly references
            var refs = new AssemblyReferencesViewModel(workspace.Assemblies);

            tree.Children.Add(refs);

            //add the file tree
            //var files = new FileReferencesViewModel(workspace.Files, null);
            var files = new RootFolderViewModel(workspace.RootFolder, workspace);

            tree.Children.Add(files);

            NotifyOfPropertyChange(() => Tree);
        }
예제 #2
0
        private void WorkspaceOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
        {
            if (propertyChangedEventArgs.PropertyName == "WorkspaceDirectory")
            {   //teardown the current workspace
                if (tree != null)
                {
                    tree.Dispose();
                    tree = null;
                    NotifyOfPropertyChange(() => Tree);
                }

                if (workspace.WorkspaceDirectory != null && Directory.Exists(workspace.WorkspaceDirectory))
                {
                    tree = new TreeViewModel();

                    //add the assembly references
                    var refs = new AssemblyReferencesViewModel(workspace.ReplExecutor);
                    tree.Children.Add(refs);

                    //add the file tree
                    //var files = new FileReferencesViewModel(workspace.Files, null);
                    var files = new FolderRootViewModel(workspace.WorkspaceDirectory, workspace);
                    tree.Children.Add(files);

                    NotifyOfPropertyChange(() => Tree);

                    Settings.Default.LastWorkspace = workspace.WorkspaceDirectory;
                    Settings.Default.Save();
                }
            }
        }