コード例 #1
0
ファイル: RPackageViewModel.cs プロジェクト: Microsoft/RTVS
        public static RPackageViewModel CreateInstalled(RPackage package, IRPackageManagerViewModel owner) {
            Uri repositoryUri;
            Uri.TryCreate(package.Repository, UriKind.Absolute, out repositoryUri);

            return new RPackageViewModel(package.Package, owner) {
                Title = package.Title.NormalizeWhitespace(),
                Authors = package.Author.NormalizeWhitespace(),
                License = package.License.NormalizeWhitespace(),
                Urls = package.URL?.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
                    .Select(s => s.Trim())
                    .ToArray() ?? new string[0],
                NeedsCompilation = package.NeedsCompilation != null && !package.NeedsCompilation.EqualsIgnoreCase("no"),
                LibraryPath = package.LibPath,
                IsRemoteSession = owner.IsRemoteSession,
                RepositoryUri = repositoryUri,
                RepositoryText = repositoryUri != null ? null : package.Repository,
                Description = package.Description.NormalizeWhitespace(),
                Built = package.Built,
                Depends = package.Depends.NormalizeWhitespace(),
                Imports = package.Imports.NormalizeWhitespace(),
                Suggests = package.Suggests.NormalizeWhitespace(),
                LatestVersion = package.Version,
                InstalledVersion = package.Version,
                IsInstalled = true,
                HasDetails = true
            };
        }
コード例 #2
0
        public static RPackageViewModel CreateInstalled(RPackage package, IRPackageManagerViewModel owner)
        {
            Uri repositoryUri;

            Uri.TryCreate(package.Repository, UriKind.Absolute, out repositoryUri);

            return(new RPackageViewModel(package.Package, owner)
            {
                Title = package.Title.NormalizeWhitespace(),
                Authors = package.Author.NormalizeWhitespace(),
                License = package.License.NormalizeWhitespace(),
                Urls = package.URL?.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
                       .Select(s => s.Trim())
                       .ToArray() ?? new string[0],
                NeedsCompilation = package.NeedsCompilation != null && !package.NeedsCompilation.EqualsIgnoreCase("no"),
                LibraryPath = package.LibPath,
                RepositoryUri = repositoryUri,
                RepositoryText = repositoryUri != null ? null : package.Repository,
                Description = package.Description.NormalizeWhitespace(),
                Built = package.Built,
                Depends = package.Depends.NormalizeWhitespace(),
                Imports = package.Imports.NormalizeWhitespace(),
                Suggests = package.Suggests.NormalizeWhitespace(),
                LatestVersion = package.Version,
                InstalledVersion = package.Version,
                IsInstalled = true,
                HasDetails = true
            });
        }
コード例 #3
0
        public ISearchControl Create(FrameworkElement host, IRPackageManagerViewModel handler, SearchControlSettings settings)
        {
            VsAppShell.Current.AssertIsOnMainThread();
            var vsWindowSearchHost = _factoryLazy.Value.CreateWindowSearchHost(host);

            return(new VsSearchControl(vsWindowSearchHost, handler, settings));
        }
コード例 #4
0
        public async Task InitializeAsync()
        {
            var settings = _services.GetService <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(nameof(RPackageManagerViewModelTest));

            await _workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(settings.CranMirror, codePage : settings.RCodePage), null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            _packageManagerToolWindow = (TestToolWindow) await InUI(() => ((IRInteractiveWorkflowVisual)_workflow).ToolWindows.Packages());

            _packageManagerViewModel = (IRPackageManagerViewModel)_packageManagerToolWindow.ViewModel;
        }
コード例 #5
0
 public RPackageManagerVisualComponent(IRPackageManager packageManager, IVisualComponentContainer<IRPackageManagerVisualComponent> container, ISearchControlProvider searchControlProvider, IRSettings settings, ICoreShell coreShell) {
     _viewModel = new RPackageManagerViewModel(packageManager, settings, coreShell);
     Container = container;
     Controller = null;
     var control = new PackageManagerControl {
         DataContext = _viewModel,
     };
     Control = control;
     var searchControlSettings = new SearchControlSettings {
         SearchCategory = SearchCategory,
         MinWidth = (uint)control.SearchControlHost.MinWidth,
         MaxWidth = uint.MaxValue
     };
     _searchControl = searchControlProvider.Create(control.SearchControlHost, _viewModel, searchControlSettings);
 }
コード例 #6
0
        public async Task InitializeAsync()
        {
            var settings = _services.GetService <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(nameof(RPackageManagerViewModelTest));

            await _workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(settings.CranMirror, codePage : settings.RCodePage), null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            var componentContainerFactory = _services.GetService <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
コード例 #7
0
        public RPackageManagerVisualComponent(IRPackageManager packageManager, IVisualComponentContainer <IRPackageManagerVisualComponent> container, ISearchControlProvider searchControlProvider, IRSettings settings, ICoreShell coreShell)
        {
            _viewModel = new RPackageManagerViewModel(packageManager, settings, coreShell);
            Container  = container;
            var control = new PackageManagerControl {
                DataContext = _viewModel,
            };

            Control = control;
            var searchControlSettings = new SearchControlSettings {
                SearchCategory = SearchCategory,
                MinWidth       = (uint)control.SearchControlHost.MinWidth,
                MaxWidth       = uint.MaxValue
            };

            _searchControl = searchControlProvider.Create(control.SearchControlHost, _viewModel, searchControlSettings);
        }
コード例 #8
0
        public async Task InitializeAsync() {
            var settings = _exportProvider.GetExportedValue<IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(nameof(RPackageManagerViewModelTest));

            await _workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo {
                Name = _testMethod.Name,
                CranMirrorName = settings.CranMirror,
                RHostCommandLineArguments = settings.LastActiveConnection.RCommandLineArguments,
                CodePage = settings.RCodePage,
            }, null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);
            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            var componentContainerFactory = _exportProvider.GetExportedValue<IRPackageManagerVisualComponentContainerFactory>();
            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));
            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
コード例 #9
0
        public RPackageManagerVisualComponent(IRPackageManager packageManager, IVisualComponentContainer <IRPackageManagerVisualComponent> container, ISearchControlProvider searchControlProvider, IServiceContainer services)
        {
            Container = container;
            var control = new PackageManagerControl(services);

            Control = control;

            var infoBarProvider = services.GetService <IInfoBarProvider>();
            var infoBar         = infoBarProvider.Create(control.InfoBarControlHost);

            _viewModel = new RPackageManagerViewModel(packageManager, infoBar, services);

            var searchControlSettings = new SearchControlSettings {
                SearchCategory = SearchCategory,
                MinWidth       = (uint)control.SearchControlHost.MinWidth,
                MaxWidth       = uint.MaxValue
            };

            _searchControl = searchControlProvider.Create(control.SearchControlHost, _viewModel, searchControlSettings);

            control.DataContext = _viewModel;
        }
コード例 #10
0
        public PackageManagerControl(IServiceContainer services)
        {
            InitializeComponent();
            ListPackages.Initialize(services);

            var infoBar = services.GetService <IInfoBarProvider>().Create(InfoBarControlHost);

            ViewModel = new RPackageManagerViewModel(services, infoBar);

            var searchControlProvider = services.GetService <ISearchControlProvider>();
            var searchControlSettings = new SearchControlSettings {
                SearchCategory = SearchCategory,
                MinWidth       = (uint)SearchControlHost.MinWidth,
                MaxWidth       = uint.MaxValue
            };

            _disposable
            .Add(searchControlProvider.Create(SearchControlHost, ViewModel, searchControlSettings))
            .Add(ViewModel);

            DataContext = ViewModel;
        }
コード例 #11
0
        public async Task InitializeAsync()
        {
            var settings = _exportProvider.GetExportedValue <IRSettings>();
            await _workflow.RSessions.TrySwitchBrokerAsync(settings.LastActiveConnection.Name, settings.LastActiveConnection.Path);

            await _workflow.RSession.StartHostAsync(new RHostStartupInfo {
                Name                      = _testMethod.Name,
                CranMirrorName            = settings.CranMirror,
                RHostCommandLineArguments = settings.LastActiveConnection.RCommandLineArguments,
                CodePage                  = settings.RCodePage,
            }, null, 50000);

            await TestRepositories.SetLocalRepoAsync(_workflow.RSession, _testFiles);

            await TestLibraries.SetLocalLibraryAsync(_workflow.RSession, _testMethod, _testFiles);

            var componentContainerFactory = _exportProvider.GetExportedValue <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
コード例 #12
0
        public async Task InitializeAsync()
        {
            var settings = _exportProvider.GetExportedValue <IRSettings>();
            await _workflow.RSession.StartHostAsync(new RHostStartupInfo {
                Name      = _testMethod.Name,
                RBasePath = settings.RBasePath,
                RHostCommandLineArguments = settings.RCommandLineArguments,
                CranMirrorName            = settings.CranMirror,
                CodePage = settings.RCodePage,
            }, null, 50000);

            using (var eval = await _workflow.RSession.BeginEvaluationAsync()) {
                await TestRepositories.SetLocalRepoAsync(eval, _testFiles);

                await TestLibraries.SetLocalLibraryAsync(eval, _testMethod, _testFiles);
            }

            var componentContainerFactory = _exportProvider.GetExportedValue <IRPackageManagerVisualComponentContainerFactory>();

            _packageManagerComponent = await InUI(() => _workflow.Packages.GetOrCreateVisualComponent(componentContainerFactory));

            _packageManagerViewModel = await InUI(() => _packageManagerComponent.Control.DataContext) as IRPackageManagerViewModel;
        }
コード例 #13
0
 public RPackageViewModel(string name, IRPackageManagerViewModel owner)
 {
     _owner = owner;
     Name   = name;
 }
コード例 #14
0
 public ISearchControl Create(FrameworkElement host, IRPackageManagerViewModel handler, SearchControlSettings settings)
 {
     return(new TestSearchControl(handler, settings));
 }
コード例 #15
0
ファイル: RPackageViewModel.cs プロジェクト: Microsoft/RTVS
 public RPackageViewModel(string name, IRPackageManagerViewModel owner) {
     _owner = owner;
     Name = name;
 }