Example #1
0
 private void InitDefaultContainer(Guid containerId, ColumnSchemaType schema, IEnumerable <Widget> widgets)
 {
     if (DefaultContainers.ContainsKey(containerId))
     {
         return;
     }
     lock (DefaultContainers)
     {
         if (DefaultContainers.ContainsKey(containerId))
         {
             return;
         }
         var widgetContainer = new WidgetContainer(Guid.Empty, containerId)
         {
             ColumnSchemaType = columnSchemaType,
         };
         foreach (var widget in widgets)
         {
             var state = new WidgetState(widget.WidgetID, widgetContainer.ID)
             {
                 X = widget.Position.X, Y = widget.Position.Y
             };
             widgetContainer.States.Add(state);
         }
         DefaultContainers[containerId] = widgetContainer;
     }
 }
Example #2
0
 public WidgetTab(Guid containerID, ColumnSchemaType columnSchemaType, string behaviorID)
     : this()
 {
     this.containerID      = containerID;
     this.columnSchemaType = columnSchemaType;
     this.behaviorID       = behaviorID;
     AjaxPro.Utility.RegisterTypeForAjax(GetType());
 }
Example #3
0
        public static int[] GetColumnSchemaPercents(ColumnSchemaType columnSchemaType)
        {
            switch (columnSchemaType)
            {
            case ColumnSchemaType.Schema_25_50_25: return(new[] { 25, 50, 25 });

            case ColumnSchemaType.Schema_33_33_33: return(new[] { 33, 34, 33 });

            case ColumnSchemaType.Schema_65_35: return(new[] { 65, 35, 0 });

            default: throw new ArgumentOutOfRangeException("columnSchemaType");
            }
        }
Example #4
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            InitDefaultContainer(containerID, columnSchemaType, WidgetCollection);

            var widgetContainer = WidgetManager.GetWidgetContainer(containerID, TenantProvider.CurrentTenantID, SecurityContext.CurrentAccount.ID) ??
                                  GetDefaultContainer(containerID, Guid.NewGuid());

            columnSchemaType  = widgetContainer.ColumnSchemaType;
            widgetContainerId = widgetContainer.ID;

            var widgets = new List <Widget>();

            foreach (var widget in WidgetCollection)
            {
                var state = widgetContainer.States.Find(s => s.ID == widget.WidgetID);
                if (state == null)
                {
                    continue;
                }
                widget.InitWidgetState(state, behaviorID);
                widgets.Add(widget);
                displayWidgets.Add(widget.WidgetID);
            }

            widgets.Sort((x1, x2) => x1.Position.X != x2.Position.X ? x1.Position.X.CompareTo(x2.Position.X) : x1.Position.Y.CompareTo(x2.Position.Y));
            widgets.ForEach(w => Controls.Add(w));

            container = new Container {
                Header = new PlaceHolder(), Body = new PlaceHolder(), Options = new StyleOptions()
            };
            Controls.Add(container);

            Page.ClientScript.RegisterStartupScript(
                GetType(),
                Guid.NewGuid().ToString(),
                string.Format(" var {0} = new DashedBoard('{0}','{1}','{2}'); ", behaviorID, widgetContainerId, containerID),
                true);
        }