Example #1
0
        private void LayoutSerializer_LayoutSerializationCallback(object sender, LayoutSerializationCallbackEventArgs e)
        {
            var mvm = this.DataContext as MainWindowViewModel;

            if (e.Model.ContentId == null)
            {
                e.Cancel = true;
                return;
            }

            if (e.Model.ContentId.Equals(Korduene.UI.WPF.Constants.ContentIds.TOOLBOX, StringComparison.OrdinalIgnoreCase))
            {
                var vm = new ToolBoxViewModel();
                e.Content = vm;
                mvm.AddToolsInternal(vm);
            }
            else if (e.Model.ContentId.Equals(Korduene.UI.WPF.Constants.ContentIds.PROPERTIES, StringComparison.OrdinalIgnoreCase))
            {
                var vm = new PropertiesViewModel();
                e.Content = vm;
                mvm.AddToolsInternal(vm);
            }
            else if (e.Model.ContentId.Equals(Korduene.UI.WPF.Constants.ContentIds.SOLUTION_EXPLORER, StringComparison.OrdinalIgnoreCase))
            {
                var vm = new SolutionExplorerViewModel();
                e.Content = vm;
                mvm.AddToolsInternal(vm);
            }
            else if (e.Model.ContentId.Equals(Korduene.UI.WPF.Constants.ContentIds.OUTPUT, StringComparison.OrdinalIgnoreCase))
            {
                var vm = new OutputViewModel();
                e.Content = vm;
                mvm.AddToolsInternal(vm);
            }
        }
Example #2
0
        public DockingAdapterViewModel()
        {
            DockingAdapter = new ObservableCollection <Workspace>();

            ToolboxViewModel toolbox = new ToolboxViewModel()
            {
                Name = "ToolboxWindow", Header = "Toolbox", State = DockState.Dock, SideInDockMode = DockSide.Left, DesiredWidthInDockedMode = 250
            };
            SolutionExplorerViewModel solutionexplorer = new SolutionExplorerViewModel()
            {
                Name = "SolutionExplorerWindow", Header = "Solution Explorer", State = DockState.Dock, SideInDockMode = DockSide.Right, DesiredWidthInDockedMode = 300
            };
            ClassViewModel classview = new ClassViewModel()
            {
                Name = "ClassViewWindow", Header = "Class View", State = DockState.Dock, TargetNameInDockedMode = "SolutionExplorerWindow", SideInDockMode = DockSide.Tabbed
            };
            PropertiesViewModel properties = new PropertiesViewModel()
            {
                Name = "PropertiesWindow", Header = "Properties", State = DockState.Dock, TargetNameInDockedMode = "SolutionExplorerWindow", SideInDockMode = DockSide.Bottom
            };
            ErrorListViewModel errorlist = new ErrorListViewModel()
            {
                Name = "ErrorListWindow", Header = "Error List", State = DockState.Dock, SideInDockMode = DockSide.Bottom, DesiredHeightInDockedMode = 200
            };
            FindSymbolResultsViewModel findsymbolresults = new FindSymbolResultsViewModel()
            {
                Name = "FindSymbolResultsWindow", Header = "Find Symbol Results", State = DockState.Dock, TargetNameInDockedMode = "ErrorListWindow", SideInDockMode = DockSide.Tabbed
            };
            OutputViewModel output = new OutputViewModel()
            {
                Name = "OutputWindow", Header = "Output", State = DockState.Dock, TargetNameInDockedMode = "ErrorListWindow", SideInDockMode = DockSide.Tabbed
            };
            FindResultsViewModel findresults = new FindResultsViewModel()
            {
                Name = "FindResults1Window", Header = "Find Results 1", State = DockState.Dock, TargetNameInDockedMode = "ErrorListWindow", SideInDockMode = DockSide.Tabbed
            };

            MainWindowXAMLViewModel mainwindowxaml = new MainWindowXAMLViewModel()
            {
                Header = "MainWindow.xaml", State = DockState.Document
            };
            MainWindowCSViewModel mainwindowcs = new MainWindowCSViewModel()
            {
                Header = "MainWindow.xaml.cs", State = DockState.Document
            };

            DockingAdapter.Add(toolbox);
            DockingAdapter.Add(solutionexplorer);
            DockingAdapter.Add(classview);
            DockingAdapter.Add(properties);
            DockingAdapter.Add(errorlist);
            DockingAdapter.Add(findsymbolresults);
            DockingAdapter.Add(output);
            DockingAdapter.Add(findresults);
            DockingAdapter.Add(mainwindowxaml);
            DockingAdapter.Add(mainwindowcs);
        }
 public SolutionExplorer(SolutionExplorerViewModel solutionExplorerViewModel)
 {
     _solutionExplorerViewModel = solutionExplorerViewModel;
 }
Example #4
0
        public IEnumerable<Project> ShowProjectSelectorWindow(
            string instructionText,
            IPackage package,
            Predicate<Project> checkedStateSelector,
            Predicate<Project> enabledStateSelector)
        {
            if (!_uiDispatcher.CheckAccess())
            {
                // Use Invoke() here to block the worker thread
                object result = _uiDispatcher.Invoke(
                    new Func<string, IPackage, Predicate<Project>, Predicate<Project>, IEnumerable<Project>>(ShowProjectSelectorWindow),
                    instructionText,
                    package,
                    checkedStateSelector,
                    enabledStateSelector);

                return (IEnumerable<Project>)result;
            }

            var viewModel = new SolutionExplorerViewModel(
                ServiceLocator.GetInstance<DTE>().Solution,
                package,
                checkedStateSelector,
                enabledStateSelector);

            // only show the solution explorer window if there is at least one compatible project
            if (viewModel.HasProjects)
            {
                var window = new SolutionExplorer()
                {
                    DataContext = viewModel
                };
                window.InstructionText.Text = instructionText;

                bool? dialogResult = null;
                using (NuGetEventTrigger.Instance.TriggerEventBeginEnd(
                    NuGetEvent.SelectProjectDialogBegin,
                    NuGetEvent.SelectProjectDialogEnd))
                {
                    dialogResult = window.ShowModal();
                }

                if (dialogResult ?? false)
                {
                    return viewModel.GetSelectedProjects();
                }
                else
                {
                    return null;
                }
            }
            else
            {
                IEnumerable<FrameworkName> supportedFrameworks = package.GetSupportedFrameworks()
                                                                        .Where(name => name != null && name != VersionUtility.UnsupportedFrameworkName);
                string errorMessage = supportedFrameworks.Any() ?
                    String.Format(
                        CultureInfo.CurrentCulture,
                        Resources.Dialog_NoCompatibleProject,
                        package.Id,
                        Environment.NewLine + String.Join(Environment.NewLine, supportedFrameworks)) :
                    String.Format(
                        CultureInfo.CurrentCulture,
                        Resources.Dialog_NoCompatibleProjectNoFrameworkNames,
                        package.Id);

                // if there is no project compatible with the selected package, show an error message and return
                MessageHelper.ShowWarningMessage(errorMessage, title: null);
                return null;
            }
        }
Example #5
0
        public IEnumerable <Project> ShowProjectSelectorWindow(
            string instructionText,
            IPackage package,
            Predicate <Project> checkedStateSelector,
            Predicate <Project> enabledStateSelector)
        {
            if (!_uiDispatcher.CheckAccess())
            {
                // Use Invoke() here to block the worker thread
                object result = _uiDispatcher.Invoke(
                    new Func <string, IPackage, Predicate <Project>, Predicate <Project>, IEnumerable <Project> >(ShowProjectSelectorWindow),
                    instructionText,
                    package,
                    checkedStateSelector,
                    enabledStateSelector);

                return((IEnumerable <Project>)result);
            }

            var viewModel = new SolutionExplorerViewModel(
                ServiceLocator.GetInstance <DTE>().Solution,
                package,
                checkedStateSelector,
                enabledStateSelector);

            // only show the solution explorer window if there is at least one compatible project
            if (viewModel.HasProjects)
            {
                var window = new SolutionExplorer()
                {
                    DataContext = viewModel
                };
                window.InstructionText.Text = instructionText;

                bool?dialogResult = null;
                using (NuGetEventTrigger.Instance.TriggerEventBeginEnd(
                           NuGetEvent.SelectProjectDialogBegin,
                           NuGetEvent.SelectProjectDialogEnd))
                {
                    dialogResult = window.ShowModal();
                }

                if (dialogResult ?? false)
                {
                    return(viewModel.GetSelectedProjects());
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                IEnumerable <FrameworkName> supportedFrameworks = package.GetSupportedFrameworks()
                                                                  .Where(name => name != null && name != VersionUtility.UnsupportedFrameworkName);
                string errorMessage = supportedFrameworks.Any() ?
                                      String.Format(
                    CultureInfo.CurrentCulture,
                    Resources.Dialog_NoCompatibleProject,
                    package.Id,
                    Environment.NewLine + String.Join(Environment.NewLine, supportedFrameworks)) :
                                      String.Format(
                    CultureInfo.CurrentCulture,
                    Resources.Dialog_NoCompatibleProjectNoFrameworkNames,
                    package.Id);

                // if there is no project compatible with the selected package, show an error message and return
                MessageHelper.ShowWarningMessage(errorMessage, title: null);
                return(null);
            }
        }
Example #6
0
 public SolutionExplorerView(SolutionExplorerViewModel viewModel)
 {
     this.DataContext = viewModel;
     InitializeComponent();
 }
Example #7
0
 public SolutionExplorer()
 {
     InitializeComponent();
     solutionExplorerViewModel = new SolutionExplorerViewModel();
     DataContext = solutionExplorerViewModel;
 }