private static string GetText(BocRenderingContext <IBocTextValue> renderingContext)
        {
            var textMode = renderingContext.Control.TextBoxStyle.TextMode;

            if (textMode == BocTextBoxMode.PasswordNoRender || textMode == BocTextBoxMode.PasswordRenderMasked)
            {
                return(new string ((char)9679, 5));
            }

            string text;

            if (textMode == BocTextBoxMode.MultiLine)
            {
                var lines = StringUtility.ParseNewLineSeparatedString(renderingContext.Control.Text ?? "");
                text = RenderUtility.JoinLinesWithEncoding(lines);
            }
            else
            {
                text = HttpUtility.HtmlEncode(renderingContext.Control.Text);
            }

            if (string.IsNullOrEmpty(text) && renderingContext.Control.IsDesignMode)
            {
                text = c_designModeEmptyLabelContents;
                //  Too long, can't resize in designer to less than the content's width
                //  Label.Text = "[ " + this.GetType().Name + " \"" + this.ID + "\" ]";
            }

            return(text);
        }
        protected override sealed void RenderEditModeValueWithIntegratedOptionsMenu(BocRenderingContext <IBocAutoCompleteReferenceValue> renderingContext)
        {
            TextBox textBox = GetTextBox(renderingContext);

            textBox.Attributes.Add("onclick", DropDownMenu.OnHeadTitleClickScript);
            RenderEditModeValue(renderingContext, textBox);
        }
        private void RenderEditModeValue(BocRenderingContext <IBocAutoCompleteReferenceValue> renderingContext, TextBox textBox)
        {
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClassInput);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);

            bool autoPostBack = textBox.AutoPostBack;

            textBox.AutoPostBack = false;
            textBox.RenderControl(renderingContext.Writer);
            textBox.AutoPostBack = autoPostBack;
            renderingContext.Writer.RenderEndTag();

            RenderDropdownButton(renderingContext);

            var hiddenField = GetHiddenField(renderingContext);

            if (autoPostBack)
            {
                PostBackOptions options = new PostBackOptions(textBox, string.Empty);
                if (textBox.CausesValidation)
                {
                    options.PerformValidation = true;
                    options.ValidationGroup   = textBox.ValidationGroup;
                }
                if (renderingContext.Control.Page.Form != null)
                {
                    options.AutoPostBack = true;
                }
                var postBackEventReference = renderingContext.Control.Page.ClientScript.GetPostBackEventReference(options, true);
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onchange, postBackEventReference);
            }
            hiddenField.RenderControl(renderingContext.Writer);
        }
        /// <summary>
        /// Renders a label when <see cref="IBusinessObjectBoundEditableControl.IsReadOnly"/> is <see langword="true"/>,
        /// a textbox in edit mode.
        /// </summary>
        protected void Render(BocRenderingContext <T> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            AddAttributesToRender(renderingContext);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClassContent);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);

            bool isControlHeightEmpty = renderingContext.Control.Height.IsEmpty && string.IsNullOrEmpty(renderingContext.Control.Style["height"]);

            WebControl innerControl = renderingContext.Control.IsReadOnly ? (WebControl)GetLabel(renderingContext) : GetTextBox(renderingContext);

            innerControl.Page = renderingContext.Control.Page.WrappedInstance;

            bool isInnerControlHeightEmpty = innerControl.Height.IsEmpty && string.IsNullOrEmpty(innerControl.Style["height"]);

            if (!isControlHeightEmpty && isInnerControlHeightEmpty)
            {
                renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
            }

            innerControl.RenderControl(renderingContext.Writer);

            renderingContext.Writer.RenderEndTag();
            renderingContext.Writer.RenderEndTag();
        }
        protected override Label GetLabel(BocRenderingContext <IBocMultilineTextValue> renderingContext)
        {
            Label label = new Label {
                ClientIDMode = ClientIDMode.Static
            };

            label.ID = renderingContext.Control.GetValueName();
            label.EnableViewState = false;

            string[] lines = renderingContext.Control.Value;
            string   text  = RenderUtility.JoinLinesWithEncoding(lines ?? Enumerable.Empty <string>());

            if (string.IsNullOrEmpty(text) && renderingContext.Control.IsDesignMode)
            {
                text = c_designModeEmptyLabelContents;
                //  Too long, can't resize in designer to less than the content's width
                //  label.Text = "[ " + this.GetType().Name + " \"" + this.ID + "\" ]";
            }
            label.Text = text;

            label.Width  = Unit.Empty;
            label.Height = Unit.Empty;
            label.ApplyStyle(renderingContext.Control.CommonStyle);
            label.ApplyStyle(renderingContext.Control.LabelStyle);
            return(label);
        }
        protected override sealed void RenderEditModeValueWithIntegratedOptionsMenu(BocRenderingContext <IBocReferenceValue> renderingContext)
        {
            DropDownList dropDownList = GetDropDownList(renderingContext);

            dropDownList.Attributes.Add("onclick", DropDownMenu.OnHeadTitleClickScript);
            RenderEditModeValue(renderingContext, dropDownList);
        }
Example #7
0
        private void RenderContentsWithIntegratedOptionsMenu(BocRenderingContext <TControl> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            renderingContext.Control.OptionsMenu.SetRenderHeadTitleMethodDelegate(writer => RenderOptionsMenuTitle(renderingContext));
            renderingContext.Control.OptionsMenu.RenderControl(renderingContext.Writer);
            renderingContext.Control.OptionsMenu.SetRenderHeadTitleMethodDelegate(null);
        }
 private void RenderDropdownButton(BocRenderingContext <IBocAutoCompleteReferenceValue> renderingContext)
 {
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Id, GetDropDownButtonName(renderingContext));
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClassButton);
     renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);
     IconInfo.CreateSpacer(ResourceUrlFactory).Render(renderingContext.Writer, renderingContext.Control);
     renderingContext.Writer.RenderEndTag();
 }
Example #9
0
        protected string GetCommandInfoAsJson(BocRenderingContext <TControl> renderingContext)
        {
            var command = renderingContext.Control.Command;

            if (command == null)
            {
                return(null);
            }

            if (command.Show == CommandShow.ReadOnly)
            {
                return(null);
            }

            var postBackEvent = GetPostBackEvent(renderingContext);
            var commandInfo   = command.GetCommandInfo(postBackEvent, new[] { "-0-" }, "", null, new NameValueCollection(), true);

            if (commandInfo == null)
            {
                return(null);
            }

            var jsonBuilder = new StringBuilder(1000);

            jsonBuilder.Append("{ ");

            jsonBuilder.Append("href : ");
            string href = commandInfo.Href.Replace("-0-", "{0}");

            AppendStringValueOrNullToScript(jsonBuilder, href);

            jsonBuilder.Append(", ");

            jsonBuilder.Append("target : ");
            string target = commandInfo.Target;

            AppendStringValueOrNullToScript(jsonBuilder, target);

            jsonBuilder.Append(", ");

            jsonBuilder.Append("onClick : ");
            string onClick = commandInfo.OnClick;

            AppendStringValueOrNullToScript(jsonBuilder, onClick);

            jsonBuilder.Append(", ");

            jsonBuilder.Append("title : ");
            string title = commandInfo.Title;

            AppendStringValueOrNullToScript(jsonBuilder, title);

            jsonBuilder.Append(" }");

            return(jsonBuilder.ToString());
        }
 private HiddenField GetHiddenField(BocRenderingContext <IBocAutoCompleteReferenceValue> renderingContext)
 {
     return(new HiddenField
     {
         ClientIDMode = ClientIDMode.Static,
         ID = renderingContext.Control.GetKeyValueName(),
         Page = renderingContext.Control.Page.WrappedInstance,
         EnableViewState = true,
         Value = renderingContext.Control.BusinessObjectUniqueIdentifier ?? renderingContext.Control.NullValueString
     });
 }
Example #11
0
        private string GetPostBackEvent(BocRenderingContext <TControl> renderingContext)
        {
            if (renderingContext.Control.IsDesignMode)
            {
                return("");
            }

            string argument = BocReferenceValueBase.CommandArgumentName;

            return(renderingContext.Control.Page.ClientScript.GetPostBackEventReference(renderingContext.Control, argument) + ";");
        }
        protected override TextBox GetTextBox(BocRenderingContext <IBocTextValue> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            var textBox = base.GetTextBox(renderingContext);

            if (renderingContext.Control.TextBoxStyle.TextMode == BocTextBoxMode.PasswordRenderMasked)
            {
                textBox.Attributes.Add("value", textBox.Text);
            }
            return(textBox);
        }
Example #13
0
        private BocCommand GetCommand(BocRenderingContext <TControl> renderingContext, bool isCommandEnabled)
        {
            var command = isCommandEnabled
                        ? renderingContext.Control.Command
                        : new BocCommand(CommandType.None)
            {
                OwnerControl = renderingContext.Control
            };

            command.ItemID = "Command";
            return(command);
        }
        protected string GetPostBackEvent(BocRenderingContext <TControl> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            if (renderingContext.Control.IsDesignMode)
            {
                return("");
            }

            string argument = BocReferenceValueBase.CommandArgumentName;

            return(renderingContext.Control.Page.ClientScript.GetPostBackEventReference(renderingContext.Control, argument) + ";");
        }
Example #15
0
        protected virtual void RenderContents(BocRenderingContext <TControl> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            if (IsEmbedInOptionsMenu(renderingContext))
            {
                RenderContentsWithIntegratedOptionsMenu(renderingContext);
            }
            else
            {
                RenderContentsWithSeparateOptionsMenu(renderingContext);
            }
        }
        private TextBox GetTextBox(BocRenderingContext <IBocAutoCompleteReferenceValue> renderingContext)
        {
            var textBox = _textBoxFactory();

            textBox.ClientIDMode    = ClientIDMode.Static;
            textBox.ID              = renderingContext.Control.GetTextValueName();
            textBox.Text            = renderingContext.Control.GetLabelText();
            textBox.Enabled         = renderingContext.Control.Enabled;
            textBox.EnableViewState = false;
            textBox.Page            = renderingContext.Control.Page.WrappedInstance;
            textBox.ApplyStyle(renderingContext.Control.CommonStyle);
            renderingContext.Control.TextBoxStyle.ApplyStyle(textBox);
            return(textBox);
        }
        public void RenderDataColumnDeclaration(BocRenderingContext <IBocList> renderingContext, bool isTextXml)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            var columnRenderingContext = new BocColumnRenderingContext(
                renderingContext.HttpContext,
                renderingContext.Writer,
                renderingContext.Control,
                ColumnDefinition,
                ColumnIndex,
                VisibleColumnIndex);

            _columnRenderer.RenderDataColumnDeclaration(columnRenderingContext, isTextXml);
        }
Example #18
0
        private IconInfo GetIcon(BocRenderingContext <TControl> renderingContext)
        {
            var iconInfo = renderingContext.Control.GetIcon();

            if (iconInfo != null && renderingContext.Control.IsCommandEnabled())
            {
                if (string.IsNullOrEmpty(iconInfo.AlternateText))
                {
                    iconInfo.AlternateText = renderingContext.Control.GetLabelText();
                }
            }

            return(iconInfo);
        }
        public void RenderTitleCell(BocRenderingContext <IBocList> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            var columnRenderingContext = new BocColumnRenderingContext(
                renderingContext.HttpContext,
                renderingContext.Writer,
                renderingContext.Control,
                ColumnDefinition,
                ColumnIndex,
                VisibleColumnIndex);

            _columnRenderer.RenderTitleCell(columnRenderingContext, _sortingDirection, _orderIndex);
        }
        public void RenderDataCell(BocRenderingContext <IBocList> renderingContext, int rowIndex, BocListDataRowRenderEventArgs dataRowRenderEventArgs)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            var columnRenderingContext = new BocColumnRenderingContext(
                renderingContext.HttpContext,
                renderingContext.Writer,
                renderingContext.Control,
                ColumnDefinition,
                ColumnIndex,
                VisibleColumnIndex);

            _columnRenderer.RenderDataCell(columnRenderingContext, rowIndex, _showIcon, dataRowRenderEventArgs);
        }
Example #21
0
        private Label GetLabel(BocRenderingContext <TControl> renderingContext)
        {
            var label = new Label
            {
                ID              = renderingContext.Control.ClientID + "_Value",
                ClientIDMode    = ClientIDMode.Static,
                EnableViewState = false,
                Height          = Unit.Empty,
                Width           = Unit.Empty
            };

            label.ApplyStyle(renderingContext.Control.CommonStyle);
            label.ApplyStyle(renderingContext.Control.LabelStyle);
            label.Text = HttpUtility.HtmlEncode(renderingContext.Control.GetLabelText());
            label.Attributes.Add("data-value", renderingContext.Control.BusinessObjectUniqueIdentifier);
            return(label);
        }
        protected override Label GetLabel(BocRenderingContext <IBocTextValue> renderingContext)
        {
            Label label = new Label {
                Text = renderingContext.Control.Text
            };

            label.ID = renderingContext.Control.GetValueName();
            label.EnableViewState = false;

            var text = GetText(renderingContext);

            label.Text   = text;
            label.Width  = Unit.Empty;
            label.Height = Unit.Empty;
            label.ApplyStyle(renderingContext.Control.CommonStyle);
            label.ApplyStyle(renderingContext.Control.LabelStyle);
            return(label);
        }
        /// <summary>
        /// Creates a <see cref="TextBox"/> control to use for rendering the <see cref="BocTextValueBase"/> control in edit mode.
        /// </summary>
        /// <returns>A <see cref="TextBox"/> control with the all relevant properties set and all appropriate styles applied to it.</returns>
        protected virtual TextBox GetTextBox(BocRenderingContext <T> renderingContext)
        {
            TextBox textBox = new RenderOnlyTextBox {
                ClientIDMode = ClientIDMode.Static
            };

            textBox.Text            = renderingContext.Control.Text;
            textBox.ID              = renderingContext.Control.GetValueName();
            textBox.EnableViewState = false;
            textBox.Enabled         = renderingContext.Control.Enabled;
            textBox.ReadOnly        = !renderingContext.Control.Enabled;
            textBox.Width           = Unit.Empty;
            textBox.Height          = Unit.Empty;
            textBox.ApplyStyle(renderingContext.Control.CommonStyle);
            renderingContext.Control.TextBoxStyle.ApplyStyle(textBox);

            return(textBox);
        }
        private DropDownList GetDropDownList(BocRenderingContext <IBocReferenceValue> renderingContext)
        {
            var dropDownList = _dropDownListFactoryMethod();

            dropDownList.ClientIDMode    = ClientIDMode.Static;
            dropDownList.ID              = renderingContext.Control.GetValueName();
            dropDownList.EnableViewState = false;
            dropDownList.Page            = renderingContext.Control.Page.WrappedInstance;
            renderingContext.Control.PopulateDropDownList(dropDownList);

            dropDownList.Enabled = renderingContext.Control.Enabled;
            dropDownList.Height  = Unit.Empty;
            dropDownList.Width   = Unit.Empty;
            dropDownList.ApplyStyle(renderingContext.Control.CommonStyle);
            renderingContext.Control.DropDownListStyle.ApplyStyle(dropDownList);

            return(dropDownList);
        }
        protected override Label GetLabel(BocRenderingContext <IBocTextValue> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            Label label = new Label {
                Text = renderingContext.Control.Text, ClientIDMode = ClientIDMode.Static
            };

            label.ID = renderingContext.Control.GetValueName();
            label.EnableViewState = false;
            label.Text            = GetText(renderingContext);

            label.Width  = Unit.Empty;
            label.Height = Unit.Empty;
            label.ApplyStyle(renderingContext.Control.CommonStyle);
            label.ApplyStyle(renderingContext.Control.LabelStyle);
            return(label);
        }
Example #26
0
        /// <summary>
        /// Renders a label when <see cref="IBusinessObjectBoundEditableControl.IsReadOnly"/> is <see langword="true"/>,
        /// a textbox in edit mode.
        /// </summary>
        public void Render(BocRenderingContext <T> renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            AddAttributesToRender(renderingContext, true);
            renderingContext.Writer.RenderBeginTag("span");

            bool isControlHeightEmpty = renderingContext.Control.Height.IsEmpty && string.IsNullOrEmpty(renderingContext.Control.Style["height"]);

            string controlWidth        = renderingContext.Control.Width.IsEmpty ? renderingContext.Control.Style["width"] : renderingContext.Control.Width.ToString();
            bool   isControlWidthEmpty = string.IsNullOrEmpty(controlWidth);

            WebControl innerControl = renderingContext.Control.IsReadOnly ? (WebControl)GetLabel(renderingContext) : GetTextBox(renderingContext);

            innerControl.Page = renderingContext.Control.Page.WrappedInstance;

            bool isInnerControlHeightEmpty = innerControl.Height.IsEmpty && string.IsNullOrEmpty(innerControl.Style["height"]);
            bool isInnerControlWidthEmpty  = innerControl.Width.IsEmpty && string.IsNullOrEmpty(innerControl.Style["width"]);

            if (!isControlHeightEmpty && isInnerControlHeightEmpty)
            {
                renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
            }


            if (isInnerControlWidthEmpty)
            {
                if (isControlWidthEmpty)
                {
                    bool needsColumnCount = renderingContext.Control.TextBoxStyle.TextMode != BocTextBoxMode.MultiLine || renderingContext.Control.TextBoxStyle.Columns == null;
                    if (!renderingContext.Control.IsReadOnly && needsColumnCount)
                    {
                        renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, c_defaultTextBoxWidth);
                    }
                }
                else
                {
                    renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, controlWidth);
                }
            }
            innerControl.RenderControl(renderingContext.Writer);

            renderingContext.Writer.RenderEndTag();
        }
        private static string GetText(BocRenderingContext <IBocTextValue> renderingContext)
        {
            var textMode = renderingContext.Control.TextBoxStyle.TextMode;

            if (textMode == BocTextBoxMode.PasswordNoRender || textMode == BocTextBoxMode.PasswordRenderMasked)
            {
                return(new string ((char)9679, 5));
            }

            string text;

            if (textMode == BocTextBoxMode.MultiLine &&
                !string.IsNullOrEmpty(renderingContext.Control.Text))
            {
                //  Allows for an optional \r
                string   temp  = renderingContext.Control.Text.Replace("\r", "");
                string[] lines = temp.Split('\n');
                for (int i = 0; i < lines.Length; i++)
                {
                    lines[i] = HttpUtility.HtmlEncode(lines[i]);
                }
                text = string.Join("<br />", lines);
            }
            else
            {
                text = HttpUtility.HtmlEncode(renderingContext.Control.Text);
            }

            if (string.IsNullOrEmpty(text))
            {
                if (renderingContext.Control.IsDesignMode)
                {
                    text = c_designModeEmptyLabelContents;
                    //  Too long, can't resize in designer to less than the content's width
                    //  Label.Text = "[ " + this.GetType().Name + " \"" + this.ID + "\" ]";
                }
                else
                {
                    text = "&nbsp;";
                }
            }
            return(text);
        }
Example #28
0
        private string GetCssClassInnerContent(BocRenderingContext <TControl> renderingContext)
        {
            string cssClass = CssClassInnerContent;

            if (!renderingContext.Control.HasOptionsMenu)
            {
                cssClass += " " + CssClassWithoutOptionsMenu;
            }
            else if (IsEmbedInOptionsMenu(renderingContext))
            {
                cssClass += " " + CssClassEmbeddedOptionsMenu;
            }
            else
            {
                cssClass += " " + CssClassSeparateOptionsMenu;
            }

            return(cssClass);
        }
Example #29
0
        private void RegisterInitializationScript(BocRenderingContext <TControl> renderingContext)
        {
            string key = typeof(BocReferenceValueRendererBase <>).FullName + "_InitializeGlobals";

            if (renderingContext.Control.Page.ClientScript.IsClientScriptBlockRegistered(typeof(BocReferenceValueRendererBase <>), key))
            {
                return;
            }

            var nullIcon = IconInfo.CreateSpacer(ResourceUrlFactory);

            var script = new StringBuilder(1000);

            script.Append("BocReferenceValueBase.InitializeGlobals(");
            script.AppendFormat("'{0}'", nullIcon.Url);
            script.Append(");");

            renderingContext.Control.Page.ClientScript.RegisterStartupScriptBlock(
                renderingContext.Control, typeof(BocReferenceValueRendererBase <>), key, script.ToString());
        }
Example #30
0
        /// <summary>
        /// Creates a <see cref="TextBox"/> control to use for rendering the <see cref="BocTextValueBase"/> control in edit mode.
        /// </summary>
        /// <returns>A <see cref="TextBox"/> control with the all relevant properties set and all appropriate styles applied to it.</returns>
        protected virtual TextBox GetTextBox(BocRenderingContext <T> renderingContext)
        {
            TextBox textBox = new RenderOnlyTextBox {
                Text = renderingContext.Control.Text
            };

            textBox.ID = renderingContext.Control.GetValueName();
            textBox.EnableViewState = false;
            textBox.Enabled         = renderingContext.Control.Enabled;
            textBox.ReadOnly        = !renderingContext.Control.Enabled;
            textBox.Width           = Unit.Empty;
            textBox.Height          = Unit.Empty;
            textBox.ApplyStyle(renderingContext.Control.CommonStyle);
            renderingContext.Control.TextBoxStyle.ApplyStyle(textBox);
            if (textBox.TextMode == TextBoxMode.MultiLine && textBox.Columns < 1)
            {
                textBox.Columns = c_defaultColumns;
            }

            return(textBox);
        }