HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Create a container

Shows how to create the component container used for adding personalized gadgets in Optimizely Content Management System (CMS).

using System;
    using System.Collections.Generic;
    
    namespace EPiServer.Shell.ViewComposition.Containers
    {
        /// <summary>
        /// An extension of the grid container providing component management
        /// </summary>
        [Component(IsAvailableForUserSelection = false)]
        public class ComponentContainer : ContainerBase
        {
            /// <summary>
            /// Initializes a new instance of the <see cref="ComponentContainer"/> class.
            /// </summary>
            public ComponentContainer() : this("epi.shell.widget.layout.ComponentContainer") { }
    
            /// <summary>
            /// Initializes a new instance of the <see cref="ComponentContainer"/> class.
            /// </summary>
            protected ComponentContainer(string widgetType) : base(widgetType)
            { 
                Settings.Add(new PersonalizableSetting("numberOfColumns", 1));
                Settings.Add(new Setting("showToolbar", true));
                Settings.Add(new Setting("containerUnlocked", false));
                Settings.Add(new Setting("closable", false));
                Settings.Add(new Setting("personalizableHeading", string.Empty, true));
            }
    
            /// <summary>
            /// Gets or sets the categories that should be suggested for users for this container.
            /// </summary>
            [Obsolete("Categories are now defined on the view level, and not per container.")]
            public virtual string ComponentCategory
            {
                get
                {
                    return null;
                }
                set
                {
                }
            }
        }
    }