public void Activate() { bool isDockManagerNeeded = App.CompositionContainer.GetExportedValues <IDockManager>().Count() == 0; bool isHeaderControlNeeded = App.CompositionContainer.GetExportedValues <IHeaderControl>().Count() == 0; bool isStatusControlNeeded = App.CompositionContainer.GetExportedValues <IStatusControl>().Count() == 0; if (isDockManagerNeeded && isHeaderControlNeeded && isStatusControlNeeded) { App.UpdateProgress("Downloading a Ribbon extension..."); var package = packages.Install("DotSpatial.Plugins.Ribbon"); if (package == null) { MessageBox.Show("No HeaderControl was available, but we couldn't download the ribbon. Please make sure you are connected to the Internet."); } else { // Download the other extensions. App.UpdateProgress("Downloading a DockManager extension..."); packages.Install("DotSpatial.Plugins.DockManager"); App.UpdateProgress("Downloading a MenuBar extension..."); packages.Install("DotSpatial.Plugins.MenuBar"); packages.Install("DotSpatial.Plugins.Measure"); packages.Install("DotSpatial.Plugins.TableEditor"); App.RefreshExtensions(); } } }
/// <inheritdoc /> public void Activate() { bool isDockManagerNeeded = !App.CompositionContainer.GetExportedValues <IDockManager>().Any(); bool isHeaderControlNeeded = !App.CompositionContainer.GetExportedValues <IHeaderControl>().Any(); bool isStatusControlNeeded = !App.CompositionContainer.GetExportedValues <IStatusControl>().Any(); if (isDockManagerNeeded && isHeaderControlNeeded && isStatusControlNeeded) { App.UpdateProgress("Downloading a Ribbon extension..."); var package = _packages.Install("DotSpatial.Plugins.Ribbon"); if (package == null) { MessageBox.Show(Resources.NoHeaderControlErrorDownloadingRibbon); } else { // Download the other extensions. App.UpdateProgress("Downloading a DockManager extension..."); _packages.Install("DotSpatial.Plugins.DockManager"); App.UpdateProgress("Downloading a MenuBar extension..."); _packages.Install("DotSpatial.Plugins.MenuBar"); _packages.Install("DotSpatial.Plugins.Measure"); _packages.Install("DotSpatial.Plugins.TableEditor"); App.RefreshExtensions(); } } }
public void Activate() { bool isDockManagerNeeded = App.CompositionContainer.GetExportedValues <IDockManager>().Count() == 0; bool isHeaderControlNeeded = App.CompositionContainer.GetExportedValues <IHeaderControl>().Count() == 0; bool isStatusControlNeeded = App.CompositionContainer.GetExportedValues <IStatusControl>().Count() == 0; if (isDockManagerNeeded && isHeaderControlNeeded && isStatusControlNeeded) { App.UpdateProgress("Downloading a Ribbon extension..."); packages.Install("DotSpatial.Plugins.Ribbon"); App.UpdateProgress("Downloading a DockManager extension..."); packages.Install("DotSpatial.Plugins.DockManager"); App.UpdateProgress("Downloading a MenuBar extension..."); packages.Install("DotSpatial.Plugins.MenuBar"); packages.Install("DotSpatial.Plugins.Measure"); packages.Install("DotSpatial.Plugins.TableEditor"); App.RefreshExtensions(); } }
private void InstallButton_Click(object sender, EventArgs e) { if (uxPackages.SelectedItem != null) { uxInstall.Enabled = false; var pack = uxPackages.SelectedItem as IPackage; // make a list of all the ext. that are deactivated, do the install, then activate everything, // except the list of those that were deactivated. // hack: Hope the user doesn't unload extensions while we install. var inactiveExtensions = App.Extensions.Where(a => a.IsActive == false).ToArray(); App.ProgressHandler.Progress(null, 0, "Downloading " + pack.Title); var task = Task.Factory.StartNew(() => { // Download the extension. packages.Install(pack.Id); // Load the extension. App.RefreshExtensions(); }); // UI related work. task.ContinueWith((t) => { App.ProgressHandler.Progress(null, 0, "Installing " + pack.Title); // Activate the extension(s) that was installed. var extensions = App.Extensions.Where(a => !inactiveExtensions.Contains(a) && a.IsActive == false); if (extensions.Count() > 0 && !App.EnsureRequiredImportsAreAvailable()) { return; } foreach (var item in extensions) { item.TryActivate(); } // hack: we should really try to refresh the list, using what ever category the user // has selected. Installed.Items.Clear(); App.ProgressHandler.Progress(null, 0, "Ready."); }, TaskScheduler.FromCurrentSynchronizationContext()); } }
private void BtnOkOnlineClick(object sender, EventArgs e) { IPackage pack = uxOnlineProjects.SelectedItem as IPackage; if (pack == null) { return; } btnInstall.Enabled = false; _downloadDialog.Show(); var inactiveExtensions = App.Extensions.Where(a => a.IsActive == false).ToArray(); Task task = Task.Factory.StartNew(() => { var dependency = pack.Dependencies.ToList(); if (dependency.Count > 0) { foreach (PackageDependency dependentPackage in dependency) { App.ProgressHandler.Progress(null, 0, string.Format(Resources.DownloadingDependency, dependentPackage.Id)); _downloadDialog.ShowDownloadStatus(dependentPackage); _downloadDialog.SetProgressBarPercent(0); var dependentpack = _packages.Install(dependentPackage.Id); if (dependentpack == null) { MessageBox.Show(string.Format(Resources.CannotDownloadCheckInternetConnection, dependentPackage.Id)); return; } } } App.ProgressHandler.Progress(null, 0, string.Format(Resources.Downloading, pack.Title)); _downloadDialog.ShowDownloadStatus(pack); _downloadDialog.SetProgressBarPercent(0); _packages.Install(pack.Id); }); task.ContinueWith( t => { App.ProgressHandler.Progress(null, 0, string.Format(Resources.Installing, pack.Title)); UpdateInstalledProjectsList(); // Load the extension. App.RefreshExtensions(); App.ProgressHandler.Progress(null, 50, string.Format(Resources.Installing, pack.Title)); // Activate the extension(s) that was installed. var extensions = App.Extensions.Where(a => !inactiveExtensions.Contains(a) && !a.IsActive).ToList(); if (extensions.Count > 0 && !App.EnsureRequiredImportsAreAvailable()) { return; } foreach (var item in extensions) { item.TryActivate(); } App.ProgressHandler.Progress(null, 0, Resources.Ready); _downloadDialog.Visible = false; }, TaskScheduler.FromCurrentSynchronizationContext()); }
private void InstallButton_Click(object sender, EventArgs e) { if (uxPackages.SelectedItems.Count < 1) { return; } downloadDialog.Show(); uxInstall.Enabled = false; var pack = uxPackages.SelectedItems[0].Tag as IPackage; if (pack == null) { return; } // make a list of all the ext. that are deactivated, do the install, then activate everything, // except the list of those that were deactivated. // hack: Hope the user doesn't unload extensions while we install. var inactiveExtensions = App.Extensions.Where(a => a.IsActive == false).ToArray(); var task = Task.Factory.StartNew(() => { IEnumerable <PackageDependency> dependency = pack.Dependencies; if (dependency.Count() > 0) { foreach (PackageDependency dependentPackage in dependency) { App.ProgressHandler.Progress(null, 0, "Downloading Dependency " + dependentPackage.Id); downloadDialog.ShowDownloadStatus(dependentPackage); downloadDialog.SetProgressBarPercent(0); var dependentpack = packages.Install(dependentPackage.Id); if (dependentpack == null) { string message = "We cannot download " + dependentPackage.Id + " Please make sure you are connected to the Internet."; MessageBox.Show(message); return; } } } // Download the extension. App.ProgressHandler.Progress(null, 0, "Downloading " + pack.Title); downloadDialog.ShowDownloadStatus(pack); downloadDialog.SetProgressBarPercent(0); var package = packages.Install(pack.Id); if (package == null) { MessageBox.Show("We cannot download " + pack.Id + " Please make sure you are connected to the Internet"); } }); // UI related work. task.ContinueWith((t) => { // Load the extension. App.RefreshExtensions(); IEnumerable <PackageDependency> dependency = pack.Dependencies; App.ProgressHandler.Progress(null, 0, "Installing " + pack.Title); // Activate the extension(s) that was installed. var extensions = App.Extensions.Where(a => !inactiveExtensions.Contains(a) && a.IsActive == false); if (extensions.Count() > 0 && !App.EnsureRequiredImportsAreAvailable()) { return; } foreach (var item in extensions) { item.TryActivate(); } Installed.Items.Clear(); App.ProgressHandler.Progress(null, 0, "Ready."); string message = "The following packages are installed: " + pack.Title; foreach (PackageDependency dependentPackage in dependency) { message += dependentPackage.Id + " , "; } downloadDialog.Visible = false; DisplayPackages(); }, TaskScheduler.FromCurrentSynchronizationContext()); }
private void btnOKOnline_Click(object sender, EventArgs e) { if (this.uxOnlineProjects.SelectedItem != null) { this.btnInstall.Enabled = false; downloadDialog.Show(); IPackage pack = this.uxOnlineProjects.SelectedItem as IPackage; var inactiveExtensions = App.Extensions.Where(a => a.IsActive == false).ToArray(); Task task = Task.Factory.StartNew(delegate { IEnumerable <PackageDependency> dependency = pack.Dependencies; if (dependency.Count() > 0) { foreach (PackageDependency dependentPackage in dependency) { App.ProgressHandler.Progress(null, 0, "Downloading Dependency " + dependentPackage.Id); downloadDialog.ShowDownloadStatus(dependentPackage); downloadDialog.SetProgressBarPercent(0); var dependentpack = packages.Install(dependentPackage.Id); if (dependentpack == null) { string message = "We cannot download " + dependentPackage.Id + " Please make sure you are connected to the Internet."; MessageBox.Show(message); return; } } } this.App.ProgressHandler.Progress(null, 0, "Downloading " + pack.Title); downloadDialog.ShowDownloadStatus(pack); downloadDialog.SetProgressBarPercent(0); this.packages.Install(pack.Id); }); task.ContinueWith(delegate(Task t) { this.App.ProgressHandler.Progress(null, 0, "Installing " + pack.Title); this.UpdateInstalledProjectsList(); // Load the extension. App.RefreshExtensions(); IEnumerable <PackageDependency> dependency = pack.Dependencies; App.ProgressHandler.Progress(null, 50, "Installing " + pack.Title); // Activate the extension(s) that was installed. var extensions = App.Extensions.Where(a => !inactiveExtensions.Contains(a) && a.IsActive == false); if (extensions.Count() > 0 && !App.EnsureRequiredImportsAreAvailable()) { return; } foreach (var item in extensions) { item.TryActivate(); } this.App.ProgressHandler.Progress(null, 0, "Ready."); downloadDialog.Visible = false; }, TaskScheduler.FromCurrentSynchronizationContext()); } }
private void InstallButton_Click(object sender, EventArgs e) { if (uxPackages.SelectedItems.Count < 1) { return; } uxDownloadStatus.Clear(); uxInstallProgress.Value = 0; uxInstallProgress.Visible = true; uxDownloadStatus.Visible = true; uxInstall.Enabled = false; var pack = uxPackages.SelectedItems[0].Tag as IPackage; if (pack == null) { return; } // make a list of all the ext. that are deactivated, do the install, then activate everything, // except the list of those that were deactivated. // hack: Hope the user doesn't unload extensions while we install. var inactiveExtensions = App.Extensions.Where(a => a.IsActive == false).ToArray(); App.ProgressHandler.Progress(null, 0, "Downloading " + pack.Title); uxDownloadStatus.Text = "Downloading " + pack.Id; var task = Task.Factory.StartNew(() => { IEnumerable <PackageDependency> dependency = pack.Dependencies; if (dependency.Count() > 0) { MessageBox.Show("Downloading the dependencies", "Downloading", MessageBoxButtons.OK); foreach (PackageDependency dependentPackage in dependency) { packages.Install(dependentPackage.Id); App.ProgressHandler.Progress(null, 0, "Downloading " + dependentPackage.Id); if (uxDownloadStatus.InvokeRequired) { uxDownloadStatus.Invoke((Action)(() => { uxDownloadStatus.Text = "Downloading" + dependentPackage.Id; })); } else { uxDownloadStatus.Text = "Downloading" + dependentPackage.Id; } } } // Download the extension. packages.Install(pack.Id); // Load the extension. App.RefreshExtensions(); }); // UI related work. task.ContinueWith((t) => { IEnumerable <PackageDependency> dependency = pack.Dependencies; App.ProgressHandler.Progress(null, 0, "Installing " + pack.Title); // Activate the extension(s) that was installed. var extensions = App.Extensions.Where(a => !inactiveExtensions.Contains(a) && a.IsActive == false); if (extensions.Count() > 0 && !App.EnsureRequiredImportsAreAvailable()) { return; } foreach (var item in extensions) { item.TryActivate(); } // hack: we should really try to refresh the list, using what ever category the user // has selected. Installed.Items.Clear(); App.ProgressHandler.Progress(null, 0, "Ready."); uxInstallProgress.Visible = false; string message = "The following packages are installed: " + pack.Title; foreach (PackageDependency dependentPackage in dependency) { message += dependentPackage.Id + " , "; } uxDownloadStatus.Text = message; }, TaskScheduler.FromCurrentSynchronizationContext()); }