private DataClassInfo FindDataClass(BaseInfo item)
    {
        switch (item.TypeInfo.ObjectType)
        {
            case BizFormInfo.OBJECT_TYPE:
                var classId = ValidationHelper.GetInteger(item.GetValue("FormClassID"), 0);
                return DataClassInfoProvider.GetDataClassInfo(classId);
            case DocumentTypeInfo.OBJECT_TYPE_DOCUMENTTYPE:
            case CustomTableInfo.OBJECT_TYPE_CUSTOMTABLE:
                var className = ValidationHelper.GetString(item.GetValue("ClassName"), String.Empty);
                return DataClassInfoProvider.GetDataClassInfo(className);
        }

        return null;
    }
    private DataClassInfo FindDataClass(BaseInfo item)
    {
        switch (item.TypeInfo.ObjectType)
        {
        case BizFormInfo.OBJECT_TYPE:
            var classId = ValidationHelper.GetInteger(item.GetValue("FormClassID"), 0);
            return(DataClassInfoProvider.GetDataClassInfo(classId));

        case DocumentTypeInfo.OBJECT_TYPE_DOCUMENTTYPE:
        case CustomTableInfo.OBJECT_TYPE_CUSTOMTABLE:
            var className = ValidationHelper.GetString(item.GetValue("ClassName"), String.Empty);
            return(DataClassInfoProvider.GetDataClassInfo(className));
        }

        return(null);
    }
        private static void FillDataRow(BaseInfo item, DataRow row)
        {
            var generalizedInfo = item.Generalized;
            var prefix          = generalizedInfo.ObjectClassName.Split('.').Last();

            foreach (string column in row.Table.Columns.OfType <DataColumn>().Select(c => c.ColumnName))
            {
                if (column == generalizedInfo.GUIDColumn)
                {
                    var guid = Guid.NewGuid();
                    item.SetValue(column, guid);
                    row[column] = guid;
                }
                else if ((column == generalizedInfo.TimeStampColumn) ||
                         (column == string.Format("{0}Created", prefix)))
                {
                    var date = DateTime.Now;
                    item.SetValue(column, date);
                    row[column] = date;
                }
                else
                {
                    row[column] = item.GetValue(column) ?? DBNull.Value;
                }
            }
        }
Example #4
0
    /// <summary>
    /// Returns value of the given object column.
    /// </summary>
    /// <param name="info">Object data</param>
    /// <param name="columnName">Column name</param>
    private static object GetColumnValue(BaseInfo info, string columnName)
    {
        if ((info != null) && info.ContainsColumn(columnName))
        {
            return(info.GetValue(columnName));
        }

        return(null);
    }
        public static IDocument FromBaseInfo(IExecutionContext context, BaseInfo info)
        {
            var metadata = new List <KeyValuePair <string, object> >();

            metadata.AddRange(info.Properties.Select(
                                  key => new KeyValuePair <string, object>(key, info.GetValue(key))
                                  ));

            return(context.CreateDocument(metadata));
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing)
        {
            // No actions if processing is stopped
        }
        else
        {
            //Check view permission
            if (!CheckViewPermissions(UIContext.EditedObject as BaseInfo))
            {
                editElem.StopProcessing = true;
                editElem.Visible        = false;
                return;
            }

            if (!CheckEditPermissions())
            {
                editElem.Enabled = false;
                editElem.ShowError(GetString("ui.notauthorizemodified"));
            }


            editElem.OnAfterDefinitionUpdate += new EventHandler(editElem_OnAfterDefinitionUpdate);
            if (DisplayedControls != String.Empty)
            {
                editElem.DisplayedControls = DisplayedControls.ToEnum <FieldEditorControlsEnum>();
            }

            if (FieldEditorMode != String.Empty)
            {
                editElem.Mode = FieldEditorMode.ToEnum <FieldEditorModeEnum>();
            }
            editElem.ShowQuickLinks = ShowQuickLinks;

            BaseInfo bi = UIContext.EditedObject as BaseInfo;

            // Set the form defintion to the FieldEditor
            if ((bi != null) && (ParametersColumnName != String.Empty))
            {
                // Set properties for webpart
                switch (editElem.Mode)
                {
                case FieldEditorModeEnum.WebPartProperties:
                case FieldEditorModeEnum.SystemWebPartProperties:
                    editElem.WebPartId = bi.Generalized.ObjectID;
                    break;
                }

                editElem.FormDefinition = ValidationHelper.GetString(bi.GetValue(ParametersColumnName), String.Empty);
            }

            ScriptHelper.HideVerticalTabs(Page);
        }
    }
    /// <summary>
    /// Selects base info item
    /// </summary>
    /// <param name="bi">Base info item definition</param>
    private String SelectItem(BaseInfo bi)
    {
        String   script   = String.Empty;
        int      parentID = ValidationHelper.GetInteger(bi.GetValue(itemParentColumn), 0);
        BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID);

        if (biParent != null)
        {
            String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
            string path         = categoryPath + "/" + bi.Generalized.ObjectCodeName;
            script += SelectAfterLoad(path, bi.Generalized.ObjectID, "item", parentID, true, true);
        }

        return(script);
    }
Example #8
0
    /// <summary>
    /// Raises the JavaScript function which is defined in the url.
    /// </summary>
    private void RaiseReturnHandler()
    {
        if (!string.IsNullOrEmpty(ReturnHandler))
        {
            string   wopenerReturnType = QueryHelper.GetString("returntype", string.Empty).ToLowerCSafe();
            BaseInfo bi = EditForm.EditedObject;
            if (bi != null)
            {
                string returnColumnName;

                // Get the return column name
                switch (wopenerReturnType)
                {
                case "codename":
                    returnColumnName = bi.TypeInfo.CodeNameColumn;
                    break;

                case "displayname":
                    returnColumnName = bi.TypeInfo.DisplayNameColumn;
                    break;

                case "guid":
                    returnColumnName = bi.TypeInfo.GUIDColumn;
                    break;

                default:
                    returnColumnName = bi.TypeInfo.IDColumn;
                    break;
                }

                string returnHandler = ScriptHelper.GetString(ReturnHandler, false);
                string returnValue   = ScriptHelper.GetString((bi.GetValue(returnColumnName) ?? string.Empty).ToString());
                string wopenerScript = "if (wopener && wopener." + returnHandler + ") { wopener." + returnHandler + "(" + returnValue + "); }";

                // Empty redirect url after create, redirect manually after update script are launched
                if (!String.IsNullOrEmpty(EditForm.RedirectUrlAfterSave))
                {
                    wopenerScript += "window.location='" + ResolveUrl(EditForm.RedirectUrlAfterSave) + "';";
                    EditForm.RedirectUrlAfterSave = "";
                }

                // Register the handler script to the page
                ScriptHelper.RegisterWOpenerScript(Page);
                ScriptHelper.RegisterClientScriptBlock(Page, GetType(), "UpdateWOpener", wopenerScript, true);
            }
        }
    }
    /// <summary>
    /// Used for maxnodes in collapsed node.
    /// </summary>
    private TreeNode treeElem_OnNodeCreated(DataRow itemData, TreeNode defaultNode)
    {
        if (UseMaxNodeLimit && (MaxTreeNodes > 0))
        {
            //Get parentID from data row
            int    parentID       = ValidationHelper.GetInteger(itemData.ItemArray[4], 0);
            string dataObjectType = ValidationHelper.GetString(itemData.ItemArray[7], String.Empty);

            //Dont use maxnodes limitation for categories
            if (dataObjectType.ToLowerCSafe().Contains("category"))
            {
                return(defaultNode);
            }

            //Increment index count in collapsing
            mIndex++;
            if (mIndex == MaxTreeNodes)
            {
                //Load parentid
                int      parentParentID = 0;
                BaseInfo biParent       = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID);

                if (biParent != null)
                {
                    parentParentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0);
                }

                TreeNode node = new TreeNode();
                node.Text = "<span class=\"ContentTreeItem\" onclick=\"SelectNode(" + parentID + " ,'category'," + parentParentID + ",true ); return false;\"><span class=\"Name\">" + GetString("general.seelisting") + "</span></span>";
                return(node);
            }
            if (mIndex > MaxTreeNodes)
            {
                return(null);
            }
        }
        return(defaultNode);
    }
    /// <summary>
    /// Get ForumInfo object value to initialize ThreeStateControl object
    /// </summary>
    /// <param name="infoObj">Object used to initialize ThreeStateControl</param>
    /// <param name="propertyName">Object property used for initialization</param>
    /// <returns>Integer value used to initialize ThreeStateControl </returns>
    public void InitFromThreeStateValue(BaseInfo infoObj, string propertyName)
    {
        object dbValue = infoObj.GetValue(propertyName);

        Value = (dbValue == null) ? -1 : ValidationHelper.GetBoolean(dbValue, true) ? 1 : 0;
    }
    /// <summary>
    /// Handles delete action.
    /// </summary>
    /// <param name="eventArgument">Objecttype(item or itemcategory);objectid</param>
    public void RaisePostBackEvent(string eventArgument)
    {
        string[] values = eventArgument.Split(';');
        if (values.Length == 3)
        {
            int      id       = ValidationHelper.GetInteger(values[1], 0);
            int      parentId = ValidationHelper.GetInteger(values[2], 0);
            BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentId);

            if (biParent == null)
            {
                return;
            }

            String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
            int    parentID     = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0);

            //Test permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource(ResourceName, "Modify"))
            {
                String url = CMSPage.GetAccessDeniedUrl(UIHelper.ACCESSDENIED_PAGE, ResourceName, "modify", String.Empty, String.Empty);

                // Display access denied page in conent frame and select deleted item again
                String denyScript = @"$cmsj(document).ready(function(){ frames['paneContentTMain'].location = '" + ResolveUrl(url) + "';" + SelectAfterLoad(categoryPath + "/", id, values[0], parentId, false, false) + "});";

                ltlScript.Text += ScriptHelper.GetScript(denyScript);
                return;
            }

            string script = String.Empty;

            switch (values[0])
            {
            case "item":
                BaseInfo bi = BaseAbstractInfoProvider.GetInfoById(objectType, id);
                if (bi != null)
                {
                    bi.Delete();
                }

                break;

            case "category":
                try
                {
                    BaseInfo biCate = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, id);
                    if (biCate != null)
                    {
                        biCate.Delete();
                    }
                }
                catch (Exception ex)
                {
                    // Make alert with exception message, most probable cause is deleting category with subcategories
                    script = String.Format("alert('{0}');\n", ex.Message);

                    // Current node stays selected
                    parentId = id;
                }
                break;
            }

            // After delete select first tab always
            tabIndexStr     = String.Empty;
            script          = SelectAfterLoad(categoryPath + "/", parentId, "category", parentID, true, true) + script;
            ltlScript.Text += ScriptHelper.GetScript(script);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        objectType = UIContextHelper.GetObjectType(UIContext);
        CloneItemButton.Visible = DisplayCloneButton;

        // Pass tabindex
        int tabIndex = ValidationHelper.GetInteger(UIContext["TabIndex"], 0);

        if (tabIndex != 0)
        {
            tabIndexStr = "&tabindex=" + tabIndex;
        }

        String editElem     = ValidationHelper.GetString(UIContext["itemEdit"], String.Empty);
        String categoryElem = ValidationHelper.GetString(UIContext["categoryedit"], String.Empty);

        categoryPathColumn   = ValidationHelper.GetString(UIContext["pathColumn"], String.Empty);
        categoryParentColumn = ValidationHelper.GetString(UIContext["categoryparentcolumn"], String.Empty);
        categoryObjectType   = ValidationHelper.GetString(UIContext["parentobjecttype"], String.Empty);
        itemParentColumn     = ValidationHelper.GetString(UIContext["parentColumn"], String.Empty);
        newItem = ValidationHelper.GetString(UIContext["newitem"], String.Empty);

        if (!ValidateInput())
        {
            return;
        }

        itemLocation     = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ResourceName, editElem), "?tabslayout=horizontal&displaytitle=false");
        categoryLocation = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ResourceName, categoryElem), "?tabslayout=horizontal&displaytitle=false");

        RegisterExportScript();
        RegisterTreeScript();
        InitTree();

        // Setup menu action scripts
        String newItemText = newItem.StartsWithCSafe("javascript", true) ? newItem : "NewItem('item'); return false;";

        AddButon.Actions.Add(new CMSButtonAction
        {
            Text          = GetString(objectType + ".newitem"),
            OnClientClick = newItemText
        });
        AddButon.Actions.Add(new CMSButtonAction
        {
            Text          = GetString("development.tree.newcategory"),
            OnClientClick = "NewItem('category'); return false;"
        });

        DeleteItemButton.OnClientClick = "DeleteItem(); return false;";
        ExportItemButton.OnClientClick = "ExportObject(); return false;";
        CloneItemButton.OnClientClick  = "if ((selectedItemId > 0) && (selectedItemType == 'item')) { modalDialog('" + URLHelper.ResolveUrl("~/CMSModules/Objects/Dialogs/CloneObjectDialog.aspx?reloadall=1&displaytitle=" + UIContext["displaytitle"] + "&objecttype=" + objectType + "&objectid=") + "' + selectedItemId, 'Clone item', 750, 470); } return false;";

        // Tooltips
        DeleteItemButton.ToolTip = GetString("development.tree.deleteselected");
        ExportItemButton.ToolTip = GetString("exportobject.title");
        CloneItemButton.ToolTip  = GetString(objectType + ".clone");

        // URLs for menu actions
        String script = "var doNotReloadContent = false;\n";

        // Script for deleting widget or category
        string delPostback  = ControlsHelper.GetPostBackEventReference(this, "##");
        string deleteScript = "function DeleteItem() { \n" +
                              " if ((selectedItemId > 0) && (selectedItemParent > 0) && " +
                              " confirm(" + ScriptHelper.GetLocalizedString("general.deleteconfirmation") + ")) {\n " +
                              delPostback.Replace("'##'", "selectedItemType+';'+selectedItemId+';'+selectedItemParent") + ";\n" +
                              "}\n" +
                              "}\n";

        script += deleteScript;

        // Preselect tree item
        if (!RequestHelper.IsPostBack())
        {
            int parentobjectid = QueryHelper.GetInteger("parentobjectid", 0);
            int objectID       = QueryHelper.GetInteger("objectID", 0);

            // Select category
            if (parentobjectid > 0)
            {
                BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentobjectid);
                if (biParent != null)
                {
                    String path     = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
                    int    parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0);
                    script += SelectAfterLoad(path, parentobjectid, "category", parentID, true, true);
                }
            }
            // Select item
            else if (objectID > 0)
            {
                BaseInfo bi = BaseAbstractInfoProvider.GetInfoById(objectType, objectID);
                if (bi != null)
                {
                    script += SelectItem(bi);
                }
            }
            else
            {
                // Selection by hierarchy URL
                BaseInfo biSel    = UIContext.EditedObject as BaseInfo;
                BaseInfo biParent = UIContext.EditedObjectParent as BaseInfo;

                // Check for category selection
                if ((biParent != null) && (biParent.TypeInfo.ObjectType == categoryObjectType))
                {
                    String path     = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
                    int    parentID = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0);
                    script += SelectAfterLoad(path, biParent.Generalized.ObjectID, "category", parentID, false, true);
                }
                // Check for item selection
                else if ((biSel != null) && (biSel.TypeInfo.ObjectType == objectType))
                {
                    script += SelectItem(biSel);
                }
                else
                {
                    // Select root by default
                    BaseInfo bi = BaseAbstractInfoProvider.GetInfoByName(categoryObjectType, "/");

                    if (bi != null)
                    {
                        script += SelectAfterLoad("/", bi.Generalized.ObjectID, "category", 0, true, true);
                    }
                }
            }
        }


        ltlScript.Text += ScriptHelper.GetScript(script);
    }
Example #13
0
    /// <summary>
    /// Handles delete action.
    /// </summary>
    /// <param name="eventArgument">Objecttype(item or itemcategory);objectid</param>
    public void RaisePostBackEvent(string eventArgument)
    {
        string[] values = eventArgument.Split(';');
        if (values.Length == 3)
        {
            int      id       = ValidationHelper.GetInteger(values[1], 0);
            int      parentId = ValidationHelper.GetInteger(values[2], 0);
            BaseInfo biParent = ProviderHelper.GetInfoById(categoryObjectType, parentId);

            if (biParent == null)
            {
                return;
            }

            String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
            int    parentID     = ValidationHelper.GetInteger(biParent.GetValue(categoryParentColumn), 0);

            //Test permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource(ResourceName, "Modify"))
            {
                String url = CMSPage.GetAccessDeniedUrl(AdministrationUrlHelper.ADMIN_ACCESSDENIED_PAGE, ResourceName, "modify", String.Empty, String.Empty);

                // Display access denied page in conent frame and select deleted item again
                String denyScript = @"$cmsj(document).ready(function(){ frames['paneContentTMain'].location = '" + ResolveUrl(url) + "';" + SelectAfterLoad(categoryPath + "/", id, values[0], parentId, false, false) + "});";

                ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), ClientID + "_AccessDenied", ScriptHelper.GetScript(denyScript));
                return;
            }

            switch (values[0])
            {
            case "item":
                BaseInfo bi = ProviderHelper.GetInfoById(objectType, id);
                if (bi != null)
                {
                    bi.Delete();
                }

                break;

            case "category":
                try
                {
                    BaseInfo biCate = ProviderHelper.GetInfoById(categoryObjectType, id);
                    if (biCate != null)
                    {
                        biCate.Delete();
                    }
                }
                catch (Exception ex)
                {
                    // Make alert with exception message, most probable cause is deleting category with subcategories
                    var script = $"alert('{ScriptHelper.GetString(ex.Message, false)}');\n";
                    script += SelectAfterLoad(categoryPath + "/", id, "category", parentID, true, true);

                    ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), ClientID + "_AfterLoad", ScriptHelper.GetScript(script));
                    return;
                }
                break;
            }

            // After delete select first tab always
            tabIndexStr = String.Empty;
            var location = UIContextHelper.GetElementUrl(UIContext.UIElement, UIContext);
            location = URLHelper.RemoveParameterFromUrl(location, "objectid");
            location = URLHelper.UpdateParameterInUrl(location, "parentobjectid", parentId.ToString());

            URLHelper.Redirect(location);
        }
    }
    /// <summary>
    /// Returns value of the given object column.
    /// </summary>
    /// <param name="info">Object data</param>
    /// <param name="columnName">Column name</param>    
    private static object GetColumnValue(BaseInfo info, string columnName)
    {
        if ((info != null) && info.ContainsColumn(columnName))
        {
            return info.GetValue(columnName);
        }

        return null;
    }
Example #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        eObject = UIContext.EditedObject as BaseInfo;

        // If saved is found in query string
        if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("saved", 0) == 1))
        {
            ShowChangesSaved();
        }

        string before = String.Empty;
        string after  = String.Empty;

        String objectType = UIContextHelper.GetObjectType(UIContext);

        switch (objectType.ToLowerCSafe())
        {
        case "cms.webpart":
            defaultValueColumName = "WebPartDefaultValues";

            before = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.Before);
            after  = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.After);

            defaultSet = FormHelper.CombineFormDefinitions(before, after);

            WebPartInfo wi = eObject as WebPartInfo;

            // If inherited web part load parent properties
            if (wi.WebPartParentID > 0)
            {
                WebPartInfo parentInfo = WebPartInfoProvider.GetWebPartInfo(wi.WebPartParentID);
                if (parentInfo != null)
                {
                    properties = FormHelper.MergeFormDefinitions(parentInfo.WebPartProperties, wi.WebPartProperties);
                }
            }
            else
            {
                properties = wi.WebPartProperties;
            }

            break;

        case "cms.widget":
            before = PortalFormHelper.LoadProperties("Widget", "Before.xml");
            after  = PortalFormHelper.LoadProperties("Widget", "After.xml");

            defaultSet = FormHelper.CombineFormDefinitions(before, after);

            defaultValueColumName = "WidgetDefaultValues";
            WidgetInfo wii = eObject as WidgetInfo;
            if (wii != null)
            {
                WebPartInfo wiiWp = WebPartInfoProvider.GetWebPartInfo(wii.WidgetWebPartID);
                if (wiiWp != null)
                {
                    properties = FormHelper.MergeFormDefinitions(wiiWp.WebPartProperties, wii.WidgetProperties);
                }
            }

            break;
        }

        // Get the web part info
        if (eObject != null)
        {
            String defVal = ValidationHelper.GetString(eObject.GetValue(defaultValueColumName), string.Empty);
            defaultSet = LoadDefaultValuesXML(defaultSet);

            fieldEditor.Mode                     = FieldEditorModeEnum.SystemWebPartProperties;
            fieldEditor.FormDefinition           = FormHelper.MergeFormDefinitions(defaultSet, defVal);
            fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate;
            fieldEditor.OriginalFormDefinition   = defaultSet;
            fieldEditor.WebPartId                = eObject.Generalized.ObjectID;
        }

        ScriptHelper.HideVerticalTabs(Page);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        eObject = UIContext.EditedObject as BaseInfo;

        // If saved is found in query string
        if (!RequestHelper.IsPostBack() && (QueryHelper.GetInteger("saved", 0) == 1))
        {
            ShowChangesSaved();
        }

        string before = String.Empty;
        string after = String.Empty;

        String objectType = UIContextHelper.GetObjectType(UIContext);

        switch (objectType.ToLowerCSafe())
        {
            case "cms.webpart":
                defaultValueColumName = "WebPartDefaultValues";

                before = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.Before);
                after = PortalFormHelper.GetWebPartProperties(WebPartTypeEnum.Standard, PropertiesPosition.After);

                defaultSet = FormHelper.CombineFormDefinitions(before, after);

                WebPartInfo wi = eObject as WebPartInfo;

                // If inherited web part load parent properties
                if (wi.WebPartParentID > 0)
                {
                    WebPartInfo parentInfo = WebPartInfoProvider.GetWebPartInfo(wi.WebPartParentID);
                    if (parentInfo != null)
                    {
                        webPartProperties = FormHelper.MergeFormDefinitions(parentInfo.WebPartProperties, wi.WebPartProperties);
                    }
                }
                else
                {
                    webPartProperties = wi.WebPartProperties;
                }

                break;

            case "cms.widget":
                before = PortalFormHelper.LoadProperties("Widget", "Before.xml");
                after = PortalFormHelper.LoadProperties("Widget", "After.xml");

                defaultSet = FormHelper.CombineFormDefinitions(before, after);

                defaultValueColumName = "WidgetDefaultValues";
                WidgetInfo wii = eObject as WidgetInfo;
                if (wii != null)
                {
                    WebPartInfo wiiWp = WebPartInfoProvider.GetWebPartInfo(wii.WidgetWebPartID);
                    if (wiiWp != null)
                    {
                        webPartProperties = FormHelper.MergeFormDefinitions(wiiWp.WebPartProperties, wii.WidgetProperties);
                    }
                }

                break;
        }

        // Get the web part info
        if (eObject != null)
        {
            String defVal = ValidationHelper.GetString(eObject.GetValue(defaultValueColumName), string.Empty);
            defaultSet = LoadDefaultValuesXML(defaultSet);

            fieldEditor.Mode = FieldEditorModeEnum.SystemWebPartProperties;
            fieldEditor.FormDefinition = FormHelper.MergeFormDefinitions(defaultSet, defVal);
            fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate;
            fieldEditor.OriginalFormDefinition = defaultSet;
            fieldEditor.WebPartId = eObject.Generalized.ObjectID;
        }

        ScriptHelper.HideVerticalTabs(Page);
    }
        private static void FillDataRow(BaseInfo item, DataRow row)
        {
            var ti = item.TypeInfo;

            var prefix = ti.ObjectClassName.Split('.').Last();

            foreach (string column in row.Table.Columns.OfType<DataColumn>().Select(c => c.ColumnName))
            {
                if (column == ti.GUIDColumn)
                {
                    var guid = Guid.NewGuid();
                    item.SetValue(column, guid);
                    row[column] = guid;
                }
                else if ((column == ti.TimeStampColumn) ||
                         (column == string.Format("{0}Created", prefix)))
                {
                    var date = DateTime.Now;
                    item.SetValue(column, date);
                    row[column] = date;
                }
                else
                {
                    row[column] = item.GetValue(column) ?? DBNull.Value;
                }
            }
        }
 /// <summary>
 /// Get ForumInfo object value to initialize ThreeStateControl object
 /// </summary>
 /// <param name="forumObj">ForumInfo object used to initialize ThreeStateControl</param>
 /// <param name="propertyName">Object property used for initialization</param>
 /// <returns>Integer value used to initialize ThreeStateControl </returns>
 public void InitFromThreeStateValue(BaseInfo infoObj, string propertyName)
 {
     object dbValue = infoObj.GetValue(propertyName);
     Value = (dbValue == null) ? -1 : ValidationHelper.GetBoolean(dbValue, true) ? 1 : 0;
 }
    /// <summary>
    /// Selects base info item
    /// </summary>
    /// <param name="bi">Base info item definition</param>
    private String SelectItem(BaseInfo bi)
    {
        String script = String.Empty;
        int parentID = ValidationHelper.GetInteger(bi.GetValue(itemParentColumn), 0);
        BaseInfo biParent = BaseAbstractInfoProvider.GetInfoById(categoryObjectType, parentID);
        if (biParent != null)
        {
            String categoryPath = ValidationHelper.GetString(biParent.GetValue(categoryPathColumn), String.Empty);
            string path = categoryPath + "/" + bi.Generalized.ObjectCodeName;
            script += SelectAfterLoad(path, bi.Generalized.ObjectID, "item", parentID, true, true);
        }

        return script;
    }