void OnDeviceManagerTaskCompleted(GarminDeviceManager manager, GarminDeviceManager.BasicTask task, bool succeeded, String errorText)
        {
            if (!succeeded)
            {
                if (task.Type == GarminDeviceManager.BasicTask.TaskTypes.Initialize)
                {
                    MessageBox.Show(GarminFitnessView.GetLocalizedString("DeviceCommunicationErrorText"),
                                    GarminFitnessView.GetLocalizedString("ErrorText"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (!String.IsNullOrEmpty(errorText))
                {
                    MessageBox.Show(errorText,
                                    GarminFitnessView.GetLocalizedString("ErrorText"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                manager.CancelAllTasks();
            }
            else
            {
                if (task.Type == GarminDeviceManager.BasicTask.TaskTypes.SetOperatingDevice)
                {
                    if (GarminDeviceManager.Instance.OperatingDevice == null ||
                        !GarminDeviceManager.Instance.OperatingDevice.SupportsReadProfile)
                    {
                        IExtendedWizardPage nextPage = Wizard.GetPageByType(typeof(SetupWizardEditProfile));

                        MessageBox.Show(String.Format(GarminFitnessView.GetLocalizedString("NoDeviceSupportText"),
                                                      GarminDeviceManager.Instance.OperatingDevice.DisplayName, GarminFitnessView.GetLocalizedString("ImportProfileText")) +
                                        "\n" +
                                        GarminFitnessView.GetLocalizedString("ManualProfileConfigurationText"),
                                        GarminFitnessView.GetLocalizedString("ErrorText"),
                                        MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        Wizard.ShowPage(nextPage);
                    }
                }
                else if (task.Type == GarminDeviceManager.BasicTask.TaskTypes.ImportProfile)
                {
                    Wizard.GoNext();
                }
            }

            if (manager.AreAllTasksFinished)
            {
                Wizard.Enabled = true;
                Wizard.Cursor = Cursors.Default;

                manager.TaskCompleted -= new GarminDeviceManager.TaskCompletedEventHandler(OnDeviceManagerTaskCompleted);

                if (!succeeded)
                {
                    IExtendedWizardPage nextPage = Wizard.GetPageByType(typeof(SetupWizardEditProfile));

                    Wizard.ShowPage(nextPage);
                }
            }
        }