protected internal override void Render(HtmlTextWriter writer) { String alternateText = Control.AlternateText; if (!String.IsNullOrEmpty(alternateText)) { writer.EnterStyle(Control.ControlStyle); writer.Write(LiteralControlAdapterUtility.ProcessWmlLiteralText(alternateText)); writer.ExitStyle(Control.ControlStyle); } }
protected internal override void Render(HtmlTextWriter writer) { if (Control.HotSpots.Count > 0) { HotSpotMode mapMode = Control.HotSpotMode; if (mapMode == HotSpotMode.NotSet) { mapMode = HotSpotMode.Navigate; } HotSpotMode spotMode; int hotSpotIndex = 0; string targetURL; string text; foreach (HotSpot item in Control.HotSpots) { text = item.AlternateText; if (text != null && text.Length == 0) { text = item.NavigateUrl; } spotMode = item.HotSpotMode; if (spotMode == HotSpotMode.NotSet) { spotMode = mapMode; } if (spotMode == HotSpotMode.PostBack) { PageAdapter.RenderPostBackEvent(writer, Control.ClientID, hotSpotIndex.ToString(CultureInfo.InvariantCulture), null, text); } else if (spotMode == HotSpotMode.Navigate) { targetURL = Control.ResolveClientUrl(item.NavigateUrl); targetURL = Control.GetCountClickUrl(targetURL); PageAdapter.RenderBeginHyperlink(writer, targetURL, true /* encode */, null, Control.AccessKey); writer.Write(text); PageAdapter.RenderEndHyperlink(writer); } else //HotSpotMode.Inactive { writer.Write(LiteralControlAdapterUtility.ProcessWmlLiteralText(text)); } ++hotSpotIndex; writer.WriteBreak(); } } }
// Transforms text for the target device. The default transformation is the identity transformation, // which does not change the text. internal void RenderTransformedText(WmlTextWriter writer, string text) { bool leadingSpace = false; bool setPendingP = false; bool trailingSpace = false; // p's replaced by brs as in MMIT V1 for valid containment. text = LiteralControlAdapterUtility.PreprocessLiteralText(text); bool isEmpty = (text != null && text.Length == 0); if (isEmpty) { return; } if (writer.TopOfForm) { while (Regex.IsMatch(text, "^(?'space'\\s*)(?:<p|</p)\\s*>")) { text = Regex.Replace(text, "^(?'space'\\s*)(?:<p|</p)\\s*>", "${space}", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); } } if (setPendingP = Regex.IsMatch(text, "</p\\s*>\\s*$", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)) { text = Regex.Replace(text, "</p\\s*>(?'space'\\s*)$", "${space}", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); } text = Regex.Replace(text, "<br\\s*/?>", "<br/>", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); text = Regex.Replace(text, "</p\\s*>(?'space'\\s*)<p\\s*>", "<br/>${space}", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); text = Regex.Replace(text, "(?:<p|</p)\\s*>", "<br/>", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); if (trailingSpace = Regex.IsMatch(text, "\\s+$")) { text = Regex.Replace(text, "\\s+$", String.Empty); } if (leadingSpace = Regex.IsMatch(text, "^\\s+")) { text = Regex.Replace(text, "^\\s+", String.Empty); } text = text.Replace("$", "$$"); // Render text. if (text.Trim().Length > 0) { if (leadingSpace) { writer.WriteLine(); } Style emptyStyle = new Style(); writer.BeginRender(); // write pending tags. writer.EnterStyle(emptyStyle); // VSWhidbey 114083 writer.Write(text); writer.ExitStyle(emptyStyle); writer.EndRender(); if (trailingSpace) { writer.WriteLine(); } } // Whidbey 19653 transform space as newline. If we are at the top of the form (before the leading p), // don't need literal text -it won't be rendered. Similarly, if we are setting a pending p, no need to writeline. else if (!setPendingP && !writer.TopOfForm) { Debug.Assert(!isEmpty, "Empty text. Should have returned before this point."); writer.WriteLine(); } if (setPendingP) { writer.SetPendingP(); } }
public override string TransformText(string text) { return(LiteralControlAdapterUtility.ProcessWmlLiteralText(text)); }
protected internal override void Render(HtmlTextWriter markupWriter) { markupWriter.EnterStyle(Control.ControlStyle); markupWriter.Write(LiteralControlAdapterUtility.ProcessWmlLiteralText(Control.Text)); markupWriter.ExitStyle(Control.ControlStyle); }