/// <summary> /// Show existing child form. /// </summary> /// <param name="form"></param> private void ShowChildForm(ChildForm form) { try { notify.ShowProcessing(); form.Show(); form.WindowState = FormWindowState.Normal; form.WindowState = FormWindowState.Maximized; } finally { notify.HideProcessing(); } }
/// <summary> /// Creation of child form. Can be used from outside to pass some Guid of entity and number to newly created forms. /// </summary> /// <param name="formType">exact type of form</param> /// <param name="id">Guid of entity</param> /// <param name="parameters">input parameters passed to the newly created form</param> private ChildForm OpenReturnChildForm(DocumentTypes documentType, List <KeyValuePair <string, object> > parameters, Guid id = default(Guid)) { ChildForm formToActivate = null; try { notify.ShowProcessing(); FormFlags flags = FormFlags.Nothing; flags |= GetSecurityRestrictionReasons(documentType); // is possible for this option to open for this user, at all if (flags.HasFlag(FormFlags.CanReadAtThisWorkstation) && !flags.HasFlag(FormFlags.ReadAccessDenied) || flags.HasFlag(FormFlags.CanEditAtThisWorkstation) && !flags.HasFlag(FormFlags.EditAccessDenied)) { if (id != Guid.Empty) { formToActivate = childForms.GetById(id); } if (formToActivate == null) { IReadOnlyList <ChildForm> existingDocuments = childForms[documentType]; if (IsSingleDocumentPerProgram(documentType) && existingDocuments.Count > 0) { formToActivate = existingDocuments.First(); } if (formToActivate == null) { flags |= (IsSingleEditModeDocument(documentType) && existingDocuments.Any((form) => { return(form.IsEditMode); })) ? FormFlags.SingleEditAlreadyOpened : FormFlags.Nothing; Main.Forms.Settings.SettingsXtraForm settingsForm = GetSettingsForm(); if ((settingsForm != null && settingsForm.IsEditMode && IsEditConflictWithSettings(documentType) || documentType == DocumentTypes.Settings && SettingsConflictedDocumentsOpened().Any((form) => { return(form.IsEditMode); }) ) ) { flags |= FormFlags.EditConflict; } bool editMode; if (CanOpen(documentType, id == Guid.Empty, flags, out editMode)) { formToActivate = CreateChildForm(documentType, parameters); if (formToActivate != null) { formToActivate.IsEditMode = editMode; ShowChildForm(formToActivate); } } } } if (formToActivate != null) { formToActivate.Activate(); } } else { notify.ShowError( Program.LanguageManager.GetString(StringResources.FormManager_AccessForbidden), Program.LanguageManager.GetString(StringResources.FormManager_AccessHeader)); log.Warn("Attempt to open form with restricted access to it"); } } finally { notify.HideProcessing(); } return(formToActivate); }