HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

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 {}
    }
  }
}