private void runComponent(IStep component)
        {
            if (currentStepIndex > steps.Count)
            {
                throw new Exception("Attempting to run past the end of the wizard");
            }
            component.StepReached();
            Control ui = component.UI;

            if (ui != null)
            {
                wizardForm.ShowUserControl(ui);
                updateButtonState();
                component.StepStateChanged
                    += new EventHandler(onComponentStateChanged);
                wizardForm.HeaderTitle = component.Title;
                if (!string.IsNullOrEmpty(component.Subtitle))
                {
                    wizardForm.ShowSubtitle(component.Subtitle);
                }
                else
                {
                    wizardForm.HideSubtitle();
                }
            }
        }
        private void runComponent(IStep component)
        {
            try
            {
                if (component.UI == null && component.UIType != null)   // DC case when we need to create an instance of UI
                {
                    component.UI = (Control)Activator.CreateInstance(component.UIType);                    
                }
                if (component.UI == null)
                    throw new Exception("in runComponent, was not able to create instance of type : " + component.UIType.FullName);

                component.Controller = this;
                if (component.OnComponentLoad != null)
                    component.OnComponentLoad(component);
                if (currentStepIndex > steps.Count)
                {
                    throw new Exception("Attempting to run past the end of the wizard");
                }
                component.StepReached();
                Control ui = component.UI;

                if (ui != null)
                {
                    wizardForm.ShowUserControl(ui);
                    updateButtonState();
                    component.StepStateChanged
                        += new EventHandler(onComponentStateChanged);
                    wizardForm.HeaderTitle = component.Title;
                    if (!string.IsNullOrEmpty(component.Subtitle))
                    {
                        wizardForm.ShowSubtitle(component.Subtitle);
                    }
                    else
                    {
                        wizardForm.HideSubtitle();
                    }

                    // DC: next code was added for O2
                    try
                    {
                        if (component.UI.Controls.Count > 0)
                        {
                            if (component.UIType == null)                           // the FirstControl value depends on when the control was created
                                component.FirstControl = component.UI.Controls[0];
                            else
                                component.FirstControl = component.UI;

                            component.Controls = new List<Control>();
                            foreach (Control control in component.UI.Controls)
                                component.Controls.Add(control);
                        }
                        if (component.OnComponentAction != null)
                            component.OnComponentAction(component);

                    }
                    catch (Exception ex)
                    {
                        if (onError != null)
                            onError(ex);
                    }

                }
            }
            catch (Exception ex)
            {
                if (onError != null)
                    onError(ex);
            }
        }