public AddExistingEnvironmentView( IServiceProvider serviceProvider, ProjectView[] projects, ProjectView selectedProject ) : base(serviceProvider, projects, selectedProject) { _logger = Site.GetService(typeof(IPythonToolsLogger)) as IPythonToolsLogger; _allGlobalInterpreters = InterpreterView.GetInterpreters(Site, null).ToArray(); PageName = Strings.AddExistingEnvironmentTabHeader; ResetProjectDependentProperties(); }
protected override void ResetProjectDependentProperties() { LocationPath = SelectedProject?.HomeFolder ?? Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); VirtualEnvName = GetDefaultEnvName(); Interpreters = new ObservableCollection <InterpreterView>(InterpreterView.GetInterpreters(Site, null, true)); BaseInterpreter = Interpreters.FirstOrDefault(v => v.Id == SelectedProject?.ActiveInterpreterId) ?? Interpreters.LastOrDefault(); RequirementsPath = SelectedProject?.RequirementsTxtPath ?? string.Empty; CanInstallRequirementsTxt = File.Exists(RequirementsPath); WillInstallRequirementsTxt = CanInstallRequirementsTxt && WillCreateVirtualEnv; SetAsCurrent = SetAsCurrent && SelectedProject != null; }
protected override void ResetProjectDependentProperties() { // When there's no project, the only action that is viable is to register a custom environment. IEnumerable <InterpreterView> available = SelectedProject != null ? InterpreterView.GetInterpreters(Site, SelectedProject?.Node).Where(view => SelectedProject.InterpreterIds.IndexOf(view.Id) < 0) : Enumerable.Empty <InterpreterView>(); var interpreters = new ObservableCollection <InterpreterView>(available); interpreters.Insert(0, CustomInterpreter); Interpreters = interpreters; if (Interpreters.Count > 1) { SelectedInterpreter = (InterpreterView)Interpreters[1]; } else { SelectedInterpreter = CustomInterpreter; } }