/// <summary> /// Enables a data automation panel and sets the title. /// </summary> /// <param name="panelWidget">The panel widget.</param> /// <param name="panel">The panel.</param> /// <param name="title">The title.</param> /// <param name="enabled">if set to <c>true</c> [enabled].</param> private void SetPanel(PanelWidget panelWidget, Panel panel, string title, bool enabled) { panel.Enabled = enabled; string enabledStr = enabled ? "Enabled" : "Disabled"; panelWidget.Title = string.Format("{0} ({1})", title, enabledStr); }
/// <summary> /// Sorts the panel widgets. /// </summary> /// <param name="eventParam">The event parameter.</param> /// <param name="values">The values.</param> private void SortPanelWidgets(string eventParam, string[] values) { var allPanelWidgets = phReportFields.ControlsOfTypeRecursive <PanelWidget>(); string panelWidgetClientId = values[0]; int newIndex = int.Parse(values[1]); PanelWidget panelWidget = allPanelWidgets.FirstOrDefault(a => a.ClientID == panelWidgetClientId); Guid reportFieldGuid = panelWidget.ID.Replace("reportFieldWidget_", string.Empty).AsGuid(); if (panelWidget != null) { phReportFields.Controls.Remove(panelWidget); var reportFieldInfo = ReportFieldsDictionary.Where(a => a.Guid == reportFieldGuid).First(); ReportFieldsDictionary.Remove(reportFieldInfo); if (newIndex >= allPanelWidgets.Count()) { phReportFields.Controls.Add(panelWidget); ReportFieldsDictionary.Add(reportFieldInfo); } else { phReportFields.Controls.AddAt(newIndex, panelWidget); ReportFieldsDictionary.Insert(newIndex, reportFieldInfo); } } }
/// <summary> /// Renders the controls. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="filterControl">The filter control.</param> /// <param name="writer">The writer.</param> /// <param name="controls">The controls.</param> public override void RenderControls(Type entityType, FilterField filterControl, HtmlTextWriter writer, Control[] controls) { if (controls.Count() < 4) { return; } RegistrationTemplatePicker registrationTemplatePicker = controls[0] as RegistrationTemplatePicker; RockCheckBox cbIncludeInactiveRegistrationInstances = controls[1] as RockCheckBox; PanelWidget pwAdvanced = controls[3] as PanelWidget; writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); registrationTemplatePicker.RenderControl(writer); writer.RenderBeginTag(HtmlTextWriterTag.Div); cbIncludeInactiveRegistrationInstances.ContainerCssClass = "margin-l-md"; cbIncludeInactiveRegistrationInstances.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); pwAdvanced.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); RockContext rockContext = new RockContext(); EntityTypeService entityTypeService = new EntityTypeService(rockContext); var assembly = typeof(org.secc.Trak1.BackgroundCheck.Trak1).AssemblyQualifiedName; var entity = entityTypeService.Queryable().Where(et => et.AssemblyName == assembly).FirstOrDefault(); var providerGuid = entity.Guid; var provider = BackgroundCheckContainer.GetComponent(providerGuid.ToString()); var trak1 = (org.secc.Trak1.BackgroundCheck.Trak1)provider; var packages = trak1.GetPackageList(); foreach (var package in packages) { PanelWidget panelWidget = new PanelWidget() { Title = package.PackageName, Expanded = true }; phPackages.Controls.Add(panelWidget); var sb = new StringBuilder(); sb.Append("<ul>"); sb.AppendFormat("<li>Price: {0}</li>", package.PackagePrice); sb.AppendFormat("<li>Description: {0}</li>", package.PackageDescription); sb.Append("<li><b>Components:</b></li>"); sb.Append("<ul>"); foreach (var component in package.Components) { sb.AppendFormat("<li><b>{0}</b></li>", component.ComponentName); sb.AppendFormat("<li>Description: {0}</li>", component.ComponentDescription); if (component.RequiredFields.Any()) { sb.Append("<li><b>Required Fields:</b></li>"); sb.Append("<ul>"); foreach (var requiredField in component.RequiredFields) { sb.AppendFormat("<li>Name: {0}</li>", requiredField.Name); sb.Append("<ul>"); sb.AppendFormat("<li>Type: {0}</li>", requiredField.Type); sb.AppendFormat("<li>Length: {0}</li>", requiredField.Length); sb.AppendFormat("<li>Description: {0}</li>", requiredField.Description); sb.Append("</ul>"); } sb.Append("</ul>"); } } sb.Append("</ul>"); sb.Append("</ul>"); LiteralControl ltInfo = new LiteralControl { Text = sb.ToString() }; panelWidget.Controls.Add(ltInfo); } }
/// <summary> /// Handles the DeleteClick event of the FieldsPanelWidget control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void FieldsPanelWidget_DeleteClick(object sender, EventArgs e) { PanelWidget panelWidget = sender as PanelWidget; if (panelWidget != null) { Guid reportFieldGuid = panelWidget.ID.Replace("reportFieldWidget_", string.Empty).AsGuid(); phReportFields.Controls.Remove(panelWidget); var reportFieldInfo = ReportFieldsDictionary.First(a => a.Guid == reportFieldGuid); ReportFieldsDictionary.Remove(reportFieldInfo); } }
/// <summary> /// Renders the controls. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="filterControl">The filter control.</param> /// <param name="writer">The writer.</param> /// <param name="controls">The controls.</param> public override void RenderControls(Type entityType, FilterField filterControl, HtmlTextWriter writer, Control[] controls) { if (controls.Count() < 9) { return; } GroupPicker groupPicker = controls[0] as GroupPicker; RockCheckBox cbChildGroups = controls[1] as RockCheckBox; RockCheckBox cbIncludeSelectedGroup = controls[2] as RockCheckBox; RockCheckBox cbChildGroupsPlusDescendants = controls[3] as RockCheckBox; RockCheckBoxList cblRoles = controls[4] as RockCheckBoxList; RockDropDownList ddlGroupMemberStatus = controls[5] as RockDropDownList; RockCheckBox cbIncludeInactiveGroups = controls[6] as RockCheckBox; PanelWidget pwAdvanced = controls[8] as PanelWidget; writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); groupPicker.RenderControl(writer); cbChildGroups.RenderControl(writer); if (!cbChildGroups.Checked) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); cbIncludeSelectedGroup.ContainerCssClass = "margin-l-md"; cbIncludeSelectedGroup.RenderControl(writer); cbChildGroupsPlusDescendants.ContainerCssClass = "margin-l-md"; cbChildGroupsPlusDescendants.RenderControl(writer); cbIncludeInactiveGroups.ContainerCssClass = "margin-l-md"; cbIncludeInactiveGroups.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); cblRoles.RenderControl(writer); ddlGroupMemberStatus.RenderControl(writer); pwAdvanced.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); }
public override void Run() { var modData = ScreenManager.Instance.ModData; var findedMenus = modData.MenuInfos.Where(o => o.ID == menuID); if (findedMenus.Count() > 0) { menuData = findedMenus.First(); if (world.GlobalVariableTable.ContainsKey("menuData")) { world.GlobalVariableTable["menuData"] = menuData; } else { world.GlobalVariableTable.Add("menuData", menuData); } script = new ScriptFile(menuData.Logic); loader.ExecuteFunction(script, "menuInit", world); menuData = world.GlobalVariableTable["menuData"] as ModMenuDfnXml; menuMainPanel = UIManager.Instance.CreatePanel("menuMainPanel"); menuMainPanel.AddRow(UI.ValueType.Percent); menuMainPanel.AddCol(UI.ValueType.Percent); menuTitle = UIManager.Instance.CreateStaticText("menuStaticText", menuData.Title); menuTitle.MetricMode = Mogre.GuiMetricsMode.GMM_RELATIVE; menuTitle.Top = 0.05f; menuMainPanel.AddWidget(1, 1, menuTitle, AlignMode.Center); menuItemsPanel = UIManager.Instance.CreatePanel("menuItemsPanel", 0.5f, 0.5f, 0, 0); menuMainPanel.AddWidget(2, 1, menuItemsPanel, AlignMode.Left, AlignMode.Center, DockMode.Fill); foreach (var menu in menuData.Children) { menuItemsPanel.AddRow(UI.ValueType.Abosulte, 0.05f); } int row = 2; foreach (var menu in menuData.Children) { var button = UIManager.Instance.CreateButton(menu.id, menu.Text, 200); button.MetricMode = Mogre.GuiMetricsMode.GMM_RELATIVE; menuItemsPanel.AddWidget(row, 1, button, AlignMode.Center); menuButtons.Add(button); button.OnClick += Button_OnClick; row++; } } }
private void BtnFactions_OnClick(object sender) { ClearAllWidgets(); PanelWidget panelFactionList = UIManager.Instance.CreatePanel("panelFactionList", 0.3f, 0.92f, 0.7f, 0); panelFactionList.ChangeRow(UI.ValueType.Abosulte, 0.05f); panelFactionList.AddRow(UI.ValueType.Percent); panelFactionList.Padding.PaddingLeft = 0.01f; panelFactionList.Padding.PaddingRight = 0.01f; StaticText txtFactionsTitle = UIManager.Instance.CreateStaticText("txtFactionsTitle", GameString.FromString("ui_game_notes_factions_title", "Factions").ToString()); txtFactionsTitle.MetricMode = GuiMetricsMode.GMM_RELATIVE; panelFactionList.AddWidget(1, 1, txtFactionsTitle, AlignMode.Center); PanelScrollableWidget panelFactions = UIManager.Instance.CreateScrollablePanel("panelFactions", 1, 1, 0, 0, 1, 1, false); panelFactionList.AddWidget(2, 1, panelFactions, AlignMode.Center, AlignMode.Center, DockMode.Fill); panelFactions.ChangeRow(UI.ValueType.Abosulte, 0.03f); panelFactions.AddRows(world.ModData.SideInfos.Count - 1, UI.ValueType.Abosulte, 0.03f); int curRow = 1; widgets.Add(txtFactionsTitle); widgets.Add(panelFactionList); widgets.Add(panelFactions); foreach (var sideInfo in world.ModData.SideInfos) { if (!GameSlotManager.Instance.SlotEqual(sideInfo.ID, "slot_faction_state", "inactive") && !GameSlotManager.Instance.SlotEqual(sideInfo.ID, "slot_faction_visibility", "hidden")) { if (curRow == 1) { BuildFactionDetails(sideInfo); } var btnFaction = new SimpleStaticTextButton("txtFaction_" + sideInfo.Name, GameString.FromString(sideInfo.ID, sideInfo.Name).ToString(), (Color.FromArgb(36, 35, 191).ToColourValue()), ColourValue.Black, true); panelFactions.AddWidget(curRow, 1, btnFaction); btnFaction.UserData = sideInfo; btnFaction.OnClick += (evtObj) => { BuildFactionDetails((evtObj as Widget).UserData as ModSideDfnXML); }; curRow++; } } }
/// <summary> /// Enables a data automation panel and sets the title. /// </summary> /// <param name="panelWidget">The panel widget.</param> /// <param name="panel">The panel.</param> /// <param name="title">The title.</param> /// <param name="enabled">if set to <c>true</c> [enabled].</param> private void SetPanel(PanelWidget panelWidget, Panel panel, string title, bool enabled) { panel.Enabled = enabled; var enabledLabel = string.Empty; if (enabled) { enabledLabel = "<span class='label label-success'>Enabled</span> <span class='label label-success'>$</span>"; } else { enabledLabel = "<span class='label label-warning'>Disabled</span> <span class='label label-warning'>$</span>"; } panelWidget.Title = string.Format("<h3 class='panel-title pull-left margin-r-sm'>{0}</h3> {1} ", title, enabledLabel); }
private void CreateModCard(Mod mod, int currentRow, int currentCol) { PanelWidget modPreviewWidget = new PanelWidget("mod_panel_" + mod.name_id, 0, 0.3f, 0, 0, 2, 1, false); modPreviewWidget.ChangeRow(UI.ValueType.Percent, 100); modPreviewWidget.ChangeRow(UI.ValueType.Abosulte, 0.3f, 2); modPreviewWidget.Material = "SdkTrays/MiniTray"; browserMainPanel.ChangeRow(UI.ValueType.Abosulte, modPreviewWidget.Height, currentRow); browserMainPanel.AddWidget(currentRow, currentCol, modPreviewWidget, AlignMode.Center, AlignMode.Center, DockMode.Fill); PanelMaterialWidget pictureWidget = new PanelMaterialWidget("mod_pic_" + mod.name_id, "error.png"); modPreviewWidget.AddWidget(1, 1, pictureWidget, AlignMode.Center, AlignMode.Center, DockMode.Fill); PanelWidget modInfoWidget = new PanelWidget("mod_info_panel_" + mod.name_id, 0, 0, 0, 0, 1, 2, false); modInfoWidget.ChangeCol(UI.ValueType.Percent, 80); modInfoWidget.ChangeCol(UI.ValueType.Percent, 20, 2); modPreviewWidget.AddWidget(2, 1, modInfoWidget, AlignMode.Center, AlignMode.Center, DockMode.Fill); SimpleStaticTextWidget modNameWidget = new SimpleStaticTextWidget("mod_text_" + mod.name_id, mod.name, 0.2f, false, new Mogre.ColourValue()); modInfoWidget.AddWidget(1, 1, modNameWidget, AlignMode.Left, AlignMode.Center, DockMode.Fill, 1, 1, false); SimpleButtonWidget btnModSubscribeWidget = new SimpleButtonWidget("btnModSubscribeWidget_" + mod.name_id, "Subscribe", 0.8f, 0.7f); btnModSubscribeWidget.OnClick += (o) => { OnScreenEventChanged?.Invoke(btnModSubscribeWidget.Name, null); }; IBackendTask downloadModThumbTask = new DownloadBackendTask(mod.logo.original, "./Media/Engine/Download/" + mod.name_id + "_thumb.png"); BackendTaskManager.Instance.EnqueueTask(downloadModThumbTask); BackendTaskManager.Instance.TaskEnded += (o) => { pictureWidget.ChangeTexture(o.ToString()); }; modInfoWidget.AddWidget(1, 2, btnModSubscribeWidget, AlignMode.Center, AlignMode.Center); }
public FilterPickerControl() { upnlFilters = new UpdatePanel(); upnlFilters.UpdateMode = UpdatePanelUpdateMode.Conditional; PanelWidget pwFilters = new PanelWidget(); pwFilters.Title = "Filters"; pwFilters.ID = "pwFilters"; pwFilters.Expanded = true; // Data View picker dvDataViewPicker = new DataViewsPicker(); dvDataViewPicker.ID = "dvDataViewPicker"; dvDataViewPicker.Label = "Filters"; dvDataViewPicker.Help = "Select data views you want to represent in this visulization"; dvDataViewPicker.AutoPostBack = true; dvDataViewPicker.TextChanged += dvDataView_SelectedItem; pwFilters.Controls.Add(dvDataViewPicker); // Show filter key checkbox pwFilters.Controls.Add(new LiteralControl("<div class='row showFilterKey'><div class='col-xs-12'>")); cbShowFilterKey = new RockCheckBox(); cbShowFilterKey.ID = "cbShowFilterKey"; cbShowFilterKey.Label = "Show Filter Key"; cbShowFilterKey.Checked = true; cbShowFilterKey.Help = "Show the filter key in the top left hand corner of the chart"; pwFilters.Controls.Add(cbShowFilterKey); pwFilters.Controls.Add(new LiteralControl("</div></div>")); RockControlWrapper rcwDatafilters = new RockControlWrapper(); rptDataFilters = new Repeater(); rptDataFilters.ID = "rptDataFilters"; rptDataFilters.ItemDataBound += rptDataFilters_ItemDataBound; rptDataFilters.ItemTemplate = new FilterItemTemplate(ListItemType.Item); rcwDatafilters.Controls.Add(rptDataFilters); pwFilters.Controls.Add(rcwDatafilters); upnlFilters.ContentTemplateContainer.Controls.Add(pwFilters); Controls.Add(upnlFilters); }
public override void Run() { PanelWidget panel = UIManager.Instance.CreatePanel("OperationPanel", 1, 0.08f, 0, 0.92f, 1, 8); ButtonWidget btnGameLog = UIManager.Instance.CreateButton("btnGameLog", "Game Log", 150); ButtonWidget btnRecentMessage = UIManager.Instance.CreateButton("btnRecentMessage", "Recent", 100); ButtonWidget btnNotes = UIManager.Instance.CreateButton("btnNotes", "Notes", 100); ButtonWidget btnGameConcepts = UIManager.Instance.CreateButton("btnGameConcepts", "Concepts", 100); ButtonWidget btnCharacters = UIManager.Instance.CreateButton("btnCharacters", "Characters", 100); ButtonWidget btnLocations = UIManager.Instance.CreateButton("btnLocations", "Locations", 100); ButtonWidget btnFactions = UIManager.Instance.CreateButton("btnFactions", "Factions", 100); ButtonWidget btnReturn = UIManager.Instance.CreateButton("btnReturn", "Return", 100); btnGameLog.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnRecentMessage.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnNotes.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnGameConcepts.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnCharacters.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnLocations.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnFactions.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnReturn.MetricMode = GuiMetricsMode.GMM_RELATIVE; panel.AddWidget(1, 1, btnGameLog, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 2, btnRecentMessage, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 3, btnNotes, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 4, btnGameConcepts, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 5, btnCharacters, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 6, btnLocations, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 7, btnFactions, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); panel.AddWidget(1, 8, btnReturn, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); btnGameLog.OnClick += BtnGameLog_OnClick; btnRecentMessage.OnClick += BtnRecentMessage_OnClick; btnNotes.OnClick += BtnNotes_OnClick; btnGameConcepts.OnClick += BtnGameConcepts_OnClick; btnCharacters.OnClick += BtnCharacters_OnClick; btnLocations.OnClick += BtnLocations_OnClick; btnFactions.OnClick += BtnFactions_OnClick; btnReturn.OnClick += BtnReturn_OnClick; BtnFactions_OnClick(btnFactions); }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls(Type entityType, FilterField filterControl) { var rp = new RegistrationTemplatePicker(); rp.ID = filterControl.ID + "_rp"; rp.Label = "RegistrationTemplate(s)"; rp.CssClass = "js-group-picker"; rp.AllowMultiSelect = true; rp.Help = "Select the registration templates that you want the registrants for. Leaving this blank will not restrict results to a registration template."; filterControl.Controls.Add(rp); var cbIncludeInactiveRegistrationInstances = new RockCheckBox(); cbIncludeInactiveRegistrationInstances.ID = filterControl.ID + "_cbIncludeInactiveRegistrationInstances"; cbIncludeInactiveRegistrationInstances.Text = "Include Inactive Registration Instances"; cbIncludeInactiveRegistrationInstances.CssClass = "js-include-inactive-groups"; cbIncludeInactiveRegistrationInstances.AutoPostBack = true; filterControl.Controls.Add(cbIncludeInactiveRegistrationInstances); PanelWidget pwAdvanced = new PanelWidget(); filterControl.Controls.Add(pwAdvanced); pwAdvanced.ID = filterControl.ID + "_pwAttributes"; pwAdvanced.Title = "Advanced Filters"; pwAdvanced.CssClass = "advanced-panel"; SlidingDateRangePicker registeredOnDateRangePicker = new SlidingDateRangePicker(); registeredOnDateRangePicker.ID = pwAdvanced.ID + "_addedOnDateRangePicker"; registeredOnDateRangePicker.AddCssClass("js-sliding-date-range"); registeredOnDateRangePicker.Label = "Date Registered:"; registeredOnDateRangePicker.Help = "Select the date range that the person was registered. Leaving this blank will not restrict results to a date range."; pwAdvanced.Controls.Add(registeredOnDateRangePicker); return(new Control[4] { rp, cbIncludeInactiveRegistrationInstances, registeredOnDateRangePicker, pwAdvanced }); }
private void DoPowerUps(PanelWidget widget) { var checkbox = (PowerUpCheckBox) widget; if (checkbox.Value) Simulator.PowerUpsFactory.Availables.Add(checkbox.PowerUp, Simulator.PowerUpsFactory.Create(checkbox.PowerUp)); else Simulator.PowerUpsFactory.Availables.Remove(checkbox.PowerUp); NotifyEditorCommandExecuted(new EditorCommand("AddOrRemovePowerUp")); }
private void DoTurrets(PanelWidget widget) { var checkbox = (TurretCheckBox) widget; if (checkbox.Value) Simulator.TurretsFactory.Availables.Add(checkbox.Turret.Type, checkbox.Turret); else Simulator.TurretsFactory.Availables.Remove(checkbox.Turret.Type); }
private void DoLevel(PanelWidget widget) { var slider = (NumericHorizontalSlider) widget; Simulator.Level.Mission = Simulator.Level.Mission.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries)[0] + "-" + slider.Value; }
/// <summary> /// Adds the field panel widget. /// </summary> /// <param name="reportFieldGuid">The report field unique identifier.</param> /// <param name="reportFieldType">Type of the report field.</param> /// <param name="fieldSelection">The field selection.</param> /// <param name="showExpanded">if set to <c>true</c> [show expanded].</param> /// <param name="setReportFieldValues">if set to <c>true</c> [set report field values].</param> /// <param name="reportField">The report field.</param> private void AddFieldPanelWidget(Guid reportFieldGuid, ReportFieldType reportFieldType, string fieldSelection, bool showExpanded, bool setReportFieldValues = false, ReportField reportField = null) { int entityTypeId = ddlEntityType.SelectedValueAsInt() ?? 0; if (entityTypeId == 0) { return; } PanelWidget panelWidget = new PanelWidget(); panelWidget.ID = string.Format("reportFieldWidget_{0}", reportFieldGuid.ToString("N")); string fieldTitle = null; DataSelectComponent dataSelectComponent = null; switch (reportFieldType) { case ReportFieldType.Property: var entityType = EntityTypeCache.Read(entityTypeId).GetEntityType(); var entityField = EntityHelper.GetEntityFields(entityType).FirstOrDefault(a => a.Name == fieldSelection); if (entityField != null) { fieldTitle = entityField.Title; } break; case ReportFieldType.Attribute: var attribute = AttributeCache.Read(fieldSelection.AsInteger() ?? 0); if (attribute != null) { fieldTitle = attribute.Name; } break; case ReportFieldType.DataSelectComponent: string dataSelectComponentTypeName = EntityTypeCache.Read(fieldSelection.AsInteger() ?? 0).GetEntityType().FullName; dataSelectComponent = Rock.Reporting.DataSelectContainer.GetComponent(dataSelectComponentTypeName); if (dataSelectComponent != null) { fieldTitle = dataSelectComponent.GetTitle(null); } break; } if (fieldTitle == null) { // return if we can't determine field return; } panelWidget.Title = fieldTitle; panelWidget.ShowDeleteButton = true; panelWidget.DeleteClick += FieldsPanelWidget_DeleteClick; panelWidget.ShowReorderIcon = true; panelWidget.Expanded = showExpanded; HiddenField hfReportFieldType = new HiddenField(); hfReportFieldType.ID = panelWidget.ID + "_hfReportFieldType"; hfReportFieldType.Value = reportFieldType.ConvertToString(); panelWidget.Controls.Add(hfReportFieldType); HiddenField hfFieldSelection = new HiddenField(); hfFieldSelection.ID = panelWidget.ID + "_hfFieldSelection"; hfFieldSelection.Value = fieldSelection; panelWidget.Controls.Add(hfFieldSelection); RockCheckBox showInGridCheckBox = new RockCheckBox(); showInGridCheckBox.ID = panelWidget.ID + "_showInGridCheckBox"; showInGridCheckBox.Text = "Show in Grid"; if (setReportFieldValues) { showInGridCheckBox.Checked = reportField.ShowInGrid; } panelWidget.Controls.Add(showInGridCheckBox); RockTextBox columnHeaderTextTextBox = new RockTextBox(); columnHeaderTextTextBox.ID = panelWidget.ID + "_columnHeaderTextTextBox"; columnHeaderTextTextBox.Label = "Column Label"; if (setReportFieldValues) { columnHeaderTextTextBox.Text = string.IsNullOrWhiteSpace(reportField.ColumnHeaderText) ? fieldTitle : reportField.ColumnHeaderText; } panelWidget.Controls.Add(columnHeaderTextTextBox); if (dataSelectComponent != null) { PlaceHolder phDataSelectControls = new PlaceHolder(); phDataSelectControls.ID = panelWidget.ID + "_phDataSelectControls"; panelWidget.Controls.Add(phDataSelectControls); var dataSelectControls = dataSelectComponent.CreateChildControls(phDataSelectControls); if (setReportFieldValues) { dataSelectComponent.SetSelection(dataSelectControls, reportField.Selection); } } phReportFields.Controls.Add(panelWidget); }
private void DoDelete(PanelWidget widget) { var panel = (LevelsPanel) widget; if (panel.ClickedLevel != null) { var descriptor = Simulator.LevelDescriptor; Main.LevelsFactory.DeleteUserDescriptorFromDisk(descriptor.Infos.Id); Main.LevelsFactory.Descriptors.Remove(descriptor.Infos.Id); ((LevelsPanel) Panels[EditorPanel.Load]).Initialize(); ((LevelsPanel) Panels[EditorPanel.Delete]).Initialize(); } }
private void DoClosePanel(PanelWidget widget) { var closeCommand = new EditorPanelCommand("ClosePanel", OpenedPanel, false) { Owner = CurrentOpenedPanelPlayer }; OpenedPanel = EditorPanel.None; NotifyEditorCommandExecuted(closeCommand); }
public override void Run() { var moddata = ScreenManager.Instance.ModData; chaData = moddata.CharacterInfos.Where(o => o.ID == chaID).FirstOrDefault(); if (chaData == null) { throw new Exception("Character Data can't be null!"); } var skinData = moddata.SkinInfos.Where(o => o.ID == chaData.Skin).FirstOrDefault(); if (skinData == null) { throw new Exception("Character Skin Data can't be null!"); } var idleSkinAnim = skinData[ChaAnimType.CAT_IDLE]; if (idleSkinAnim == null) { throw new Exception("Idle Skin Anim Data can't be null!"); } var idleAnim = moddata.AnimationInfos.Where(o => o.ID == idleSkinAnim.AnimID).FirstOrDefault(); if (idleAnim == null) { throw new Exception("Idle Anim Data can't be null!"); } discordPanel = UIManager.Instance.CreatePanel("discordPanel", 0.3f, 1); discordPanel.Padding.PaddingLeft = 0.01f; discordPanel.Padding.PaddingRight = 0.01f; discordPanel.ChangeRow(UI.ValueType.Abosulte, 0.05f); discordPanel.AddRow(UI.ValueType.Percent); var txtDiscord = UIManager.Instance.CreateStaticText("txtDiscord", "Discord"); txtDiscord.MetricMode = GuiMetricsMode.GMM_RELATIVE; discordInventoryPanel = UIManager.Instance.CreatePanel("discordInventoryPanel", 0.3f, 1, 0, 0, 9, 3); discordPanel.AddWidget(1, 1, txtDiscord, AlignMode.Center); discordPanel.AddWidget(2, 1, discordInventoryPanel, AlignMode.Center, AlignMode.Center, DockMode.Fill); int currRow = 1; int currCol = 1; for (int i = 0; i < 9; i++) { var invSlot = new PanelTemplateWidget("DiscordInvSlot_" + (i + 1).ToString(), "InventorySlot"); discordInventoryPanel.AddWidget(currRow, currCol, invSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); if ((i + 1) % 3 == 0) { currRow++; currCol = 1; } else { currCol++; } } playerPanel = UIManager.Instance.CreatePanel("playerPanel", 0.4f, 1, 0.3f); playerPanel.ChangeRow(UI.ValueType.Abosulte, 0.6f); playerPanel.AddRow(UI.ValueType.Abosulte, 0.4f); playerEquipPanel = UIManager.Instance.CreatePanel("playerEquipPanel", 1, 1); playerEquipPanel.Padding.PaddingLeft = 0.01f; playerEquipPanel.Padding.PaddingRight = 0.01f; playerPreviewPanel = UIManager.Instance.CreatePanel("playerPreviewPanel", 1, 1); playerPreviewPanel.Padding.PaddingLeft = 0.01f; playerPreviewPanel.Padding.PaddingRight = 0.01f; playerPreviewPanel.ChangeCol(UI.ValueType.Abosulte, 0.6f); playerPreviewPanel.AddCol(UI.ValueType.Abosulte, 0.4f); playerPreviewPanel.AddRow(UI.ValueType.Abosulte, 0.05f); playerPreviewPanel.AddRow(UI.ValueType.Abosulte, 0.05f); playerPreviewPanel.AddRow(UI.ValueType.Abosulte, 0.05f); playerPreviewPanel.AddRow(UI.ValueType.Abosulte, 0.05f); playerPreviewPanel.AddRow(UI.ValueType.Abosulte, 0.1f); playerEquipPanel.ChangeRow(UI.ValueType.Abosulte, 0.05f); playerEquipPanel.AddRow(UI.ValueType.Percent); playerEquipPanel.AddRow(UI.ValueType.Percent); playerEquipPanel.AddRow(UI.ValueType.Percent); playerEquipPanel.AddRow(UI.ValueType.Percent); playerEquipPanel.AddCol(UI.ValueType.Percent); playerEquipPanel.AddCol(UI.ValueType.Percent); playerPanel.AddWidget(1, 1, playerEquipPanel, AlignMode.Left, AlignMode.Center, DockMode.Fill); playerPanel.AddWidget(2, 1, playerPreviewPanel, AlignMode.Left, AlignMode.Center, DockMode.Fill); var txtOutfit = UIManager.Instance.CreateStaticText("txtOutfit", "Outfit"); var txtArms = UIManager.Instance.CreateStaticText("txtArms", "Arms"); txtOutfit.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtArms.MetricMode = GuiMetricsMode.GMM_RELATIVE; playerEquipPanel.AddWidget(1, 2, txtOutfit, AlignMode.Center); playerEquipPanel.AddWidget(1, 3, txtArms, AlignMode.Center); for (int i = 0; i < 9; i++) { var equipSlot = new PanelTemplateWidget("EquipSlot_" + (i + 1).ToString(), "InventorySlot"); switch (i) { case 0: playerEquipPanel.AddWidget(2, 2, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 1: playerEquipPanel.AddWidget(3, 2, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 2: playerEquipPanel.AddWidget(4, 2, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 3: playerEquipPanel.AddWidget(5, 1, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 4: playerEquipPanel.AddWidget(2, 3, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 5: playerEquipPanel.AddWidget(3, 3, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 6: playerEquipPanel.AddWidget(4, 3, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 7: playerEquipPanel.AddWidget(3, 1, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; case 8: playerEquipPanel.AddWidget(5, 3, equipSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); break; } } meshLayer = OverlayManager.Singleton.Create("CharacterPreview"); meshLayer.ZOrder = (ushort)(UIManager.Instance.GetCursorContainer().ZOrder - 1); gameObject = new Character(world, chaData, skinData, new Mogre.Vector3(), true); float length = gameObject.Mesh.Entity.BoundingBox.Size.Length * 2; gameObject.Mesh.Entity.RenderQueueGroup = (byte)RenderQueueGroupID.RENDER_QUEUE_MAX; gameObject.Mesh.EntityNode.Translate(new Mogre.Vector3(-2f, -6.3f, -1.0f * length)); gameObject.Mesh.EntityNode.Scale(0.7f, 0.8f, 0.8f); meshLayer.Add3D(gameObject.MeshNode); meshLayer.Show(); var txtPreviewHeadArmourTotal = UIManager.Instance.CreateStaticText("txtPreviewHeadArmourTotal", "Head Armour Total: 0"); var txtPreviewBodyArmourTotal = UIManager.Instance.CreateStaticText("txtPreviewBodyArmourTotal", "Body Armour Total: 0"); var txtPreviewLegArmourTotal = UIManager.Instance.CreateStaticText("txtPreviewLegArmourTotal", "Leg Armour Total: 0"); var txtPreviewEncumbrance = UIManager.Instance.CreateStaticText("txtPreviewEncumbrance", "Encumbrance: 0"); txtPreviewHeadArmourTotal.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtPreviewBodyArmourTotal.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtPreviewLegArmourTotal.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtPreviewEncumbrance.MetricMode = GuiMetricsMode.GMM_RELATIVE; var btnReturn = UIManager.Instance.CreateButton("btnInventoryReturn", "Return", 200); btnReturn.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnReturn.OnClick += (sender) => { ScreenManager.Instance.ChangeScreenReturn(); }; playerPreviewPanel.AddWidget(2, 2, txtPreviewHeadArmourTotal, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); playerPreviewPanel.AddWidget(3, 2, txtPreviewBodyArmourTotal, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); playerPreviewPanel.AddWidget(4, 2, txtPreviewLegArmourTotal, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); playerPreviewPanel.AddWidget(5, 2, txtPreviewEncumbrance, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); playerPreviewPanel.AddWidget(6, 2, btnReturn, AlignMode.Center, AlignMode.Center, DockMode.FillWidth); backpackPanel = UIManager.Instance.CreatePanel("backpackPanel", 0.3f, 1, 0.7f, 0); backpackPanel.Padding.PaddingRight = 0.01f; backpackPanel.Padding.PaddingLeft = 0.01f; backpackPanel.ChangeRow(UI.ValueType.Abosulte, 0.05f); backpackPanel.AddRow(UI.ValueType.Percent); backpackPanel.AddRow(UI.ValueType.Abosulte, 0.03f); var txtInvTitle = UIManager.Instance.CreateStaticText("txtInvTitle", "Inventory"); txtInvTitle.MetricMode = GuiMetricsMode.GMM_RELATIVE; backpackInventoryPanel = UIManager.Instance.CreateScrollablePanel("backpackInventoryPanel", 1, 1, 0, 0, 20, 3); backpackPanel.AddWidget(1, 1, txtInvTitle, AlignMode.Center, AlignMode.Center, DockMode.Fill); backpackPanel.AddWidget(2, 1, backpackInventoryPanel, AlignMode.Center, AlignMode.Center, DockMode.Fill); int curRow = 1; int curCol = 1; for (int i = 0; i < 60; i++) { var invSlot = new PanelTemplateWidget("InvSlot_" + (i + 1).ToString(), "InventorySlot"); invSlot.Height = 0.1f; backpackInventoryPanel.ChangeRow(UI.ValueType.Abosulte, invSlot.Height, curRow); backpackInventoryPanel.AddWidget(curRow, curCol, invSlot, AlignMode.Center, AlignMode.Center, DockMode.Fill); if ((i + 1) % 3 == 0) { curRow++; curCol = 1; } else { curCol++; } } }
private void DoPanelClosed(PanelWidget widget) { if (Panels[PanelType.Options].Visible) { ((OptionsPanel) Panels[PanelType.Options]).SaveOnDisk(); } if (!Simulator.DemoMode && !Panels[PanelType.Pause].Visible) { ShowPanel(PanelType.Pause); } else { Simulator.TriggerNewGameState(GameState.Running); Simulator.CanSelectCelestialBodies = true; } }
private void BuildWidigityItemAttibutes(Widgity widgity, bool setValues) { pnlItems = new Panel(); pnlMenu.Controls.Add(pnlItems); var widgityType = WidgityTypeCache.Get(widgity.WidgityTypeId); if (widgityType.HasItems) { pnlItems.CssClass = "widgityItemControls"; var widgityItems = WidgityItems[widgity.Guid]; if (widgityItems.Any()) { foreach (var widgityItem in widgityItems) { Panel panel = new Panel(); pnlItems.Controls.Add(panel); panel.Attributes["data-component-id"] = widgityItem.Guid.ToString(); PanelWidget panelWidget = new PanelWidget { ID = string.Format("pnlItem_{0}", widgityItem.Guid), }; panel.Controls.Add(panelWidget); if (ExpandedPanels != null && ExpandedPanels.Contains(widgityItem.Guid)) { panelWidget.Expanded = true; } if (widgityItem.AttributeValues.Any()) { panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> " + widgityItem.AttributeValues.FirstOrDefault().Value.ValueFormatted; } else { panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> "; } HiddenField hiddenField = new HiddenField { ID = string.Format("hfItem_{0}", widgityItem.Guid), Value = widgityItem.Guid.ToString() }; panelWidget.Controls.Add(hiddenField); PlaceHolder phItemAttributes = new PlaceHolder { ID = string.Format("phItem_{0}", widgityItem.Guid) }; panelWidget.Controls.Add(phItemAttributes); LinkButton linkButton = new LinkButton() { ID = string.Format("btnRemove_{0}", widgityItem.Guid), CssClass = "btn btn-danger btn-xs", Text = "Remove Item" }; panelWidget.Controls.Add(linkButton); linkButton.Click += (s, e) => { DeleteWidgityItem(widgityItem.Guid); }; Rock.Attribute.Helper.AddEditControls(widgityItem, phItemAttributes, setValues, this.ID + "ValidationGroup"); } } else { pnlItems.Controls.Add(new Literal { Text = "<i>No items. Click Add Item to add a new item to this widgity.</i>" }); } LinkButton btnAddButton = new LinkButton { ID = this.ID + "_AddItem", Text = "Add Item", CssClass = "btn btn-default btn-xs", CausesValidation = false }; pnlMenu.Controls.Add(btnAddButton); btnAddButton.Click += BtnAddButton_Click; } }
private void ShowWidgityTypes() { var widgityTypes = WidgityTypeCache.All() .Where(wt => wt.EntityTypes.Select(e => e.Id).Contains(EntityTypeId)).ToList(); if (!widgityTypes.Any()) { NotificationBox notification = new NotificationBox { NotificationBoxType = NotificationBoxType.Warning, Text = "There are no widgity types for this entity type: " + EntityTypeCache.Get(EntityTypeId)?.FriendlyName }; pnlMenu.Controls.Add(notification); return; } var categories = widgityTypes .Where(wt => wt.Category != null) .Select(wt => wt.Category) .DistinctBy(c => c.Id) .ToList(); foreach (var category in categories) { PanelWidget panelWidget = new PanelWidget { ID = this.ID + "_pwCategory_" + category.Id.ToString(), Title = category.Name }; pnlMenu.Controls.Add(panelWidget); var dragContainer = new Panel { ID = this.ID + "_pnlWidgityContainer_" + category.Id.ToString(), CssClass = "widgitySource" }; panelWidget.Controls.Add(dragContainer); var categoryTypes = widgityTypes.Where(wt => wt.CategoryId == category.Id).ToList(); foreach (var widgityType in categoryTypes) { HtmlGenericContainer item = new HtmlGenericContainer("div"); item.InnerHtml = string.Format("<i class='{0}'></i><br />{1}", widgityType.Icon, widgityType.Name); item.Attributes.Add("data-component-id", widgityType.Id.ToString()); item.CssClass = "btn btn-default btn-block"; dragContainer.Controls.Add(item); } } var noCategoryTypes = widgityTypes.Where(wt => wt.Category == null).ToList(); if (noCategoryTypes.Any()) { var dragContainerOther = new Panel { ID = this.ID + "_pnlWidgityContainer_other", CssClass = "widgitySource" }; if (categories.Any()) { PanelWidget panelWidgetOther = new PanelWidget { ID = this.ID + "_pwCategory_Other", Title = "Other" }; pnlMenu.Controls.Add(panelWidgetOther); panelWidgetOther.Controls.Add(dragContainerOther); } else { pnlMenu.Controls.Add(dragContainerOther); } foreach (var widgityType in noCategoryTypes) { HtmlGenericContainer item = new HtmlGenericContainer("div") { InnerHtml = string.Format("<i class='{0}'></i><br />{1}", widgityType.Icon, widgityType.Name) }; item.Attributes.Add("data-component-id", widgityType.Id.ToString()); dragContainerOther.Controls.Add(item); } } if (ShowPublishButtons) { HtmlGenericContainer hr = new HtmlGenericContainer("hr"); pnlMenu.Controls.Add(hr); BootstrapButton btnSave = new BootstrapButton { CssClass = "btn btn-primary", Text = "Publish", ID = this.ID + "_btnSave", ValidationGroup = this.ID + "ValidationGroup" }; pnlMenu.Controls.Add(btnSave); btnSave.Click += BtnSave_Click; LinkButton btnCancel = new LinkButton { ID = this.ID + "_btnCancel", Text = "Cancel", CssClass = "btn btn-link" }; pnlMenu.Controls.Add(btnCancel); btnCancel.Click += BtnCancel_Click; } }
private void CreateGrids(RockContext rockContext) { if (ContentChannels.Any()) { this.Visible = true; phContentChannelGrids.Controls.Clear(); foreach (var contentChannel in ContentChannels) { bool canEdit = UserCanEdit || contentChannel.IsAuthorized(Authorization.EDIT, CurrentPerson); string iconClass = "fa fa-bullhorn"; if (!string.IsNullOrWhiteSpace(contentChannel.IconCssClass)) { iconClass = contentChannel.IconCssClass; } var pwItems = new PanelWidget(); phContentChannelGrids.Controls.Add(pwItems); pwItems.ID = string.Format("pwItems_{0}", contentChannel.Id); pwItems.Title = string.Format("<i class='{0}'></i> {1}", iconClass, contentChannel.Name); pwItems.Expanded = ExpandedPanels.Contains(contentChannel.Id); var divItems = new HtmlGenericControl("div"); pwItems.Controls.Add(divItems); divItems.ID = string.Format("divItems_{0}", contentChannel.Id); divItems.AddCssClass("grid"); divItems.AddCssClass("grid-panel"); Grid gItems = new Grid(); divItems.Controls.Add(gItems); gItems.ID = string.Format("gItems_{0}", contentChannel.Id); gItems.DataKeyNames = new string[] { "Id" }; gItems.EmptyDataText = "No Items Found"; gItems.RowItemText = "Item"; gItems.AllowSorting = true; gItems.Actions.ShowAdd = canEdit; gItems.IsDeleteEnabled = canEdit; gItems.Actions.AddClick += gItems_Add; gItems.RowSelected += gItems_Edit; gItems.GridRebind += gItems_GridRebind; // // Add the "Link Existing Item" button. // if (OccurrenceId.HasValue) { var lbtnLinkExisting = new LinkButton(); lbtnLinkExisting.Attributes.Add("title", "Link Existing Item"); lbtnLinkExisting.CommandArgument = contentChannel.Id.ToString(); lbtnLinkExisting.CssClass = "btn btn-default btn-sm"; lbtnLinkExisting.Click += lbtnLinkExisting_Click; lbtnLinkExisting.Text = "<i class='fa fa-link'></i>"; gItems.Actions.AddCustomActionControl(lbtnLinkExisting); } gItems.Columns.Add(new RockBoundField { DataField = "Title", HeaderText = "Title", SortExpression = "Title" }); if (contentChannel.ContentChannelType.DateRangeType != ContentChannelDateType.NoDates) { RockBoundField startDateTimeField; RockBoundField expireDateTimeField; if (contentChannel.ContentChannelType.IncludeTime) { startDateTimeField = new DateTimeField(); expireDateTimeField = new DateTimeField(); } else { startDateTimeField = new DateField(); expireDateTimeField = new DateField(); } startDateTimeField.DataField = "StartDateTime"; startDateTimeField.HeaderText = contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange ? "Start" : "Active"; startDateTimeField.SortExpression = "StartDateTime"; gItems.Columns.Add(startDateTimeField); expireDateTimeField.DataField = "ExpireDateTime"; expireDateTimeField.HeaderText = "Expire"; expireDateTimeField.SortExpression = "ExpireDateTime"; if (contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange) { gItems.Columns.Add(expireDateTimeField); } } if (!contentChannel.ContentChannelType.DisablePriority) { var priorityField = new RockBoundField { DataField = "Priority", HeaderText = "Priority", SortExpression = "Priority", DataFormatString = "{0:N0}", }; priorityField.ItemStyle.HorizontalAlign = HorizontalAlign.Right; gItems.Columns.Add(priorityField); } // Add attribute columns int entityTypeId = EntityTypeCache.Read(typeof(Rock.Model.ContentChannelItem)).Id; string qualifier = contentChannel.ContentChannelTypeId.ToString(); foreach (var attribute in new AttributeService(rockContext).Queryable() .Where(a => a.EntityTypeId == entityTypeId && a.IsGridColumn && a.EntityTypeQualifierColumn.Equals("ContentChannelTypeId", StringComparison.OrdinalIgnoreCase) && a.EntityTypeQualifierValue.Equals(qualifier)) .OrderBy(a => a.Order) .ThenBy(a => a.Name)) { string dataFieldExpression = attribute.Key; bool columnExists = gItems.Columns.OfType <AttributeField>().FirstOrDefault(a => a.DataField.Equals(dataFieldExpression)) != null; if (!columnExists) { AttributeField boundField = new AttributeField(); boundField.DataField = dataFieldExpression; boundField.AttributeId = attribute.Id; boundField.HeaderText = attribute.Name; var attributeCache = Rock.Web.Cache.AttributeCache.Read(attribute.Id); if (attributeCache != null) { boundField.ItemStyle.HorizontalAlign = attributeCache.FieldType.Field.AlignValue; } gItems.Columns.Add(boundField); } } if (contentChannel.RequiresApproval && !contentChannel.ContentChannelType.DisableStatus) { var statusField = new BoundField(); gItems.Columns.Add(statusField); statusField.DataField = "Status"; statusField.HeaderText = "Status"; statusField.SortExpression = "Status"; statusField.HtmlEncode = false; } var deleteField = new DeleteField(); gItems.Columns.Add(deleteField); deleteField.Click += gItems_Delete; } } else { this.Visible = false; } }
private void DoBackgrounds(PanelWidget widget) { var img = (ImageWidget) ((GridPanel) widget).LastClickedWidget; Simulator.Level.Background = new Image(img.Image.TextureName) { VisualPriority = Preferences.PrioriteFondEcran }; }
public override void Run() { gameMainPanel = UIManager.Instance.CreatePanel("gameMainPanel", 1.0f, 0.08f, 0.0f, 0.92f); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Percent); gameMainPanel.AddCol(ValueType.Abosulte, 0.1f); gameMainPanel.AddCol(ValueType.Abosulte, 180); btnTerrain = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnTerrain", "Terrain", 150); btnTerrain.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnTerrain.Top = 0.025f; btnTerrain.OnClick += BtnTerrain_OnClick; gameMainPanel.AddWidget(1, 1, btnTerrain, AlignMode.Left, AlignMode.Center, DockMode.FillWidth); if (!GameManager.Instance.IS_ENABLE_EDIT_MODE) { btnTerrain.Hide(); } btnCamp = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnCamp", "Camp", 150); btnCamp.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnCamp.Top = 0.025f; btnCamp.OnClick += BtnCamp_OnClick; gameMainPanel.AddWidget(1, 2, btnCamp); btnReports = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnReports", "Reports", 150); btnReports.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnReports.OnClick += BtnReports_OnClick; btnReports.Top = 0.025f; gameMainPanel.AddWidget(1, 3, btnReports, AlignMode.Left, AlignMode.Center, DockMode.FillWidth); btnNotes = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnNotes", "Notes", 150); btnNotes.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnNotes.Top = 0.025f; btnNotes.OnClick += BtnNotes_OnClick; gameMainPanel.AddWidget(1, 4, btnNotes); btnInventory = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnInventory", "Inventory", 150); btnInventory.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnInventory.Top = 0.025f; btnInventory.OnClick += BtnInventory_OnClick; gameMainPanel.AddWidget(1, 5, btnInventory, AlignMode.Left, AlignMode.Center, DockMode.FillWidth); btnCharacter = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnCharacter", "Characters", 150); btnCharacter.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnCharacter.Top = 0.025f; btnCharacter.OnClick += BtnCharacter_OnClick; gameMainPanel.AddWidget(1, 6, btnCharacter); btnParty = UIManager.Instance.CreateButton(UIWidgetLocation.TL_NONE, "btnParty", "Party", 150); btnParty.MetricMode = GuiMetricsMode.GMM_RELATIVE; btnParty.Top = 0.025f; btnParty.OnClick += BtnParty_OnClick; gameMainPanel.AddWidget(1, 7, btnParty, AlignMode.Left, AlignMode.Center, DockMode.FillWidth); txtCurrentDate = UIManager.Instance.CreateStaticText("gameDate", TimerManager.Instance.GetDate()); txtCurrentTime = UIManager.Instance.CreateStaticText("gameTime", TimerManager.Instance.CurrentTime.ToString()); txtCurrentDate.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtCurrentTime.MetricMode = GuiMetricsMode.GMM_RELATIVE; txtCurrentDate.Top = 0.015f; txtCurrentTime.Top = 0.03f; gameMainPanel.AddWidget(1, 9, txtCurrentDate); gameMainPanel.AddWidget(1, 9, txtCurrentTime); }
private void DoWaves(PanelWidget widget) { // Prepare the waves List<WaveDescriptor> descriptors = new List<WaveDescriptor>(); var panel = Panels[EditorPanel.Waves]; foreach (var w in panel.Widgets) { var subPanel = (WaveSubPanel) w.Value; if (subPanel.EnemiesCount != 0 && subPanel.Quantity != 0) descriptors.Add(subPanel.GenerateDescriptor()); } Simulator.Level.Waves.Clear(); foreach (var wd in descriptors) Simulator.Level.Waves.AddLast(new Wave(Simulator, wd)); }
private void DoBulletDamage(PanelWidget widget) { var slider = (NumericHorizontalSlider) widget; var command = new EditorPlayerCommand("AddOrRemoveBulletDamage") { BulletDamage = slider.Value / 10f, Owner = CurrentOpenedPanelPlayer }; NotifyEditorCommandExecuted(command); }
private void DoLoad(PanelWidget widget) { var panel = (LevelsPanel) widget; if (panel.ClickedLevel != null) { Simulator.LevelDescriptor = panel.ClickedLevel; Simulator.Initialize(); Simulator.SyncPlayers(); } }
private void DoLifePacks(PanelWidget widget) { var slider = (NumericHorizontalSlider) widget; var command = new EditorPlayerCommand("AddOrRemoveLifePacks") { LifePacks = slider.Value, Owner = CurrentOpenedPanelPlayer }; NotifyEditorCommandExecuted(command); }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls(Type entityType, FilterField filterControl) { var gp = new GroupPicker(); gp.ID = filterControl.ID + "_gp"; gp.Label = "Group(s)"; gp.SelectItem += gp_SelectItem; gp.CssClass = "js-group-picker"; gp.AllowMultiSelect = true; filterControl.Controls.Add(gp); var cbChildGroups = new RockCheckBox(); cbChildGroups.ID = filterControl.ID + "_cbChildsGroups"; cbChildGroups.Text = "Include Child Group(s)"; cbChildGroups.CssClass = "js-include-child-groups"; cbChildGroups.AutoPostBack = true; cbChildGroups.CheckedChanged += gp_SelectItem; filterControl.Controls.Add(cbChildGroups); var cbIncludeSelectedGroup = new RockCheckBox(); cbIncludeSelectedGroup.ID = filterControl.ID + "_cbIncludeSelectedGroup"; cbIncludeSelectedGroup.Text = "Include Selected Group(s)"; cbIncludeSelectedGroup.CssClass = "js-include-selected-groups"; cbIncludeSelectedGroup.AutoPostBack = true; cbIncludeSelectedGroup.CheckedChanged += gp_SelectItem; filterControl.Controls.Add(cbIncludeSelectedGroup); var cbChildGroupsPlusDescendants = new RockCheckBox(); cbChildGroupsPlusDescendants.ID = filterControl.ID + "_cbChildGroupsPlusDescendants"; cbChildGroupsPlusDescendants.Text = "Include All Descendants(s)"; cbChildGroupsPlusDescendants.CssClass = "js-include-child-groups-descendants"; cbChildGroupsPlusDescendants.AutoPostBack = true; cbChildGroupsPlusDescendants.CheckedChanged += gp_SelectItem; filterControl.Controls.Add(cbChildGroupsPlusDescendants); var cbIncludeInactiveGroups = new RockCheckBox(); cbIncludeInactiveGroups.ID = filterControl.ID + "_cbIncludeInactiveGroups"; cbIncludeInactiveGroups.Text = "Include Inactive Groups"; cbIncludeInactiveGroups.CssClass = "js-include-inactive-groups"; cbIncludeInactiveGroups.AutoPostBack = true; cbIncludeInactiveGroups.CheckedChanged += gp_SelectItem; filterControl.Controls.Add(cbIncludeInactiveGroups); var cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Member Role(s) (optional)"; cblRole.ID = filterControl.ID + "_cblRole"; cblRole.CssClass = "js-roles"; cblRole.Visible = false; filterControl.Controls.Add(cblRole); RockDropDownList ddlGroupMemberStatus = new RockDropDownList(); ddlGroupMemberStatus.CssClass = "js-group-member-status"; ddlGroupMemberStatus.ID = filterControl.ID + "_ddlGroupMemberStatus"; ddlGroupMemberStatus.Label = "with Group Member Status"; ddlGroupMemberStatus.Help = "Select a specific group member status to only include group members with that status. Leaving this blank will return all members."; ddlGroupMemberStatus.BindToEnum <GroupMemberStatus>(true); ddlGroupMemberStatus.SetValue(GroupMemberStatus.Active.ConvertToInt()); filterControl.Controls.Add(ddlGroupMemberStatus); PanelWidget pwAdvanced = new PanelWidget(); filterControl.Controls.Add(pwAdvanced); pwAdvanced.ID = filterControl.ID + "_pwAttributes"; pwAdvanced.Title = "Advanced Filters"; pwAdvanced.CssClass = "advanced-panel"; SlidingDateRangePicker addedOnDateRangePicker = new SlidingDateRangePicker(); addedOnDateRangePicker.ID = pwAdvanced.ID + "_addedOnDateRangePicker"; addedOnDateRangePicker.AddCssClass("js-dateadded-sliding-date-range"); addedOnDateRangePicker.Label = "Date Added:"; addedOnDateRangePicker.Help = "Select the date range that the person was added to the group. Leaving this blank will not restrict results to a date range."; pwAdvanced.Controls.Add(addedOnDateRangePicker); SlidingDateRangePicker firstAttendanceDateRangePicker = new SlidingDateRangePicker(); firstAttendanceDateRangePicker.ID = filterControl.ID + "_firstAttendanceDateRangePicker"; firstAttendanceDateRangePicker.AddCssClass("js-firstattendance-sliding-date-range"); firstAttendanceDateRangePicker.Label = "First Attendance"; firstAttendanceDateRangePicker.Help = "The date range of the first attendance using the 'Sunday Date' of each attendance"; pwAdvanced.Controls.Add(firstAttendanceDateRangePicker); SlidingDateRangePicker lastAttendanceDateRangePicker = new SlidingDateRangePicker(); lastAttendanceDateRangePicker.ID = filterControl.ID + "_lastAttendanceDateRangePicker"; lastAttendanceDateRangePicker.AddCssClass("js-lastattendance-sliding-date-range"); lastAttendanceDateRangePicker.Label = "Last Attendance"; lastAttendanceDateRangePicker.Help = "The date range of the last attendance using the 'Sunday Date' of each attendance"; pwAdvanced.Controls.Add(lastAttendanceDateRangePicker); return(new Control[11] { gp, cbChildGroups, cbIncludeSelectedGroup, cbChildGroupsPlusDescendants, cblRole, ddlGroupMemberStatus, cbIncludeInactiveGroups, addedOnDateRangePicker, pwAdvanced, firstAttendanceDateRangePicker, lastAttendanceDateRangePicker }); }
private void DoDifficulty(PanelWidget widget) { var slider = (ChoicesHorizontalSlider) widget; Simulator.Level.Difficulty = slider.Value; }
/// <summary> /// Adds all out subwidgets /// </summary> protected void BuildForm() { m_rootWidget = new SimpleTreeNodeWidget(); m_rootWidget.Name = "CollabSpace"; m_rootWidget.IsRadioButton = true; m_rootWidget.Enabled = true; m_rootWidget.EnableCheck = false; m_rootWidget.IsChecked = false; m_rootWidget.Expanded = true; // Settings for sharing whiteboard info // m_sharingWidget = new SimpleTreeNodeWidget(); // m_sharingWidget.Name = "Settings"; // m_sharingWidget.IsRadioButton = true; // m_sharingWidget.Enabled = true; // m_sharingWidget.EnableCheck = false; // m_sharingWidget.IsChecked = true; // Add(m_sharingWidget); // // m_cameraWidget = new SimpleTreeNodeWidget(); // m_cameraWidget.Name = "Allow Camera Sharing"; // m_cameraWidget.Enabled = true; // m_cameraWidget.EnableCheck = false; // m_cameraWidget.IsChecked = false; // m_sharingWidget.Add(m_cameraWidget); // // m_whiteboardWidget = new SimpleTreeNodeWidget(); // m_whiteboardWidget.Name = "Allow Whiteboard Sharing"; // m_whiteboardWidget.Enabled = true; // m_whiteboardWidget.EnableCheck = false; // m_whiteboardWidget.IsChecked = false; // m_sharingWidget.Add(m_whiteboardWidget); // Drawing tool widgets m_drawWidget = new SimpleTreeNodeWidget(); m_drawWidget.Name = "Drawing Tools"; m_drawWidget.IsRadioButton = true; m_drawWidget.Enabled = true; m_drawWidget.EnableCheck = false; m_drawWidget.IsChecked = false; m_drawWidget.Expanded = true; m_rootWidget.Add(m_drawWidget); m_shapeWidget = new SimpleTreeNodeWidget(); m_shapeWidget.Name = "Shape Palette"; m_shapeWidget.IsRadioButton = true; m_shapeWidget.Enabled = true; m_shapeWidget.EnableCheck = false; m_shapeWidget.IsChecked = false; m_shapeWidget.Expanded = true; m_drawWidget.Add(m_shapeWidget); m_shapePalette = new PanelWidget("Shape Box"); m_shapePalette.Location = new System.Drawing.Point(0, 0); m_shapePalette.WidgetSize = new System.Drawing.Size(104, 64); m_shapePalette.HeaderEnabled = false; m_shapeWidget.Add(m_shapePalette); m_lockButton = new ButtonWidget(); m_lockButton.Location = new System.Drawing.Point(4, 4); m_lockButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\lock_open.png"; m_lockButton.WidgetSize = new System.Drawing.Size(16, 16); m_lockButton.CountHeight = true; m_lockButton.CountWidth = true; m_lockButton.LeftClickAction = new MFW3D.NewWidgets.MouseClickAction(this.PerformLock); m_shapePalette.Add(m_lockButton); m_paletteButton = new ButtonWidget(); m_paletteButton.Location = new System.Drawing.Point(24, 4); m_paletteButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\palette.png"; m_paletteButton.WidgetSize = new System.Drawing.Size(16, 16); m_paletteButton.CountHeight = true; m_paletteButton.CountWidth = true; // m_paletteButton.LeftClickAction = new MouseClickAction(this.PerformColorPalette); // m_shapePalette.Add(m_paletteButton); m_hotspotButton = new ButtonWidget(); m_hotspotButton.Location = new System.Drawing.Point(4, 44); m_hotspotButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\flag_red.png"; m_hotspotButton.WidgetSize = new System.Drawing.Size(16, 16); m_hotspotButton.CountHeight = true; m_hotspotButton.CountWidth = true; m_hotspotButton.LeftClickAction = new MFW3D.NewWidgets.MouseClickAction(this.PerformHotspot); m_shapePalette.Add(m_hotspotButton); m_postitButton = new ButtonWidget(); m_postitButton.Location = new System.Drawing.Point(24, 44); m_postitButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\comment.png"; m_postitButton.WidgetSize = new System.Drawing.Size(16, 16); m_postitButton.CountHeight = true; m_postitButton.CountWidth = true; // m_postitButton.LeftClickAction = new MouseClickAction(this.PerformColorPalette); // m_shapePalette.Add(m_postitButton); m_polygonButton = new ButtonWidget(); m_polygonButton.Location = new System.Drawing.Point(44, 44); m_polygonButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\shape_handles.png"; m_polygonButton.WidgetSize = new System.Drawing.Size(16, 16); m_polygonButton.CountHeight = true; m_polygonButton.CountWidth = true; m_polygonButton.LeftClickAction = new MFW3D.NewWidgets.MouseClickAction(this.PerformPolygon); m_shapePalette.Add(m_polygonButton); m_polylineButton = new ButtonWidget(); m_polylineButton.Location = new System.Drawing.Point(64, 44); m_polylineButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\chart_line.png"; m_polylineButton.WidgetSize = new System.Drawing.Size(16, 16); m_polylineButton.CountHeight = true; m_polylineButton.CountWidth = true; m_polylineButton.LeftClickAction = new MFW3D.NewWidgets.MouseClickAction(this.PerformPolyline); m_shapePalette.Add(m_polylineButton); m_freehandButton = new ButtonWidget(); m_freehandButton.Location = new System.Drawing.Point(84, 44); m_freehandButton.ImageName = m_basePath + @"\Plugins\Whiteboard\" + @"\images\icons\pencil.png"; m_freehandButton.WidgetSize = new System.Drawing.Size(16, 16); m_freehandButton.CountHeight = true; m_freehandButton.CountWidth = true; m_freehandButton.LeftClickAction = new MFW3D.NewWidgets.MouseClickAction(this.PerformFreehand); m_shapePalette.Add(m_freehandButton); m_colorWidget = new SimpleTreeNodeWidget(); m_colorWidget.Name = "Color Palette"; m_colorWidget.IsRadioButton = true; m_colorWidget.Enabled = false; m_colorWidget.EnableCheck = false; m_colorWidget.IsChecked = false; m_drawWidget.Add(m_colorWidget); m_colorPalette = new PanelWidget("Color Box"); m_colorPalette.Location = new System.Drawing.Point(0, 0); m_colorPalette.WidgetSize = new System.Drawing.Size(125, 80); m_colorPalette.HeaderEnabled = false; m_colorWidget.Add(m_colorPalette); m_iconWidget = new SimpleTreeNodeWidget(); m_iconWidget.Name = "Icon Palette"; m_iconWidget.IsRadioButton = true; m_iconWidget.Enabled = true; m_iconWidget.EnableCheck = false; m_iconWidget.IsChecked = false; m_drawWidget.Add(m_iconWidget); //m_iconWidget.Add(m_iconPalette); Add(m_rootWidget); }
private PanelWidget AddCommunicationPanel(Group group, GroupMember member, bool insertValues) { PanelWidget panelWidget = new PanelWidget { ID = "pnl+" + group.Id.ToString() + "panel", Title = group.Name }; phGroups.Controls.Add(panelWidget); group.LoadAttributes(); if (group.GetAttributeValue("PublicName").IsNotNullOrWhiteSpace()) { panelWidget.Title = group.GetAttributeValue("PublicName"); } var type = group.GetAttributeValue(GetAttributeValue("AttributeKey")); if (type.IsNullOrWhiteSpace()) { type = "Text Message,Email"; } type = string.Join(", ", type.SplitDelimitedValues(false)); var text = string.Format("<small>{0}</small><p>{1}</p>", type, group.Description ); Literal literal = new Literal { Text = text }; panelWidget.Controls.Add(literal); var showAttributes = false; Panel pnlToggle = new Panel { ID = "pnlToggle_" + panelWidget.ID, CssClass = "btn-group btn-toggle" }; panelWidget.Controls.Add(pnlToggle); if (member.PersonId == Person.Id) { showAttributes = true; LinkButton off = new LinkButton { ID = "btnOff" + panelWidget.ID, CssClass = "btn btn-default btn-xs", Text = "Unsubscribe", CausesValidation = false }; pnlToggle.Controls.Add(off); off.Click += (s, e) => { Unsubscribe(group.Id); }; HtmlGenericContainer on = new HtmlGenericContainer { TagName = "div", CssClass = "btn btn-success btn-xs", InnerText = "Subscribed" }; pnlToggle.Controls.Add(on); } else { HtmlGenericContainer off = new HtmlGenericContainer { TagName = "div", CssClass = "btn btn-danger btn-xs", InnerText = "Unsubscribed" }; pnlToggle.Controls.Add(off); LinkButton on = new LinkButton { ID = "btnOn" + panelWidget.ID, CssClass = "btn btn-default btn-xs", Text = "Subscribe", CausesValidation = false }; pnlToggle.Controls.Add(on); on.Click += (s, e) => { Subscribe(group.Id); }; } member.LoadAttributes(); member.Attributes = member.Attributes.Where(a => a.Value.IsGridColumn).ToDictionary(a => a.Key, a => a.Value); if (member.Attributes.Any()) { Literal attributeTitle = new Literal { ID = "ltAttTitle_" + panelWidget.ID, Text = "<h3>Subscription Settings</h3>", Visible = showAttributes }; panelWidget.Controls.Add(attributeTitle); var attributePlaceholder = new PlaceHolder { ID = "phAtt_" + panelWidget.ID, Visible = showAttributes }; panelWidget.Controls.Add(attributePlaceholder); Rock.Attribute.Helper.AddEditControls(member, attributePlaceholder, insertValues); BootstrapButton btnSave = new BootstrapButton { ID = "btnSave_" + panelWidget.ID, Text = "Update Settings", CssClass = "btn btn-primary btn-xs", Visible = showAttributes }; panelWidget.Controls.Add(btnSave); btnSave.Click += (s, e) => { UpdateSettings(member, attributePlaceholder); btnSave.Text = "Saved"; }; } return(panelWidget); }
private void DoPausePanelClicked(PanelWidget widget) { if (widget.Name == "Help") { ShowPanel(PanelType.Help); } else if (widget.Name == "Controls") { ShowPanel(PanelType.Controls); } else if (widget.Name == "Restart") { Simulator.TriggerNewGameState(GameState.Restart); } else if (widget.Name == "Options") { ShowPanel(PanelType.Options); } else if (widget.Name == "GoBackToWorld") { Simulator.TriggerNewGameState(GameState.PausedToWorld); Simulator.CanSelectCelestialBodies = true; } else if (widget.Name == "Resume") { Simulator.TriggerNewGameState(GameState.Running); Simulator.CanSelectCelestialBodies = true; } }
private void CreateGrids(RockContext rockContext) { if (ContentChannels.Any()) { this.Visible = true; // TODO: security bool canEdit = true; phContentChannelGrids.Controls.Clear(); foreach (var contentChannel in ContentChannels) { var pwItems = new PanelWidget(); phContentChannelGrids.Controls.Add(pwItems); pwItems.ID = string.Format("pwItems_{0}", contentChannel.Id); pwItems.Title = contentChannel.Name; pwItems.Expanded = ExpandedPanels.Contains(contentChannel.Id); var divItems = new HtmlGenericControl("div"); pwItems.Controls.Add(divItems); divItems.ID = string.Format("divItems_{0}", contentChannel.Id); divItems.AddCssClass("grid"); divItems.AddCssClass("grid-panel"); Grid gItems = new Grid(); divItems.Controls.Add(gItems); gItems.ID = string.Format("gItems_{0}", contentChannel.Id); gItems.DataKeyNames = new string[] { "Id" }; gItems.EmptyDataText = "No Items Found"; gItems.RowItemText = "Item"; gItems.AllowSorting = true; gItems.Actions.ShowAdd = canEdit; gItems.IsDeleteEnabled = canEdit; gItems.Actions.AddClick += gItems_Add; gItems.RowSelected += gItems_Edit; gItems.GridRebind += gItems_GridRebind; gItems.Columns.Add(new RockBoundField { DataField = "Title", HeaderText = "Title", SortExpression = "Title" }); if (contentChannel.ContentChannelType.IncludeTime) { gItems.Columns.Add(new DateTimeField { DataField = "StartDateTime", HeaderText = contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange ? "Start" : "Active", SortExpression = "StartDateTime" }); if (contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange) { gItems.Columns.Add(new DateTimeField { DataField = "ExpireDateTime", HeaderText = "Expire", SortExpression = "ExpireDateTime" }); } } else { gItems.Columns.Add(new DateField { DataField = "StartDateTime", HeaderText = contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange ? "Start" : "Active", SortExpression = "StartDateTime" }); if (contentChannel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange) { gItems.Columns.Add(new DateField { DataField = "ExpireDateTime", HeaderText = "Expire", SortExpression = "ExpireDateTime" }); } } if (!contentChannel.ContentChannelType.DisablePriority) { var priorityField = new RockBoundField { DataField = "Priority", HeaderText = "Priority", SortExpression = "Priority", DataFormatString = "{0:N0}", }; priorityField.ItemStyle.HorizontalAlign = HorizontalAlign.Right; gItems.Columns.Add(priorityField); } // Add attribute columns int entityTypeId = EntityTypeCache.Read(typeof(Rock.Model.ContentChannelItem)).Id; string qualifier = contentChannel.ContentChannelTypeId.ToString(); foreach (var attribute in new AttributeService(rockContext).Queryable() .Where(a => a.EntityTypeId == entityTypeId && a.IsGridColumn && a.EntityTypeQualifierColumn.Equals("ContentChannelTypeId", StringComparison.OrdinalIgnoreCase) && a.EntityTypeQualifierValue.Equals(qualifier)) .OrderBy(a => a.Order) .ThenBy(a => a.Name)) { string dataFieldExpression = attribute.Key; bool columnExists = gItems.Columns.OfType <AttributeField>().FirstOrDefault(a => a.DataField.Equals(dataFieldExpression)) != null; if (!columnExists) { AttributeField boundField = new AttributeField(); boundField.DataField = dataFieldExpression; boundField.HeaderText = attribute.Name; boundField.SortExpression = string.Empty; var attributeCache = Rock.Web.Cache.AttributeCache.Read(attribute.Id); if (attributeCache != null) { boundField.ItemStyle.HorizontalAlign = attributeCache.FieldType.Field.AlignValue; } gItems.Columns.Add(boundField); } } if (contentChannel.RequiresApproval) { var statusField = new BoundField(); gItems.Columns.Add(statusField); statusField.DataField = "Status"; statusField.HeaderText = "Status"; statusField.SortExpression = "Status"; statusField.HtmlEncode = false; } var deleteField = new DeleteField(); gItems.Columns.Add(deleteField); deleteField.Click += gItems_Delete; } } else { this.Visible = false; } }