/// <inheritdoc /> public IWebPart Create(IWebPart webPart) { var webPartInfo = new WebPartInfo { WebPartCategoryID = webPart.WebPartCategoryID, WebPartFileName = webPart.WebPartFileName, WebPartDisplayName = webPart.WebPartDisplayName, WebPartName = webPart.WebPartName, WebPartProperties = FormInfo.GetEmptyFormDocument().OuterXml, }; WebPartInfoProvider.SetWebPartInfo(webPartInfo); return(webPartInfo.ActLike <IWebPart>()); }
private void Control_OnBeforeSave(object sender, EventArgs e) { UIForm form = (UIForm)sender; FormUserControlInfo formControl = form.EditedObject as FormUserControlInfo; if (formControl != null) { if (form.IsInsertMode) { var parentIdControl = form.FieldControls[FIELD_PARENTID]; // Reset inheritance setting if it's not visible if (parentIdControl == null || !parentIdControl.Visible) { formControl.SetValue(FIELD_PARENTID, null); } // Ensure that form definition of parameters is not empty if (string.IsNullOrWhiteSpace(formControl.UserControlParameters)) { formControl.UserControlParameters = FormInfo.GetEmptyFormDocument().OuterXml; } } else { // Reset filename if field not available var fileNameControl = form.FieldControls[FIELD_FILENAME]; if (fileNameControl == null || !fileNameControl.Visible) { formControl.SetValue(FIELD_FILENAME, String.Empty); } // Reset class name if field not available var assemblyControl = form.FieldControls[FIELD_ASSEMBLYNAME]; if (assemblyControl == null || !assemblyControl.Visible) { formControl.SetValue(FIELD_ASSEMBLYNAME, null); formControl.SetValue(FIELD_CLASSNAME, null); } // Set control's priority formControl.UserControlPriority = ValidationHelper.GetBoolean(form.GetFieldValue(FIELD_PRIORITY), false) ? (int)ObjectPriorityEnum.High : (int)ObjectPriorityEnum.Low; // Set which (data) types the control can be used for. Individual values are field types var values = GetFieldValues(form, FIELD_FOR); foreach (var group in DataTypeManager.GetFieldGroups()) { var col = FormHelper.GetDataTypeColumnForGroup(group); formControl.SetValue(col, values.Contains(group)); } // Set which resources the control can be shown in values = GetFieldValues(form, FIELD_SHOWIN); formControl.UserControlShowInDocumentTypes = values.Contains(SHOWIN_PAGETYPE); formControl.UserControlShowInBizForms = values.Contains(SHOWIN_FORM); values = GetFieldValues(form, FIELD_SHOWIN2); formControl.UserControlShowInCustomTables = values.Contains(SHOWIN_CUSTOMTABLE); formControl.UserControlShowInSystemTables = values.Contains(SHOWIN_SYSTEMTABLE); formControl.UserControlShowInReports = values.Contains(SHOWIN_REPORT); formControl.UserControlShowInWebParts = values.Contains(SHOWIN_CONTROL); } } }