// Gonzalo Paniagua Javier (gonzalo@ximian.com)
//
// (C) 2003 Ximian, Inc. (http://www.ximian.com)
-//
-
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
using System.Collections;
using System.Reflection;
+using System.Security.Permissions;
+#if NET_2_0
+using System.ComponentModel;
+#endif
+
+namespace System.Web.UI {
+
+ // CAS
+ [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+ [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+ public class TemplateBuilder : ControlBuilder, ITemplate {
-namespace System.Web.UI
-{
- public class TemplateBuilder : ControlBuilder, ITemplate
- {
string text;
TemplateContainerAttribute containerAttribute;
+#if NET_2_0
+ ArrayList bindings;
+#endif
public TemplateBuilder ()
{
internal Type ContainerType {
get { return containerAttribute != null ? containerAttribute.ContainerType : null; }
}
+
+#if NET_2_0
+ internal BindingDirection BindingDirection {
+ get { return containerAttribute != null ? containerAttribute.BindingDirection : BindingDirection.OneWay; }
+ }
+
+ internal void RegisterBoundProperty (Type controlType, string controlProperty, string controlId, string fieldName)
+ {
+ if (bindings == null) bindings = new ArrayList ();
+ bindings.Add (new TemplateBinding (controlType, controlProperty, controlId, fieldName));
+ }
+
+ internal ICollection Bindings {
+ get { return bindings; }
+ }
+
+ [MonoTODO ("why override?")]
+ public override object BuildObject ()
+ {
+ return base.BuildObject ();
+ }
+#endif
public override void Init (TemplateParser parser,
ControlBuilder parentBuilder,
this.text = text;
}
}
+
+#if NET_2_0
+ internal class TemplateBinding
+ {
+ public Type ControlType;
+ public string ControlProperty;
+ public string ControlId;
+ public string FieldName;
+
+ public TemplateBinding (Type controlType, string controlProperty, string controlId, string fieldName)
+ {
+ ControlType = controlType;
+ ControlProperty = controlProperty;
+ ControlId = controlId;
+ FieldName = fieldName;
+ }
+ }
+#endif
}