One more changelog
[mono.git] / mcs / class / System.Web / System.Web.UI / TemplateBuilder.cs
index f779c5db09c4e8dfdac5ea7f041be1c58a55f793..eaf72d8244a494b37e0c5a18e859f696097706ec 100644 (file)
@@ -5,8 +5,7 @@
 //     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 ()
                {
@@ -59,6 +67,28 @@ namespace System.Web.UI
                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,
@@ -86,5 +116,23 @@ namespace System.Web.UI
                        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
 }