private ViewSettings CreateNewView(string viewName, Navigator navigator, Guid taskId, TaskArgumentsHolder args) { //Create a new instance ViewSettings viewSettings = UIPConfiguration.Config.GetViewSettingsFromName(viewName); if (viewSettings == null) { throw new UIPException(Resource.ResourceManager.FormatMessage(Resource.Exceptions.RES_ExceptionViewConfigNotFound, viewName)); } IView view = (IView)GenericFactory.Create(viewSettings); if (view is WindowsFormView) { WindowsFormView form = (WindowsFormView)view; ActivateForm(form, viewSettings, navigator, taskId, null, args); } else { WindowsFormControlView ctrl = (WindowsFormControlView)view; AddActiveControl(taskId, viewName, ctrl); ctrl.Disposed += new EventHandler(ControlDisposed); ActivateControl(ctrl, viewSettings, navigator, taskId, args); ctrl.Show(); } return(viewSettings); }
/// <summary> /// Activates a specific view with activation arguments. /// </summary> /// <param name="previousView">The view currently displayed.</param> /// <param name="view">The name of the view to be displayed next.</param> /// <param name="navigator">The navigator.</param> /// <param name="args">The arguments for the next view.</param> public void ActivateView(string previousView, string view, Navigator navigator, TaskArgumentsHolder args) { Guid taskId = navigator.CurrentState.TaskId; InitiailizeFormAndViews(taskId); WindowsFormView winFormView = GetActiveForm(taskId, view); WindowsFormControlView controlView = GetActiveControl(taskId, view); ViewSettings viewSettings = null; if (winFormView != null) { winFormView.Activate(); winFormView.Visible = true; viewSettings = UIPConfiguration.Config.GetViewSettingsFromName(winFormView.ViewName); ClosePreviousFormIfNecessary(winFormView, previousView, taskId, viewSettings); } else if (controlView != null) { ActivateControl(controlView, previousView); viewSettings = UIPConfiguration.Config.GetViewSettingsFromName(controlView.ViewName); } else { viewSettings = CreateNewView(view, navigator, taskId, args); ClosePreviousFormIfNecessary(null, previousView, taskId, viewSettings); } }
private void SetWinFormControlInternals(WindowsFormControlView control, ViewSettings viewSettings, Navigator navigator) { if (control != null) { control.InternalNavigator = navigator; control.InternalNavigationGraph = navigator.Name; control.InternalViewName = viewSettings.Name; } }
private void ActivateControl(WindowsFormControlView control, ViewSettings viewSettings, Navigator navigator, Guid taskId, TaskArgumentsHolder args) { control.InternalViewName = viewSettings.Name; control.InternalTaskId = taskId; ControllerBase controller = navigator.GetController(control); control.InternalNavigator = navigator; control.InternalController = controller; control.Initialize(args, viewSettings); }
private void ActivateControl(WindowsFormControlView control, string previousView) { IView previous = GetActiveControl(control.TaskId, previousView); if (previous == null) { foreach (WindowsFormControlView ctrl in GetActiveControls(control.TaskId).Values) { ctrl.Enable(false); } } else { previous.Enable(false); } control.Enable(true); if (control.CanFocus) { control.Focus(); } }
private void InitializeChildren(Control container, Navigator navigator, Guid taskId) { foreach (Control control in container.Controls) { if (control is WindowsFormControlView) { WindowsFormControlView child = (WindowsFormControlView)control; child.InternalNavigator = navigator; child.InternalTaskId = taskId; string viewName = navigator.GetViewNameFromNodeName(child.Name); child.InternalViewName = viewName; ViewSettings viewSettings = UIPConfiguration.Config.GetViewSettingsFromName(viewName); AddActiveControl(taskId, child.Name, child); child.InternalController = navigator.GetController(child); child.Initialize(null, viewSettings); } if (control.Controls.Count > 0) { InitializeChildren(control, navigator, taskId); } } }
private void AddActiveControl(Guid taskId, string viewName, WindowsFormControlView ctrl) { GetActiveControls(taskId)[viewName] = ctrl; }