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; } }
public WidgetTab(Guid containerID, ColumnSchemaType columnSchemaType, string behaviorID) : this() { this.containerID = containerID; this.columnSchemaType = columnSchemaType; this.behaviorID = behaviorID; AjaxPro.Utility.RegisterTypeForAjax(GetType()); }
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"); } }
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); }