Ejemplo n.º 1
0
        /// <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);
            }
        }
    }