private IEnumerable <Control> getIdListRegionBlocks()
        {
            var rs = new UpdateRegionSet();

            yield return
                (new ControlLine(
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             rs.ToSingleElementArray(),
                             DataUpdate,
                             id: "idAdd",
                             firstModificationMethod:
                             () =>
                             parametersModification.ItemIds =
                                 (parametersModification.ItemIds.Any() ? parametersModification.ItemIds.Min() - 1 : 0).ToSingleElementArray().Concat(parametersModification.ItemIds)),
                         new ButtonActionControlStyle("Add Item"),
                         usesSubmitBehavior: false)));

            var stack = ControlStack.Create(
                true,
                itemInsertionUpdateRegions:
                new ItemInsertionUpdateRegion(rs, () => parametersModification.ItemIds.First().ToString().ToSingleElementArray()).ToSingleElementArray());

            foreach (var i in info.ItemIds)
            {
                stack.AddItem(getIdItem(i));
            }

            yield return(new Box("Control List With ID Items", stack.ToSingleElementArray()));
        }
        private IEnumerable <Control> getNonIdListRegionBlocks()
        {
            var addRs    = new UpdateRegionSet();
            var removeRs = new UpdateRegionSet();

            yield return
                (new ControlLine(
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             addRs.ToSingleElementArray(),
                             DataUpdate,
                             id: "nonIdAdd",
                             firstModificationMethod: () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Concat(new[] { 0, 0 })),
                         new ButtonActionControlStyle("Add Two Items"),
                         usesSubmitBehavior: false),
                     new PostBackButton(
                         PostBack.CreateIntermediate(
                             removeRs.ToSingleElementArray(),
                             DataUpdate,
                             id: "nonIdRemove",
                             firstModificationMethod:
                             () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Take(parametersModification.NonIdItemStates.Count() - 2)),
                         new ButtonActionControlStyle("Remove Two Items"),
                         usesSubmitBehavior: false)));

            var stack = ControlStack.Create(true, tailUpdateRegions: new[] { new TailUpdateRegion(addRs, 0), new TailUpdateRegion(removeRs, 2) });

            for (var i = 0; i < info.NonIdItemStates.Count(); i += 1)
            {
                stack.AddItem(getNonIdItem(i));
            }

            yield return(new Box("Control List With Non-ID Items", stack.ToSingleElementArray()));
        }
Example #3
0
        protected override async Task AddAdditionalControls()
        {
            await base.AddAdditionalControls();

            StorageHelper = ScreenManager.Game.Services.GetService <IExternalStorageHelper>();

            if (null == StorageHelper)
            {
                throw new Exception("You need to add the IExternalStorageHelper to Game.Services");
            }

            Listener = ScreenManager.Game.Services.GetService <IClutchPlayListener>();

            if (null == Listener)
            {
                throw new Exception("You need to add the IClutchPlayListener to Game.Services");
            }

            //add a shim between the text and the buttons
            ControlStack.AddItem(new Shim()
            {
                Size = new Vector2(0, 56f)
            });

            //add the gif image
            var pp = ScreenManager.Game.GraphicsDevice.PresentationParameters;

            ControlStack.AddItem(new AnimatedGifImage(Listener.CurrentClutchPlay, ScreenManager.Game.GraphicsDevice)
            {
                Size       = new Vector2(pp.BackBufferWidth / 3, pp.BackBufferHeight / 3),
                Horizontal = HorizontalAlignment.Center,
                Vertical   = VerticalAlignment.Center,
            });
        }
Example #4
0
        private Control getAppLogoAndUserInfoBlock()
        {
            var table = EwfTable.Create(style: EwfTableStyle.StandardLayoutOnly, classes: CssElementCreator.AppLogoAndUserInfoBlockCssClass.ToCollection());

            var appLogo =
                new GenericFlowContainer(
                    (!ConfigurationStatics.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists ? EwfUiStatics.AppProvider.GetLogoComponent() : null) ??
                    (EwfApp.Instance.AppDisplayName.Length > 0 ? EwfApp.Instance.AppDisplayName : ConfigurationStatics.SystemName).ToComponents(),
                    classes: CssElementCreator.AppLogoClass);

            ControlStack userInfoList = null;

            if (AppRequestState.Instance.UserAccessible)
            {
                var changePasswordPage = UserManagement.ChangePassword.Page.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl());
                if (changePasswordPage.UserCanAccessResource && AppTools.User != null)
                {
                    var userInfo = new UserInfo();
                    userInfo.LoadData(changePasswordPage);
                    userInfoList          = ControlStack.CreateWithControls(true, userInfo);
                    userInfoList.CssClass = CssElementCreator.UserInfoListCssClass;
                }
            }

            table.AddItem(() => new EwfTableItem(new PlaceHolder().AddControlsReturnThis(appLogo.ToCollection().GetControls()), userInfoList));
            return(table);
        }
        private Control getAppLogoAndUserInfoBlock()
        {
            var table = EwfTable.Create(style: EwfTableStyle.StandardLayoutOnly, classes: CssElementCreator.AppLogoAndUserInfoBlockCssClass.ToSingleElementArray());

            var appLogoBlock = EwfUiStatics.AppProvider.GetLogoControl() ??
                               new Panel().AddControlsReturnThis(
                (EwfApp.Instance.AppDisplayName.Length > 0 ? EwfApp.Instance.AppDisplayName : AppTools.SystemName).GetLiteralControl());

            appLogoBlock.CssClass = CssElementCreator.AppLogoBlockCssClass;

            ControlStack userInfoList = null;

            if (AppRequestState.Instance.UserAccessible)
            {
                var changePasswordPage = UserManagement.ChangePassword.Page.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl());
                if (changePasswordPage.UserCanAccessResource && AppTools.User != null)
                {
                    var userInfo = new UserInfo();
                    userInfo.LoadData(changePasswordPage);
                    userInfoList          = ControlStack.CreateWithControls(true, userInfo);
                    userInfoList.CssClass = CssElementCreator.UserInfoListCssClass;
                }
            }

            table.AddItem(() => new EwfTableItem(appLogoBlock, userInfoList));
            return(table);
        }
Example #6
0
        private IEnumerable <Control> getStatusMessageDialog()
        {
            if (!EwfPage.Instance.StatusMessages.Any())
            {
                yield break;
            }

            var list = ControlStack.Create(true);

            list.AddControls(
                EwfPage.Instance.StatusMessages.Select(
                    i =>
                    new Label
            {
                CssClass =
                    i.Item1 == StatusMessageType.Info
                                                                        ? CssElementCreator.StatusMessageDialogControlListInfoItemCssClass
                                                                        : CssElementCreator.StatusMessageDialogControlListWarningItemCssClass,
                Text = i.Item2
            } as Control).ToArray());

            if (EwfPage.Instance.StatusMessages.Any(i => i.Item1 == StatusMessageType.Warning))
            {
                list.AddControls(new CustomButton(() => "fadeOutStatusMessageDialog( 0 )")
                {
                    ActionControlStyle = new ButtonActionControlStyle("OK")
                });
            }

            yield return(new Block(list)
            {
                CssClass = CssElementCreator.StatusMessageDialogBlockCssClass
            });
        }
        private WebControl getTableForFormItemTable()
        {
            var columnWidthSpecified = firstColumnWidth != null || secondColumnWidth != null;
            var table = EwfTable.Create(
                caption: heading,
                fields:
                new[]
            {
                new EwfTableField(size: columnWidthSpecified?firstColumnWidth: Unit.Percentage(1)),
                new EwfTableField(size: columnWidthSpecified ? secondColumnWidth : Unit.Percentage(2))
            });

            table.AddData(
                formItems,
                i => {
                var stack = ControlStack.Create(true);
                if (i.Validation != null)
                {
                    stack.AddModificationErrorItem(i.Validation, new ListErrorDisplayStyle());
                }
                stack.AddControls(i.Control);
                return(new EwfTableItem(i.Label, stack.ToCell(new TableCellSetup(textAlignment: i.TextAlignment))));
            });
            return(table);
        }
 protected override void loadData()
 {
     ph.AddControlsReturnThis(
         ControlStack.CreateWithControls(
             true,
             new EwfCheckBox(false, label: "Inline Check Box"),
             new BlockCheckBox(false, (postBackValue, validator) => { }, label: "Block Check Box")));
 }
 /// <summary>
 /// Standard Library use only.
 /// </summary>
 public static Block CreateErrorMessageListBlock(IEnumerable <string> errors)
 {
     // Client code that uses NetTools.BuildBasicLink depends on us not HTML encoding error messages here. If raw or stored user input is ever used in error
     // messages, we are exposed to injection attacks.
     return(new Block(ControlStack.CreateWithControls(true, errors.Select(i => new Literal {
         Text = i
     }).ToArray()))
     {
         CssClass = CssElementCreator.CssClass
     });
 }
Example #10
0
 protected override void loadData()
 {
     ph.AddControlsReturnThis(
         ControlStack.CreateWithControls(
             true,
             new PostBackButton(
                 PostBack.CreateFull(id: "sendHealthCheck", firstModificationMethod: () => EwfApp.Instance.SendHealthCheck()),
                 new ButtonActionControlStyle("Send Health Check"),
                 usesSubmitBehavior: false),
             new PostBackButton(
                 PostBack.CreateFull(id: "throwException", firstModificationMethod: throwException),
                 new ButtonActionControlStyle("Throw Unhandled Exception"),
                 usesSubmitBehavior: false)));
 }
        private void ItemDictTypes_SelectionChangedEvent(int oldSelection, int newSelection)
        {
            ControlStack.SuspendLayout();
            ControlStack.Items.Clear();
            EnumFormulaView efv = new EnumFormulaView();

            foreach (var item in _vm.ItemDict)
            {
                efv = new EnumFormulaView();
                efv.SetDatacontext(item);
                ControlStack.Items.Add(efv);
            }
            ControlStack.ResumeLayout();
        }
 private IEnumerable <Control> getStatusMessageControlList()
 {
     return
         (ControlStack.CreateWithControls(
              true,
              EwfPage.Instance.StatusMessages.Select(
                  i =>
                  new Block(
                      new FontAwesomeIcon(i.Item1 == StatusMessageType.Info ? "fa-info-circle" : "fa-exclamation-triangle", "fa-lg", "fa-fw").ToCollection <PhrasingComponent>
                          ().Concat(new GenericPhrasingContainer(i.Item2.ToComponents(), classes: statusMessageTextClass)).GetControls().ToArray())
     {
         CssClass = i.Item1 == StatusMessageType.Info ? infoMessageContainerClass : warningMessageContainerClass
     } as Control).ToArray()).ToCollection());
 }
        private ControlListItem getIdItem(int id)
        {
            var rs = new UpdateRegionSet();
            var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("id", id.ToString()));

            var itemStack = ControlStack.Create(true);

            itemStack.AddControls(new EwfTextBox("ID {0}".FormatWith(id)));
            itemStack.AddControls(
                new PostBackButton(pb, new ButtonActionControlStyle("Remove", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false));

            pb.AddModificationMethod(() => parametersModification.ItemIds = parametersModification.ItemIds.Where(i => i != id).ToArray());

            return(new ControlListItem(itemStack.ToSingleElementArray(), id.ToString(), removalUpdateRegionSet: rs));
        }
        public MainViewContainer(ControlStack controlStack, ClimateStack climateStack)
            : base(ViewContainers.Main.ToString(), null)
        {
            Children = new List <IStack>()
            {
                controlStack, climateStack
            };
            var tabbedPage = new Xamarin.Forms.TabbedPage();
            var tabbed     = new TabbedView(tabbedPage);

            NativeView = tabbed.View;

            foreach (var child in Children)
            {
                tabbed.Children.Add(child.Proxy.NativeView);
            }
        }
Example #15
0
 private IEnumerable <Control> getStatusMessageControlList()
 {
     return
         (ControlStack.CreateWithControls(
              true,
              EwfPage.Instance.StatusMessages.Select(
                  i =>
                  new Block(
                      new FontAwesomeIcon(i.Item1 == StatusMessageType.Info ? "fa-info-circle" : "fa-exclamation-triangle", "fa-lg", "fa-fw"),
                      new EwfLabel {
         CssClass = statusMessageTextClass, Text = i.Item2
     })
     {
         CssClass = i.Item1 == StatusMessageType.Info ? infoMessageContainerClass : warningMessageContainerClass
     } as Control).ToArray())
          .ToSingleElementArray());
 }
Example #16
0
 internal static Control GetErrorMessageListBlock(IEnumerable <string> additionalClasses, IEnumerable <string> errors)
 {
     // Client code that uses NetTools.BuildBasicLink depends on us not HTML encoding error messages here. If raw or stored user input is ever used in error
     // messages, we are exposed to injection attacks.
     return
         (new Block(
              ControlStack.CreateWithControls(
                  true,
                  errors.Select(
                      i =>
                      (Control) new PlaceHolder().AddControlsReturnThis(new FontAwesomeIcon("fa-times-circle", "fa-lg"), " ".GetLiteralControl(), new Literal {
         Text = i
     }))
                  .ToArray()))
     {
         CssClass = StringTools.ConcatenateWithDelimiter(" ", CssElementCreator.CssClass.ToSingleElementArray().Concat(additionalClasses).ToArray())
     });
 }
        private ControlListItem getNonIdItem(int i)
        {
            var rs = new UpdateRegionSet();
            var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("nonId", i.ToString()));

            var itemStack = ControlStack.Create(true);

            if (info.NonIdItemStates.ElementAt(i) == 1)
            {
                itemStack.AddControls(new EwfTextBox("Item {0}".FormatWith(i)));
            }
            else
            {
                itemStack.AddText("Item {0}".FormatWith(i));
            }
            itemStack.AddControls(
                new PostBackButton(pb, new ButtonActionControlStyle("Toggle", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false));

            pb.AddModificationMethod(
                () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Select((state, index) => index == i ? (state + 1) % 2 : state));

            return(new ControlListItem(itemStack.ToSingleElementArray(), updateRegionSet: rs));
        }
Example #18
0
    //****************************************************************************************************
    //
    //****************************************************************************************************

    public bool Parse(string json)
    {
        if (string.IsNullOrEmpty(json))
        {
            return(false);
        }

        ControlStack ctrl = new ControlStack();

        JSonEntry cur = null;

        string name = null;

        m_root = null;


        for (int c = 0; c < json.Length; ++c)
        {
            //--------------------------------------------------------------------------------------------
            // register expression
            //--------------------------------------------------------------------------------------------

            if (char.IsWhiteSpace(json[c]) == false)
            {
                if (Semantics.hasProps(json[c], Semantics.PROP.ALL) == false)
                {
                    if (ctrl.expr.start == -1)
                    {
                        ctrl.expr.end = ctrl.expr.start = c;
                    }

                    else
                    {
                        ctrl.expr.end = c;
                    }

                    if (json[c] == QUOTE)
                    {
                        ++ctrl.expr.quotes; continue;
                    }
                }
            }
            else
            {
                continue;
            }

            //--------------------------------------------------------------------------------------------
            // register name or value
            //--------------------------------------------------------------------------------------------

            if (Semantics.hasProps(json[c], Semantics.PROP.CTRL) == true)
            {
                if ((ctrl.expr.quotes & 1) == 0)
                {
                    bool isName = (json[c] == COLON);

                    bool isValue = (isName == false);

                    bool valid = ctrl.expr.valid;

                    if ((isName) && (valid == false))
                    {
                        return(false);
                    }

                    if ((isName) && (cur is JSonObject) == false)
                    {
                        return(false);
                    }

                    if (valid)
                    {
                        string expr = json.Substring(ctrl.expr.start, ctrl.expr.end - ctrl.expr.start + 1).TrimEnd(' ', QUOTE, ' ').TrimStart(' ', QUOTE, ' ');

                        if (isName)
                        {
                            name = expr;
                        }

                        else if (isValue)
                        {
                            new JSonValue(name, cur).value = expr; name = null;
                        }
                    }

                    ctrl.expr.Reset();

                    if (Semantics.hasProps(json[c], Semantics.PROP.GRP) == false)
                    {
                        continue;
                    }
                }
            }

            //--------------------------------------------------------------------------------------------
            // register object or array
            //--------------------------------------------------------------------------------------------

            if (ctrl.expr.quotes == 0)
            {
                if (json[c] == BGN_OBJ)
                {
                    if ((cur == null) || ctrl.push(cur))
                    {
                        cur = new JSonObject(name, cur); if (m_root == null)
                        {
                            m_root = cur;
                        }
                        name = null; ctrl.expr.Reset(); continue;
                    }
                    else
                    {
                        return(false);
                    }
                }

                if (json[c] == BGN_ARR)
                {
                    if ((cur == null) || ctrl.push(cur))
                    {
                        cur = new JSonArray(name, cur); if (m_root == null)
                        {
                            m_root = cur;
                        }
                        name = null; ctrl.expr.Reset(); continue;
                    }
                    else
                    {
                        return(false);
                    }
                }

                if (json[c] == END_OBJ)
                {
                    if (cur == m_root)
                    {
                        break;
                    }
                    if ((cur is JSonObject) && ctrl.pop(ref cur))
                    {
                        ctrl.expr.Reset(); continue;
                    }
                    else
                    {
                        return(false);
                    }
                }

                if (json[c] == END_ARR)
                {
                    if (cur == m_root)
                    {
                        break;
                    }
                    if ((cur is JSonArray) && ctrl.pop(ref cur))
                    {
                        ctrl.expr.Reset(); continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
        }

        return((m_root != null) && (ctrl.empty));
    }
        void ControlTreeDataLoader.LoadData()
        {
            basicBody.Attributes.Add("onpagehide", "deactivateProcessingDialog();");
            form.Action = EwfPage.Instance.InfoAsBaseType.GetUrl();

            ph.AddControlsReturnThis(
                new NamingPlaceholder(
                    EwfPage.Instance.StatusMessages.Any() && statusMessagesDisplayAsNotification()
                                                ? new Block {
                CssClass = notificationSpacerClass
            }.ToSingleElementArray()
                                                : new Control[0]));

            var warningControls = new List <Control>();

            if (!ConfigurationStatics.IsLiveInstallation)
            {
                var children = new List <Control>();
                children.Add(new FontAwesomeIcon("fa-exclamation-triangle", "fa-lg"));
                children.Add(" This is not the live system. Changes made here will be lost and are not recoverable. ".GetLiteralControl());
                if (ConfigurationStatics.IsIntermediateInstallation && AppRequestState.Instance.IntermediateUserExists)
                {
                    children.Add(
                        new PostBackButton(
                            PostBack.CreateFull(
                                id: "ewfIntermediateLogOut",
                                firstModificationMethod: IntermediateAuthenticationMethods.ClearCookie,
                                actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))),
                            new ButtonActionControlStyle("Log Out", ButtonActionControlStyle.ButtonSize.ShrinkWrap),
                            false));
                }
                warningControls.Add(new PlaceHolder().AddControlsReturnThis(children.ToArray()));
            }
            else if (ConfigurationStatics.MachineIsStandbyServer)
            {
                warningControls.Add(
                    new PlaceHolder().AddControlsReturnThis(
                        new FontAwesomeIcon("fa-exclamation-triangle", "fa-lg"),
                        " This is a standby system. It operates with a read-only database, and any attempt to make a modification will result in an error.".GetLiteralControl()));
            }

            if (AppRequestState.Instance.UserAccessible && AppRequestState.Instance.ImpersonatorExists &&
                (!ConfigurationStatics.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists))
            {
                warningControls.Add(
                    new PlaceHolder().AddControlsReturnThis(
                        "User impersonation is in effect. ".GetLiteralControl(),
                        EwfLink.Create(
                            SelectUser.GetInfo(AppRequestState.Instance.Url),
                            new ButtonActionControlStyle("Change User", ButtonActionControlStyle.ButtonSize.ShrinkWrap)),
                        " ".GetLiteralControl(),
                        new PostBackButton(
                            PostBack.CreateFull(
                                id: "ewfEndImpersonation",
                                firstModificationMethod: UserImpersonationStatics.EndImpersonation,
                                actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))),
                            new ButtonActionControlStyle("End Impersonation", ButtonActionControlStyle.ButtonSize.ShrinkWrap),
                            usesSubmitBehavior: false)));
            }

            if (warningControls.Any())
            {
                var warningControl = warningControls.Count() > 1 ? ControlStack.CreateWithControls(true, warningControls.ToArray()) : warningControls.Single();
                ph.AddControlsReturnThis(new Block(warningControl)
                {
                    CssClass = topWarningBlockCssClass
                });
            }

            // This is used by the EWF JavaScript file.
            const string clickBlockerId = "ewfClickBlocker";

            ph2.AddControlsReturnThis(
                new Block {
                ClientIDMode = ClientIDMode.Static, ID = clickBlockerId, CssClass = clickBlockerInactiveClass
            },
                getProcessingDialog(),
                new NamingPlaceholder(getStatusMessageControl()));

            EwfPage.Instance.ClientScript.RegisterOnSubmitStatement(GetType(), "formSubmitEventHandler", "postBackRequestStarted()");
        }
Example #20
0
        void ControlTreeDataLoader.LoadData()
        {
            basicBody.Attributes.Add("onpagehide", "hideProcessingDialog();");
            form.Action = EwfPage.Instance.InfoAsBaseType.GetUrl();

            var warningControls = new List <Control>();

            if (!AppTools.IsLiveInstallation)
            {
                var children = new List <Control>();
                children.Add("This is not the live system. Changes made here will be lost and are not recoverable. ".GetLiteralControl());
                if (AppTools.IsIntermediateInstallation && AppRequestState.Instance.IntermediateUserExists)
                {
                    children.Add(
                        new PostBackButton(
                            PostBack.CreateFull(
                                id: "ewfIntermediateLogOut",
                                firstModificationMethod: IntermediateAuthenticationMethods.ClearCookie,
                                actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))),
                            new ButtonActionControlStyle("Log Out", ButtonActionControlStyle.ButtonSize.ShrinkWrap),
                            false));
                }
                warningControls.Add(new PlaceHolder().AddControlsReturnThis(children.ToArray()));
            }
            else if (ConfigurationStatics.MachineIsStandbyServer)
            {
                warningControls.Add(
                    "This is a standby system. It operates with a read-only database, and any attempt to make a modification will result in an error.".GetLiteralControl());
            }

            if (AppRequestState.Instance.UserAccessible && AppRequestState.Instance.ImpersonatorExists &&
                (!AppTools.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists))
            {
                warningControls.Add(
                    new PlaceHolder().AddControlsReturnThis(
                        "User impersonation is in effect. ".GetLiteralControl(),
                        EwfLink.Create(
                            SelectUser.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl()),
                            new ButtonActionControlStyle("Change User", ButtonActionControlStyle.ButtonSize.ShrinkWrap)),
                        " ".GetLiteralControl(),
                        new PostBackButton(
                            PostBack.CreateFull(
                                id: "ewfEndImpersonation",
                                firstModificationMethod: UserImpersonationStatics.EndImpersonation,
                                actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))),
                            new ButtonActionControlStyle("End Impersonation", ButtonActionControlStyle.ButtonSize.ShrinkWrap),
                            usesSubmitBehavior: false)));
            }

            if (warningControls.Any())
            {
                var warningControl = warningControls.Count() > 1 ? ControlStack.CreateWithControls(true, warningControls.ToArray()) : warningControls.Single();
                ph.AddControlsReturnThis(new Block(warningControl)
                {
                    CssClass = CssElementCreator.TopWarningBlockCssClass
                });
            }

            ph2.AddControlsReturnThis(new Block {
                CssClass = CssElementCreator.ClickBlockingBlockCssClass
            }, getProcessingDialog());
            ph2.AddControlsReturnThis(new NamingPlaceholder(getStatusMessageDialog()));

            var ajaxLoadingImage = new EwfImage("Images/ajax-loader.gif")
            {
                CssClass = "ajaxloaderImage"
            };

            ajaxLoadingImage.Style.Add("display", "none");
            ph2.AddControlsReturnThis(ajaxLoadingImage);

            EwfPage.Instance.ClientScript.RegisterOnSubmitStatement(GetType(), "formSubmitEventHandler", "postBackRequestStarted()");
        }