/// <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);
        }
示例#2
0
        /// <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);
            }
        }
示例#5
0
        /// <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);
            }
        }
示例#6
0
        /// <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();
        }
示例#7
0
        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++;
                }
            }
        }
示例#8
0
        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);
        }
示例#10
0
        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);
        }
示例#12
0
        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
            });
        }
示例#14
0
        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"));
        }
示例#15
0
        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);
        }
示例#16
0
        private void DoLevel(PanelWidget widget)
        {
            var slider = (NumericHorizontalSlider) widget;

            Simulator.Level.Mission =
                Simulator.Level.Mission.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries)[0] + "-" +
                slider.Value;
        }
示例#17
0
        /// <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);
        }
示例#18
0
        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();
            }
        }
示例#19
0
        private void DoClosePanel(PanelWidget widget)
        {
            var closeCommand = new EditorPanelCommand("ClosePanel", OpenedPanel, false) { Owner = CurrentOpenedPanelPlayer };

            OpenedPanel = EditorPanel.None;

            NotifyEditorCommandExecuted(closeCommand);
        }
示例#20
0
        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++;
                }
            }
        }
示例#21
0
        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;
            }
        }
示例#22
0
        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;
            }
        }
示例#23
0
        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;
            }
        }
示例#24
0
        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;
            }
        }
示例#25
0
        private void DoBackgrounds(PanelWidget widget)
        {
            var img = (ImageWidget) ((GridPanel) widget).LastClickedWidget;

            Simulator.Level.Background = new Image(img.Image.TextureName) { VisualPriority = Preferences.PrioriteFondEcran };
        }
示例#26
0
        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);
        }
示例#27
0
        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));
        }
示例#28
0
        private void DoBulletDamage(PanelWidget widget)
        {
            var slider = (NumericHorizontalSlider) widget;

            var command = new EditorPlayerCommand("AddOrRemoveBulletDamage")
            {
                BulletDamage = slider.Value / 10f,
                Owner = CurrentOpenedPanelPlayer
            };

            NotifyEditorCommandExecuted(command);
        }
示例#29
0
        private void DoLoad(PanelWidget widget)
        {
            var panel = (LevelsPanel) widget;

            if (panel.ClickedLevel != null)
            {
                Simulator.LevelDescriptor = panel.ClickedLevel;
                Simulator.Initialize();
                Simulator.SyncPlayers();
            }
        }
示例#30
0
        private void DoLifePacks(PanelWidget widget)
        {
            var slider = (NumericHorizontalSlider) widget;

            var command = new EditorPlayerCommand("AddOrRemoveLifePacks")
            {
                LifePacks = slider.Value,
                Owner = CurrentOpenedPanelPlayer
            };

            NotifyEditorCommandExecuted(command);
        }
示例#31
0
        /// <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
            });
        }
示例#32
0
        private void DoDifficulty(PanelWidget widget)
        {
            var slider = (ChoicesHorizontalSlider) widget;

            Simulator.Level.Difficulty = slider.Value;
        }
示例#33
0
        /// <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);
        }
示例#35
0
        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;
            }
        }