void ControlTreeDataLoader.LoadData()
        {
            if (postBack != null || AutoPostBack)
            {
                EwfPage.Instance.AddPostBack(postBack ?? EwfPage.Instance.DataUpdatePostBack);
            }

            CssClass = CssElementCreator.CssClass.ConcatenateWithSpace(CssClass);

            checkBox   = new WebControl(HtmlTextWriterTag.Input);
            PreRender += delegate {
                AddCheckBoxAttributes(checkBox, this, checkBoxFormValue, radioButtonFormValue, radioButtonListItemId, postBack, AutoPostBack, onClickJsMethods);
                checkBox.Attributes.Add("class", CssElementCreator.CssClass);
            };
            Controls.Add(checkBox);

            EwfLabel labelControl = null;

            if (label.Any())
            {
                labelControl = new EwfLabel {
                    Text = label, CssClass = CssElementCreator.CssClass
                };
                Controls.Add(labelControl);
            }

            if (ToolTip != null || ToolTipControl != null)
            {
                new ToolTip(ToolTipControl ?? EnterpriseWebFramework.Controls.ToolTip.GetToolTipTextControl(ToolTip), label.Any() ? labelControl : checkBox);
            }
        }
Example #2
0
        private Control getProcessingDialog()
        {
            /*
             * We switched from an animated GIF to a JavaScript-based spinner due to a number of benefits.
             * First, IE stops animating all GIFs when a request is made, even with the latest version. They do not believe this is a bug.
             * Firefox stops animating GIFs in other situations, such as when we hide the processing dialog when the user wants to attempt
             * the request again.
             * In both of the above situations, there are a number of convoluted hacks that fix the problem in some situations, but not all. One example is
             * enumerating the images in the document in JavaScript and setting the src attribute to the value of the src attribute.
             * The above problems still exist even if you use CSS to display the image, using the background-image style.
             * An alternate situation may be to use a PNG and use CSS3 animations to rotate the image, making it spin. However browser support still
             * isn't solid for CSS3 animations, such as all IE versions before IE10.
             * Another point against images is that you have to prevent dragging and disable selection, to make the interface look more professional.
             * Spin.js also has the benefit of being fully compatible with all browsers across the board.
             */

            // These are used by the Standard Library JavaScript file.
            const string dialogId  = "ewfProcessingDialog";
            const string spinnerId = "ewfSpinner";

            var spinnerParent = new EwfLabel {
                ClientIDMode = ClientIDMode.Static, ID = spinnerId
            };

            spinnerParent.Style.Add(HtmlTextWriterStyle.Position, "relative");
            spinnerParent.Style.Add(HtmlTextWriterStyle.MarginLeft, "25px");
            spinnerParent.Style.Add(HtmlTextWriterStyle.MarginRight, "40px");

            return
                (new Block(
                     new Paragraph(
                         spinnerParent,
                         Translation.Processing.GetLiteralControl(),
                         getProcessingDialogEllipsisDot(1),
                         getProcessingDialogEllipsisDot(2),
                         getProcessingDialogEllipsisDot(3))
            {
                CssClass = processingDialogProcessingParagraphClass
            },
                     new Paragraph(
                         new CustomButton(() => "stopPostBackRequest()")
            {
                ActionControlStyle = new TextActionControlStyle(Translation.ThisSeemsToBeTakingAWhile)
            })
            {
                CssClass = processingDialogTimeOutParagraphClass
            })
            {
                ClientIDMode = ClientIDMode.Static, ID = dialogId, CssClass = processingDialogBlockInactiveClass
            });
        }