Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        /// <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();
                }
            }
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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());
            }
        }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }
Пример #7
0
        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());
            }
        }
Пример #8
0
        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());
        }