public override void AppendSubBuilder(ControlBuilder subBuilder) { DeviceSpecificChoiceTemplateBuilder tplBuilder = subBuilder as DeviceSpecificChoiceTemplateBuilder; if (tplBuilder != null) { // Called to add a template. Insert an intermediate control, // by creating and adding its builder. ListDictionary dict = new ListDictionary(); // Add the template's name as a Name attribute for the control. dict["Name"] = tplBuilder.TemplateName; // 1 and "xxxx" are bogus filename/line number values. ControlBuilder container = ControlBuilder.CreateBuilderFromType( Parser, this, typeof(DeviceSpecificChoiceTemplateContainer), "Templates", null, dict, 1, "xxxx"); base.AppendSubBuilder(container); // Now, append the template builder into the new intermediate builder. container.AppendSubBuilder(subBuilder); } else { base.AppendSubBuilder(subBuilder); } }
public void Deny_Unrestricted() { ControlBuilder cb = new ControlBuilder(); Assert.IsNull(cb.ControlType, "ControlType"); Assert.IsFalse(cb.HasAspCode, "HasAspCode"); cb.ID = "mono"; Assert.AreEqual("mono", cb.ID, "ID"); Assert.AreEqual(typeof(Control), cb.NamingContainerType, "NamingContainerType"); Assert.IsNull(cb.TagName, "TagName"); Assert.IsTrue(cb.AllowWhitespaceLiterals(), "AllowWhitespaceLiterals"); cb.AppendLiteralString("mono"); cb.AppendSubBuilder(cb); cb.CloseControl(); Assert.IsNull(cb.GetChildControlType(null, null), "GetChildControlType"); Assert.IsTrue(cb.HasBody(), "HasBody"); Assert.IsFalse(cb.HtmlDecodeLiterals(), "HtmlDecodeLiterals"); cb.Init(null, cb, typeof(TemplateBuilder), "span", "mono", null); Assert.IsFalse(cb.NeedsTagInnerText(), "NeedsTagInnerText"); //cb.OnAppendToParentBuilder (null); cb.SetTagInnerText("mono"); cb = ControlBuilder.CreateBuilderFromType(null, cb, typeof(TemplateBuilder), "span", "mono", null, 0, String.Empty); Assert.IsNotNull(cb, "CreateBuilderFromType"); }
public void AppendSubBuilder() { var bldr = new MultiViewControlBuilder(); var subbldr = new ControlBuilder(); bldr.AppendSubBuilder(subbldr); subbldr = ControlBuilder.CreateBuilderFromType(null, null, typeof(TextBox), "TextBox", null, null, 0, "dummy"); bldr.AppendSubBuilder(subbldr); subbldr = ControlBuilder.CreateBuilderFromType(null, null, typeof(View), "View", null, null, 0, "dummy"); bldr.AppendSubBuilder(subbldr); subbldr = ControlBuilder.CreateBuilderFromType(null, null, typeof(string), "Literal", null, null, 0, "dummy"); bldr.AppendSubBuilder(subbldr); }
internal /*public*/ void AddDataBinding(ControlBuilder builder) { if (IsInTag) { TagInnerTextElements.Add(builder); } else { ControlBuilder newBuilder = ControlBuilder.CreateBuilderFromType( _parser, _parentBuilder, typeof(LiteralText), typeof(LiteralText).Name, null, GetPropertyDictionary(CurrentFormat, false, null), _lineNumber, _fileName); _parentBuilder.AppendSubBuilder(newBuilder); newBuilder.AppendSubBuilder(builder); OnAfterDataBoundLiteral(); } }
protected override void ProcessElement(LiteralElement element) { ControlBuilder subBuilder; switch (element.Type) { case LiteralElementType.Text: Debug.Assert(_tagInnerTextElements == null); subBuilder = ControlBuilder.CreateBuilderFromType( _parser, _parentBuilder, typeof(LiteralText), typeof(LiteralText).Name, null, GetPropertyDictionary(element.Format, element.BreakAfter, null), _lineNumber, _fileName); break; case LiteralElementType.Anchor: { String linkUrl = (String)element.GetAttribute("href"); subBuilder = ControlBuilder.CreateBuilderFromType( _parser, _parentBuilder, typeof(LiteralLink), typeof(LiteralLink).Name, null, GetPropertyDictionary(element.Format, element.BreakAfter, linkUrl), _lineNumber, _fileName); AddTagInnerTextElements(subBuilder); break; } default: return; } _parentBuilder.AppendSubBuilder(subBuilder); if (element.Text != String.Empty) { subBuilder.AppendLiteralString(element.Text); } }