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); }
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(); }
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 }); }
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); }
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) + ";"); }
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); }
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); }
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); }
/// <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 = " "; } } return(text); }
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); }
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()); }
/// <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); }