2006-11-28 Miguel de Icaza <miguel@novell.com>
authorMiguel de Icaza <miguel@gnome.org>
Tue, 28 Nov 2006 22:15:23 +0000 (22:15 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Tue, 28 Nov 2006 22:15:23 +0000 (22:15 -0000)
* Rationalize the user of MonoTODOs.

- Removed all the TODOs that were only overwritten methods
and had no further information.

- Methods that threw exceptions now have the message "Not
implemnted".

- Methods that return some constant are declared like
that.

- Removed a bunch of stale MonoTODOs that had not been
removed.

svn path=/trunk/mcs/; revision=68620

136 files changed:
mcs/class/System.Web/ChangeLog
mcs/class/System.Web/System.Web.Compilation/AssemblyBuilder.cs
mcs/class/System.Web/System.Web.Compilation/BuildDependencySet.cs
mcs/class/System.Web/System.Web.Compilation/BuildManager.cs
mcs/class/System.Web/System.Web.Compilation/ClientBuildManager.cs
mcs/class/System.Web/System.Web.Compilation/ConnectionStringsExpressionBuilder.cs
mcs/class/System.Web/System.Web.Compilation/ExpressionEditorAttribute.cs
mcs/class/System.Web/System.Web.Compilation/LinePragmaCodeInfo.cs
mcs/class/System.Web/System.Web.Configuration_2.0/AdapterDictionary.cs
mcs/class/System.Web/System.Web.Configuration_2.0/AuthenticationSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/AuthorizationRule.cs
mcs/class/System.Web/System.Web.Configuration_2.0/AuthorizationSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/BufferModeSettings.cs
mcs/class/System.Web/System.Web.Configuration_2.0/CompilationSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/CustomErrorsSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/EventMappingSettingsCollection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/FormsAuthenticationConfiguration.cs
mcs/class/System.Web/System.Web.Configuration_2.0/HttpModuleAction.cs
mcs/class/System.Web/System.Web.Configuration_2.0/HttpModuleActionCollection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/HttpModulesSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/IdentitySection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/MachineKeySection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/PagesSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/PassportAuthentication.cs
mcs/class/System.Web/System.Web.Configuration_2.0/ProcessModelSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/ProfilePropertyNameValidator.cs
mcs/class/System.Web/System.Web.Configuration_2.0/RegexWorker.cs
mcs/class/System.Web/System.Web.Configuration_2.0/SessionStateSection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/SqlCacheDependencyDatabase.cs
mcs/class/System.Web/System.Web.Configuration_2.0/SqlCacheDependencySection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/TagMapInfo.cs
mcs/class/System.Web/System.Web.Configuration_2.0/TagPrefixCollection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/TagPrefixInfo.cs
mcs/class/System.Web/System.Web.Configuration_2.0/UrlMapping.cs
mcs/class/System.Web/System.Web.Configuration_2.0/UrlMappingCollection.cs
mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationHost.cs
mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
mcs/class/System.Web/System.Web.Handlers/TraceHandler.cs
mcs/class/System.Web/System.Web.Hosting/AppDomainFactory.cs
mcs/class/System.Web/System.Web.Hosting/AppManagerAppDomainFactory.cs
mcs/class/System.Web/System.Web.Hosting/HostingEnvironment.cs
mcs/class/System.Web/System.Web.Hosting/ISAPIRuntime.cs
mcs/class/System.Web/System.Web.Profile/CustomProviderDataAttribute.cs
mcs/class/System.Web/System.Web.Profile/DefaultProfile.cs
mcs/class/System.Web/System.Web.Profile/SettingsAllowAnonymousAttribute.cs
mcs/class/System.Web/System.Web.Security/ActiveDirectoryMembershipProvider.cs
mcs/class/System.Web/System.Web.Security/FileAuthorizationModule.cs
mcs/class/System.Web/System.Web.Security/PassportIdentity.cs
mcs/class/System.Web/System.Web.Security/RolePrincipal.cs
mcs/class/System.Web/System.Web.Security/Roles.cs
mcs/class/System.Web/System.Web.Security/SqlMembershipProvider.cs
mcs/class/System.Web/System.Web.Security/SqlRoleProvider.cs
mcs/class/System.Web/System.Web.Security/UrlAuthorizationModule.cs
mcs/class/System.Web/System.Web.Security/WindowsAuthenticationModule.cs
mcs/class/System.Web/System.Web.SessionState/StateRuntime.cs
mcs/class/System.Web/System.Web.UI.Adapters/ControlAdapter.cs
mcs/class/System.Web/System.Web.UI.Adapters/PageAdapter.cs
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlSelect.cs
mcs/class/System.Web/System.Web.UI.WebControls.Adapters/MenuAdapter.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/ConnectionPoint.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/ConsumerConnectionPoint.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/EditorPart.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/Part.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/ProviderConnectionPoint.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/WebPart.cs
mcs/class/System.Web/System.Web.UI.WebControls.WebParts/WebPartVerb.cs
mcs/class/System.Web/System.Web.UI.WebControls/AccessDataSource.cs
mcs/class/System.Web/System.Web.UI.WebControls/AdRotator.cs
mcs/class/System.Web/System.Web.UI.WebControls/AutoGeneratedField.cs
mcs/class/System.Web/System.Web.UI.WebControls/BaseCompareValidator.cs
mcs/class/System.Web/System.Web.UI.WebControls/BoundField.cs
mcs/class/System.Web/System.Web.UI.WebControls/ButtonField.cs
mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs
mcs/class/System.Web/System.Web.UI.WebControls/CheckBox.cs
mcs/class/System.Web/System.Web.UI.WebControls/CreateUserWizard.cs
mcs/class/System.Web/System.Web.UI.WebControls/CustomValidator.cs
mcs/class/System.Web/System.Web.UI.WebControls/DataGrid.cs
mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs
mcs/class/System.Web/System.Web.UI.WebControls/DropDownList.cs
mcs/class/System.Web/System.Web.UI.WebControls/EmbeddedMailObjectsCollection.cs
mcs/class/System.Web/System.Web.UI.WebControls/FormView.cs
mcs/class/System.Web/System.Web.UI.WebControls/HierarchicalDataBoundControl.cs
mcs/class/System.Web/System.Web.UI.WebControls/ImageButton.cs
mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs
mcs/class/System.Web/System.Web.UI.WebControls/Literal.cs
mcs/class/System.Web/System.Web.UI.WebControls/MailDefinition.cs
mcs/class/System.Web/System.Web.UI.WebControls/Menu.cs
mcs/class/System.Web/System.Web.UI.WebControls/MenuItemBinding.cs
mcs/class/System.Web/System.Web.UI.WebControls/MenuItemTemplateContainer.cs
mcs/class/System.Web/System.Web.UI.WebControls/PasswordRecovery.cs
mcs/class/System.Web/System.Web.UI.WebControls/RadioButtonList.cs
mcs/class/System.Web/System.Web.UI.WebControls/Repeater.cs
mcs/class/System.Web/System.Web.UI.WebControls/RoleGroupCollection.cs
mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSourceView.cs
mcs/class/System.Web/System.Web.UI.WebControls/SqlDataSource.cs
mcs/class/System.Web/System.Web.UI.WebControls/SqlDataSourceView.cs
mcs/class/System.Web/System.Web.UI.WebControls/Style.cs
mcs/class/System.Web/System.Web.UI.WebControls/SubMenuStyle.cs
mcs/class/System.Web/System.Web.UI.WebControls/Table.cs
mcs/class/System.Web/System.Web.UI.WebControls/TextBox.cs
mcs/class/System.Web/System.Web.UI.WebControls/TreeNode.cs
mcs/class/System.Web/System.Web.UI.WebControls/TreeNodeBinding.cs
mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs
mcs/class/System.Web/System.Web.UI.WebControls/Wizard.cs
mcs/class/System.Web/System.Web.UI.WebControls/Xml.cs
mcs/class/System.Web/System.Web.UI.WebControls/XmlDataSource.cs
mcs/class/System.Web/System.Web.UI/BaseTemplateParser.cs
mcs/class/System.Web/System.Web.UI/ChtmlTextWriter.cs
mcs/class/System.Web/System.Web.UI/Control.cs
mcs/class/System.Web/System.Web.UI/ControlCachePolicy.cs
mcs/class/System.Web/System.Web.UI/DataSourceControl.cs
mcs/class/System.Web/System.Web.UI/DesignTimeTemplateParser.cs
mcs/class/System.Web/System.Web.UI/Html32TextWriter.cs
mcs/class/System.Web/System.Web.UI/HtmlTextWriter.cs
mcs/class/System.Web/System.Web.UI/Page.cs
mcs/class/System.Web/System.Web.UI/PageParser.jvm.cs
mcs/class/System.Web/System.Web.UI/PageTheme.cs
mcs/class/System.Web/System.Web.UI/SkinBuilder.cs
mcs/class/System.Web/System.Web.UI/TemplateBuilder.cs
mcs/class/System.Web/System.Web.UI/TemplateControl.cs
mcs/class/System.Web/System.Web.UI/ThemeProvider.cs
mcs/class/System.Web/System.Web.UI/UserControl.cs
mcs/class/System.Web/System.Web.UI/UserControlControlBuilder.cs
mcs/class/System.Web/System.Web.UI/XhtmlTextWriter.cs
mcs/class/System.Web/System.Web.Util/Transactions.cs
mcs/class/System.Web/System.Web.Util/WorkItem.cs
mcs/class/System.Web/System.Web/BrowserCapabilities.cs
mcs/class/System.Web/System.Web/DefaultHttpHandler.cs
mcs/class/System.Web/System.Web/HttpCachePolicy.cs
mcs/class/System.Web/System.Web/HttpContext.cs
mcs/class/System.Web/System.Web/HttpResponse.cs
mcs/class/System.Web/System.Web/HttpServerUtility.cs
mcs/class/System.Web/System.Web/HttpStaticObjectsCollection.cs
mcs/class/System.Web/System.Web/SiteMapNode.cs
mcs/class/System.Web/System.Web/TraceContext.cs
mcs/class/System.Web/System.Web/XmlSiteMapProvider.cs

index 0896e57892c244280d5e4557ab88fa33e7a68c10..328a3fa5a8934ba007e523e6d1e7e43288a22745 100644 (file)
@@ -1,3 +1,19 @@
+2006-11-28  Miguel de Icaza  <miguel@novell.com>
+
+       * Rationalize the user of MonoTODOs.  
+
+               - Removed all the TODOs that were only overwritten methods
+               and had no further information.
+
+               - Methods that threw exceptions now have the message "Not
+               implemnted".
+
+               - Methods that return some constant are declared like
+               that.
+
+               - Removed a bunch of stale MonoTODOs that had not been
+               removed. 
+
 2006-11-27  Yoni Klain   <yonik@mainsoft.com>
 
        * MakeFile added new resources NoEventValidation.aspx for ImageButtonTest.cs
index ce5a02c203d1136abe42cee8afa603dcd5ea7918..6c4f1462a1f00d37f6eeb96d3ffbbe70f3d9fbaa 100644 (file)
@@ -162,7 +162,7 @@ namespace System.Web.Compilation {
                        return stream;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, does nothing")]
                public void GenerateTypeFactory (string typeName)
                {
                        // Do nothing by now.
index a97f10d1ca5caa87bdcf91f6cfe2b858eb7a270e..7f969d3ff42ee808ba004eecdf88f9f13f407562 100644 (file)
@@ -41,14 +41,14 @@ namespace System.Web.Compilation {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string HashCode {
                        get {
                                throw new NotImplementedException ();
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public IEnumerable VirtualPaths {
                        get {
                                throw new NotImplementedException ();
index 50d7f4780915bbe8ca2bbb3a9870e5d41241b971..cd41569a812973b03ab070355215f66d980892f5 100644 (file)
@@ -75,7 +75,7 @@ namespace System.Web.Compilation {
                        return Activator.CreateInstance (type, null);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, always returns null")]
                public static BuildDependencySet GetCachedBuildDependencySet (HttpContext context, string virtualPath)
                {
                        return null; // null is ok here until we store the dependency set in the Cache.
index 3d54f4662adcc6727afb71dae0a238255ddd8df0..16267b2ffc86ea8f4c4ea1d75704f003dc6e9531 100644 (file)
@@ -133,7 +133,7 @@ namespace System.Web.Compilation {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void CompileApplicationDependencies ()
                {
                        throw new NotImplementedException ();
@@ -144,7 +144,7 @@ namespace System.Web.Compilation {
                        CompileFile (virtualPath, null);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void CompileFile (string virtualPath, ClientBuildManagerCallback callback)
                {
                        // 1. Creates the Host
@@ -179,7 +179,7 @@ namespace System.Web.Compilation {
                        return null;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public CodeCompileUnit GenerateCodeCompileUnit (string virtualPath,
                                                                string virtualFileString,
                                                                out Type codeDomProviderType,
@@ -207,13 +207,13 @@ namespace System.Web.Compilation {
                        return shutdown_directories;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public IDictionary GetBrowserDefinitions ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void GetCodeDirectoryInformation (string virtualCodeDir,
                                                        out Type codeDomProviderType,
                                                        out CompilerParameters compilerParameters,
@@ -222,7 +222,7 @@ namespace System.Web.Compilation {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public Type GetCompiledType (string virtualPath)
                {
                        // CompileFile + get the type based on .compiled file information
@@ -230,7 +230,7 @@ namespace System.Web.Compilation {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void GetCompilerParameters (string virtualPath,
                                                out Type codeDomProviderType,
                                                out CompilerParameters compilerParameters)
@@ -238,14 +238,14 @@ namespace System.Web.Compilation {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string GetGeneratedFileVirtualPath (string filePath)
                {
                        // returns empty string for any vpath. Test with real paths.
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string GetGeneratedSourceFile (string virtualPath)
                {
                        // This one takes a directory name /xxx and /xxx/App_Code throw either
@@ -253,7 +253,7 @@ namespace System.Web.Compilation {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string [] GetTopLevelAssemblyReferences (string virtualPath)
                {
                        throw new NotImplementedException ();
@@ -271,26 +271,26 @@ namespace System.Web.Compilation {
                        return null;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool IsCodeAssembly (string assemblyName)
                {
                        // Trying all the assemblies loaded by FullName and GetName().Name yield false here :-?
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void PrecompileApplication ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void PrecompileApplication (ClientBuildManagerCallback callback)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void PrecompileApplication (ClientBuildManagerCallback callback, bool forceCleanBuild)
                {
                        throw new NotImplementedException ();
index 2242496cdc010a6dab1c6a07fd6736ccdb2dd499..07a29d509c4caad90d2b73558b8f400dd231313c 100644 (file)
@@ -70,7 +70,7 @@ namespace System.Web.Compilation {
                                return conn.ProviderName;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override object ParseExpression (string expression, Type propertyType, ExpressionBuilderContext context)
                {
                        throw new NotImplementedException ();
index 646cef4c93859deaf1f9a451b5ffb48057114c84..fc2282b2bc09823b460ef451f57788ad9eb70ecd 100644 (file)
@@ -51,13 +51,13 @@ namespace System.Web.Compilation {
                        get { return typeName; }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool Equals (object obj)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override int GetHashCode ()
                {
                        throw new NotImplementedException ();
index 0e862021e5a78f271a5c21197addc875152b6a88..902776ec13c05762febdaa058ba95b0fa239509d 100644 (file)
@@ -39,35 +39,35 @@ namespace System.Web.Compilation {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public int CodeLength {
                        get {
                                throw new NotImplementedException ();
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool IsCodeNugget {
                        get {
                                throw new NotImplementedException ();
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public int StartColumn {
                        get {
                                throw new NotImplementedException ();
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public int StartGeneratedColumn {
                        get {
                                throw new NotImplementedException ();
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public int StartLine {
                        get {
                                throw new NotImplementedException ();
index 45f5efe1219a1c9ac72b2a5f5177cf97d3b14658..38ef53530b78120cb3d935620cb33262573011f9 100644 (file)
@@ -43,7 +43,7 @@ namespace System.Web.Configuration
                        set { base [key] = value; }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                void IDeserializationCallback.OnDeserialization (object sender)
                {
                        throw new NotImplementedException ();
index d1b1db37096b038a65c62797502a7f8bb2dbd042..8bb525a9982e896d0f37bb957d56bd58305f9832 100644 (file)
@@ -67,7 +67,6 @@ namespace System.Web.Configuration
                {
                }
 
-               [MonoTODO]
                protected override void Reset (ConfigurationElement parentElement)
                {
                        base.Reset (parentElement);
index f09068863cc2b182315b85aad235af15f5766e00..36a779687e8936b37ed5e880d77a9d6a96e1be56 100644 (file)
@@ -125,7 +125,7 @@ namespace System.Web.Configuration {
                        return hashCode;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override bool IsModified ()
                {
                        throw new NotImplementedException ();
@@ -159,7 +159,6 @@ namespace System.Web.Configuration {
                        base.Reset (parentElement);
                }
 
-               [MonoTODO]
                protected override void ResetModified ()
                {
                        base.ResetModified ();
@@ -182,13 +181,11 @@ namespace System.Web.Configuration {
                        return true;
                }
 
-               [MonoTODO]
                protected override void SetReadOnly ()
                {
                        base.SetReadOnly();
                }
 
-               [MonoTODO]
                protected override void Unmerge (ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode)
                {
                        base.Unmerge (sourceElement, parentElement, saveMode);
index 6d32578ad3569a5a23e027ea9c97ba3196dae8d0..a2e872c02438128152065590b4fb1f887e22d24d 100644 (file)
@@ -51,7 +51,6 @@ namespace System.Web.Configuration {
                        properties.Add (rulesProp);
                }
 
-               [MonoTODO]
                protected override void PostDeserialize()
                {
                        base.PostDeserialize ();
index 04d4ec9500abe2c7a7c19fc3eaca87ca2e3dacea..2e6bcc3356aa1b9eb214275cc2d2a687499fe414 100644 (file)
@@ -103,7 +103,7 @@ namespace System.Web.Configuration {
                        this.MaxBufferThreads = maxBufferThreads;
                }
 
-               [MonoTODO]
+               [MonoTODO("Should do some validation here")]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index 67cdf6f31b5becc74ee95acb6e8be27d3c0ab162..b2cfc61a9eb25c32245671b6e00a894d7ecaa971 100644 (file)
@@ -113,7 +113,6 @@ namespace System.Web.Configuration
                {
                }
 
-               [MonoTODO]
                protected override void PostDeserialize ()
                {
                        base.PostDeserialize ();
index 063bf2adcd4e37b1f2f6c536785113a2347c4c4d..f1792d6bdabb41d2be8cfcd375df4f2c9348872c 100644 (file)
@@ -61,7 +61,6 @@ namespace System.Web.Configuration {
 
                }
 
-               [MonoTODO]
                protected override void DeserializeSection (XmlReader reader)
                {
                        base.DeserializeSection (reader);
index 1dedd5ad3330bc6fd80ae040907efbbfc3530eed..8b668c316fb119e31cd822704fce1c83f619d456 100644 (file)
@@ -70,7 +70,6 @@ namespace System.Web.Configuration {
                        return ((EventMappingSettings)element).Name;
                }
 
-               [MonoTODO]
                public int IndexOf (string name)
                {
                        EventMappingSettings settings = (EventMappingSettings)BaseGet (name);
index 4df69721900d2c01a2120aa37912dca91d1f6db5..177d1d883615772d66a5c45eb64a1c72b4d693ea 100644 (file)
@@ -113,7 +113,6 @@ namespace System.Web.Configuration
                {
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index 2be94a227c35fabe1b8af1a5544d3972de6b28f8..4154e87419f040aa0643f9fcf7031f5bd5c44337 100644 (file)
@@ -62,14 +62,12 @@ namespace System.Web.Configuration
                {
                }
 
-               [MonoTODO]
                public HttpModuleAction (string name, string type)
                {
                        this.Name = name;
                        this.Type = type;
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index 770377d5cb44696f2035bacd5e6d7302671c2f17..46599880a8f962cdf81679bcbc52140de497ce10 100644 (file)
@@ -89,7 +89,6 @@ namespace System.Web.Configuration
                        BaseRemoveAt (index);
                }
 
-               [MonoTODO]
                protected override bool IsElementRemovable (ConfigurationElement element)
                {
                        return base.IsElementRemovable (element);
index 6b674b22e3c28ee8c1db83c8b32126bfda4f00bc..778015b82a2d3272ef34bf553ebf31a49f61bc4e 100644 (file)
@@ -57,7 +57,6 @@ namespace System.Web.Configuration
                        }
                }
 
-               [MonoTODO]
                protected override ConfigurationPropertyCollection Properties {
                        get {
                                return properties;
@@ -65,7 +64,6 @@ namespace System.Web.Configuration
                }
 
                /* stolen from the 1.0 S.W.Config ModulesConfiguration.cs */
-               [MonoTODO]
                internal HttpModuleCollection LoadModules (HttpApplication app)
                {
                        HttpModuleCollection coll = new HttpModuleCollection ();
index 6ae34f5acf246833772c2915d620ba42aeb86e0a..a9055dd8b4bd72f7c8344084f47ae2c4dfec67ee 100644 (file)
@@ -60,12 +60,10 @@ namespace System.Web.Configuration {
                        return this;
                }
 
-               [MonoTODO]
                protected override void Reset (ConfigurationElement parentElement)
                {
                }
 
-               [MonoTODO]
                protected override void Unmerge (ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode saveMode)
                {
                }
index 0ba0a10bd745a758a7df7a371850db9d623b47b7..90da60ab80722ebe105d6e5e2668c6600c66442b 100644 (file)
@@ -74,7 +74,6 @@ namespace System.Web.Configuration {
                        AutoGenKeys ();
                }
 
-               [MonoTODO]
                protected override void Reset (ConfigurationElement parentElement)
                {
                        base.Reset (parentElement);
index 768f4b1c39d0b52cf86300867166e8a67fc337bd..f8777d1054e522c695f9ef704c39c3c32b3e5c79 100644 (file)
@@ -264,7 +264,6 @@ namespace System.Web.Configuration
                        get { return properties; }
                }
 
-               [MonoTODO]
                protected override void DeserializeSection (XmlReader reader)
                {
                        base.DeserializeSection (reader);
index 6b3a3765a35ea6c1c82c5d0ad7835035b0b7d85c..5345d55ad6727d925f155ee86b96ff0589f7c897 100644 (file)
@@ -53,7 +53,6 @@ namespace System.Web.Configuration {
                        elementProperty = new ConfigurationElementProperty (new CallbackValidator (typeof (PassportAuthentication), ValidateElement));
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index 5992a2c7174aea88016283e7304473d41437ca24..487757de17ff7ccab910c005c536656712a98f80 100644 (file)
@@ -188,7 +188,6 @@ namespace System.Web.Configuration {
                        elementProperty = new ConfigurationElementProperty (new CallbackValidator (typeof (ProcessModelSection), ValidateElement));
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index b0fdb953a15105480c6f6545dfb6426e6ce05af2..b479aa6f5f2df2a359dcd68a548d1bd8d724a487 100644 (file)
@@ -38,7 +38,6 @@ namespace System.Web.Configuration
                {
                }
 
-               [MonoTODO]
                public override void Validate (object value)
                {
                        base.Validate (value);
index 35fd8b414da5c434bdd574aebb5e8feeda4b6120..4e3004f2c7cd0c47f383de5b53ff4ded5be3f4de 100644 (file)
@@ -41,13 +41,13 @@ namespace System.Web.Configuration {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Mono does not currently need this routine.  Always returns false.")]
                public bool ProcessRegex (string target, string regexExpression)
                {
                        return false;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Mono does not currently need this routine. Not implemented.")]
                public string this [string key] {
                        get { throw new NotImplementedException (); }
                }
index bc356a33a3d1f81891567b568293fc803176cbe6..5ff437404c77f0187c86b0c441893843dbaa685e 100644 (file)
@@ -107,7 +107,6 @@ namespace System.Web.Configuration {
                        elementProperty = new ConfigurationElementProperty (new CallbackValidator (typeof (SessionStateSection), ValidateElement));
                }
 
-               [MonoTODO]
                protected override void PostDeserialize ()
                {
                        base.PostDeserialize ();
@@ -207,7 +206,6 @@ namespace System.Web.Configuration {
                        set { base[useHostingIdentityProp] = value; }
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index c10c9f51a7eb32ff417d9e442976b12a51dfc057..719a40e58aff036ea44c40970045f818818e9834 100644 (file)
@@ -82,7 +82,6 @@ namespace System.Web.Configuration {
                        this.PollTime = pollTime;
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index 4f2772c6e2f35adfb2f0498b2db80e84fb0aa0f7..f4755b97064d6fb9640f6f584a54bbc408ad3ce7 100644 (file)
@@ -59,7 +59,6 @@ namespace System.Web.Configuration {
                        elementProperty = new ConfigurationElementProperty (new CallbackValidator (typeof (SqlCacheDependencySection), ValidateElement));
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
@@ -69,7 +68,6 @@ namespace System.Web.Configuration {
                        get { return elementProperty; }
                }
 
-               [MonoTODO]
                protected override void PostDeserialize ()
                {
                        base.PostDeserialize ();
index 4ff3a3f0a24da7e50c648e0ac8a2039b8655cc43..692de48f2bee882806c0abb05d0c4352d0871100 100644 (file)
@@ -81,7 +81,6 @@ namespace System.Web.Configuration
                        return MappedTagType.GetHashCode() + TagType.GetHashCode();
                }
 
-               [MonoTODO]
                protected override bool SerializeElement (XmlWriter writer, bool serializeCollectionKey)
                {
                        bool ret = base.SerializeElement (writer, serializeCollectionKey);
index 032963c93e0dc84121d4dbebcb3b2f60cf2110fd..5f71b034ba64a96bc6153819e781486b4241379b 100644 (file)
@@ -65,7 +65,6 @@ namespace System.Web.Configuration
                        return new TagPrefixInfo ();
                }
 
-               [MonoTODO]
                protected override object GetElementKey (ConfigurationElement element)
                {
                        return ((TagPrefixInfo)element).TagPrefix;
index ef417df2456742a201966ed63e283171742bf469..90781edc567b4e8a6e44e3ec49fbc57ac5b1a989 100644 (file)
@@ -83,7 +83,6 @@ namespace System.Web.Configuration
                        this.Source = source;
                }
 
-               [MonoTODO]
                static void ValidateElement (object o)
                {
                        /* XXX do some sort of element validation here? */
index f08cfa5ed7fbea5f92a870c37348adf4d068641d..8f2773e72fbee6ee2bdfa82969b6b09b3678b5af 100644 (file)
@@ -42,7 +42,6 @@ namespace System.Web.Configuration {
                static ConfigurationProperty urlProp;
                static ConfigurationPropertyCollection properties;
 
-               [MonoTODO]
                static void ValidateUrl (object value)
                {
                        /* XXX validate the url */
index 7aa9e0e1f3283f1beeb8b8686370edf056019743..35c689dc54d592310b049e9d4b8ec785ad9924f3 100644 (file)
@@ -99,7 +99,7 @@ namespace System.Web.Configuration {
                        set { if (BaseGet (index) != null) BaseRemoveAt (index); BaseAdd (index, value); }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public new UrlMapping this [string name] {
                        get { throw new NotImplementedException (); }
                }
index 56a19d6fe7fece53c6265c0ac12894388d024f5b..2de223f764646d9a82ddc15b13dcf17c6265c1ac 100644 (file)
@@ -356,7 +356,7 @@ namespace System.Web.Configuration
                        return new FileStream (streamName, FileMode.Open, FileAccess.Read);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual Stream OpenStreamForRead (string streamName, bool assertPermissions)
                {
                        throw new NotImplementedException ();
@@ -367,7 +367,7 @@ namespace System.Web.Configuration
                        return new FileStream (streamName, FileMode.Create, FileAccess.Write);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual Stream OpenStreamForWrite (string streamName, string templateStreamName, ref object writeContext, bool assertPermissions)
                {
                        throw new NotImplementedException ();
@@ -383,7 +383,7 @@ namespace System.Web.Configuration
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual void RequireCompleteInit (IInternalConfigRecord configRecord)
                {
                        throw new NotImplementedException ();
@@ -405,11 +405,12 @@ namespace System.Web.Configuration
                                throw new ConfigurationErrorsException ("The section can't be defined in this file (the allowed definition context is '" + allowDefinition + "').", errorInfo.Filename, errorInfo.LineNumber);
                }
                
+               [MonoTODO("Does nothing")]
                public virtual void WriteCompleted (string streamName, bool success, object writeContext)
                {
                }
                
-               [MonoTODO]
+               [MonoTODO("Does nothing")]
                public virtual void WriteCompleted (string streamName, bool success, object writeContext, bool assertPermissions)
                {
                }
@@ -430,30 +431,30 @@ namespace System.Web.Configuration
                        get { return false; }
                }
 
-               [MonoTODO]
+               [MonoTODO("Always returns false")]
                public virtual bool IsRemote {
                        get { return false; }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool IsFullTrustSectionWithoutAptcaAllowed (IInternalConfigRecord configRecord)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool IsInitDelayed (IInternalConfigRecord configRecord)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool IsSecondaryRoot (string configPath)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool IsTrustedConfigPath (string configPath)
                {
                        throw new NotImplementedException ();
index 55b36a133419e0977939da0e6fdd7ed468a7d810..c6b1f137b599d74a1ece3291db0e54f5905b029b 100644 (file)
@@ -121,7 +121,7 @@ namespace System.Web.Configuration {
                        return OpenMachineConfiguration ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Mono does not support remote configuration")]
                public static _Configuration OpenMachineConfiguration (string locationSubPath,
                                                                       string server)
                {
@@ -131,7 +131,7 @@ namespace System.Web.Configuration {
                        throw new NotSupportedException ("Mono doesn't support remote configuration");
                }
 
-               [MonoTODO]
+               [MonoTODO("Mono does not support remote configuration")]
                public static _Configuration OpenMachineConfiguration (string locationSubPath,
                                                                       string server,
                                                                       IntPtr userToken)
@@ -141,7 +141,7 @@ namespace System.Web.Configuration {
                        throw new NotSupportedException ("Mono doesn't support remote configuration");
                }
 
-               [MonoTODO]
+               [MonoTODO("Mono does not support remote configuration")]
                public static _Configuration OpenMachineConfiguration (string locationSubPath,
                                                                       string server,
                                                                       string userName,
@@ -167,10 +167,9 @@ namespace System.Web.Configuration {
                        return OpenWebConfiguration (path, site, locationSubPath, null, null, null);
                }
 
-               [MonoTODO]
                public static _Configuration OpenWebConfiguration (string path, string site, string locationSubPath, string server)
                {
-                       throw new NotImplementedException ();
+                       return OpenWebConfiguration (path, site, locationSubPath, server, null, null);
                }
 
                public static _Configuration OpenWebConfiguration (string path, string site, string locationSubPath, string server, IntPtr userToken)
@@ -178,7 +177,6 @@ namespace System.Web.Configuration {
                        return OpenWebConfiguration (path, site, locationSubPath, server, null, null);
                }
                
-               [MonoTODO]
                public static _Configuration OpenWebConfiguration (string path, string site, string locationSubPath, string server, string userName, string password)
                {
                        if (path == null)
@@ -222,13 +220,11 @@ namespace System.Web.Configuration {
                        return ConfigurationFactory.Create (typeof(WebConfigurationHost), fileMap, path);
                }
                
-               [MonoTODO ("Do something with the extra parameters")]
                public static _Configuration OpenMappedWebConfiguration (WebConfigurationFileMap fileMap, string path, string site)
                {
                        return ConfigurationFactory.Create (typeof(WebConfigurationHost), fileMap, path, site);
                }
                
-               [MonoTODO ("Do something with the extra parameters")]
                public static _Configuration OpenMappedWebConfiguration (WebConfigurationFileMap fileMap, string path, string site, string locationSubPath)
                {
                        return ConfigurationFactory.Create (typeof(WebConfigurationHost), fileMap, path, site, locationSubPath);
@@ -239,7 +235,6 @@ namespace System.Web.Configuration {
                        return ConfigurationFactory.Create (typeof(WebConfigurationHost), fileMap);
                }
 
-               [MonoTODO ("need to handle locationSubPath")]
                public static _Configuration OpenMappedMachineConfiguration (ConfigurationFileMap fileMap,
                                                                             string locationSubPath)
                {
@@ -261,7 +256,6 @@ namespace System.Web.Configuration {
                                return c.GetSection (sectionName);
                }
 
-               [MonoTODO]
                public static object GetSection (string sectionName, string path)
                {
                        try {
@@ -292,7 +286,6 @@ namespace System.Web.Configuration {
 
                static MethodInfo get_runtime_object = typeof (ConfigurationSection).GetMethod ("GetRuntimeObject", BindingFlags.NonPublic | BindingFlags.Instance);
 
-               [MonoTODO]
                public static object GetWebApplicationSection (string sectionName)
                {
                        _Configuration config = GetWebApplicationConfiguration ();
index fcc3674dfe4c8518e117fee28c46b370200a5bfe..69fd3cdc1bc84b0b9ffd374c7d577261391a052e 100644 (file)
@@ -200,22 +200,22 @@ namespace System.Web.Handlers
                        manager.TraceData [item - 1].Render (output);
                }
 
-               [MonoTODO ("Appears in class status, but...")]
+               [MonoTODO ("Not implemented, does nothing")]
                protected void ShowDetails (DataSet data)
                {
                }
 #if NET_2_0
-               [MonoTODO ("Appears in class status, but...")]
+               [MonoTODO ("Not implemented, does nothing")]
                protected void ShowRequests (IList data)
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, does nothing")]
                protected void ShowVersionDetails ()
                {
                }
 #else
-               [MonoTODO ("Appears in class status, but...")]
+               [MonoTODO ("Not implemented, does nothing")]
                protected void ShowRequests (ArrayList list)
                {
                }
index 065e08157d5f4c76509d40f0871b025782e0f6e4..542beac1c4cfa0791d26ec029f27544b66ebbaf4 100644 (file)
@@ -43,7 +43,7 @@ namespace System.Web.Hosting {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public object Create (string module, string typeName, string appId, string appPath, string strUrlOfAppOrigin, int iZone)
                {
                        throw new NotImplementedException ();
index c4064d19b1d749b578d27657d5fc7bd030c817ac..58881c730ca804dc7c7fc744040f08605a76cc05 100644 (file)
@@ -35,7 +35,7 @@ namespace System.Web.Hosting {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public object Create (string appId, string appPath)
                {
                        throw new NotImplementedException ();
index 92de7eda54ba3f006e6ddaba46f88aac7b6b0558..0eae5c8b133091bb013cf1f3cebc412b4474e799 100644 (file)
@@ -86,7 +86,6 @@ namespace System.Web.Hosting {
                        get { return shutdown_reason; }
                }
 
-               [MonoTODO]
                public static string SiteName {
                        get { return site_name; }
                }
@@ -100,19 +99,19 @@ namespace System.Web.Hosting {
                        Interlocked.Decrement (ref busy_count);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static IDisposable Impersonate ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static IDisposable Impersonate (IntPtr token)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static IDisposable Impersonate (IntPtr userToken, string virtualPath)
                {
                        throw new NotImplementedException ();
@@ -169,13 +168,13 @@ namespace System.Web.Hosting {
                        vpath_provider = virtualPathProvider;
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static IDisposable SetCultures (string virtualPath)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static IDisposable SetCultures ()
                {
                        throw new NotImplementedException ();
index e5abc91e78a93b857ad8a87f7ee5bea7fdd121f9..6e072a6046fb2a2d9d14b09126b0416098902b07 100644 (file)
@@ -49,25 +49,24 @@ namespace System.Web.Hosting {
                {
                }
                
-               [MonoTODO]
                 public void DoGCCollect ()
                {
-                       throw new NotImplementedException ();
+                       // Do nothing.
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                 public int ProcessRequest (IntPtr ecb, int iWRType)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                 public void StartProcessing ()
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
 #if NET_2_0
                [SecurityPermission (SecurityAction.Demand, UnmanagedCode = true)]
 #endif
@@ -77,13 +76,13 @@ namespace System.Web.Hosting {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override object InitializeLifetimeService ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                void IRegisteredObject.Stop (bool immediate)
                {
                        throw new NotImplementedException ();
index d0e167c27269cd216610410994f726514adaf901..838f08cd04428004146c8792eedc6ed720b9a216 100644 (file)
@@ -39,7 +39,7 @@ namespace System.Web.Profile
                        this.customProviderData = customProviderData;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool IsDefaultAttribute ()
                {
                        throw new NotImplementedException ();
index 5d7af1df3518afba79e3d8360f03fc979c16566d..416f025717fb61e4b59517538bdc5066cf48e332 100644 (file)
@@ -34,7 +34,7 @@ namespace System.Web.Profile
 {
        public class DefaultProfile : ProfileBase
        {
-               [MonoTODO]
+               [MonoTODO("Currently does nothing")]
                public DefaultProfile ()
                {
                }
index 707ced233595d0a210f21887be56cb1d8a0a3a58..6bd7c7c15d6c26e62aef0c1ee162bd85ec675cb8 100644 (file)
@@ -39,7 +39,7 @@ namespace System.Web.Profile
                        this.allow = allow;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool IsDefaultAttribute ()
                {
                        throw new NotImplementedException ();
index 14ced9528c2a2504adb947efed473fff0d2cc04e..2444f64c3c8470e77416825998f4d6430c9404e2 100644 (file)
@@ -37,181 +37,181 @@ namespace System.Web.Security {
        [MonoTODO ("that's only a stub")]
        public class ActiveDirectoryMembershipProvider : MembershipProvider {
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool ChangePassword (string username, string oldPwd, string newPwd)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPwdQuestion, string newPwdAnswer)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override MembershipUser CreateUser (string username, string password, string email, string pwdQuestion, string pwdAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override bool DeleteUser (string username, bool deleteAllRelatedData)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual string GeneratePassword ()
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override MembershipUserCollection FindUsersByEmail (string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override MembershipUserCollection FindUsersByName (string nameToMatch, int pageIndex, int pageSize, out int totalRecords)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override MembershipUserCollection GetAllUsers (int pageIndex, int pageSize, out int totalRecords)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override int GetNumberOfUsersOnline ()
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override string GetPassword (string username, string answer)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override MembershipUser GetUser (string username, bool userIsOnline)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override MembershipUser GetUser (object providerUserKey, bool userIsOnline)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override string GetUserNameByEmail (string email)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override void Initialize (string name, NameValueCollection config)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override string ResetPassword (string username, string answer)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override void UpdateUser (MembershipUser user)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool ValidateUser (string username, string password)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool UnlockUser (string userName)
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override string ApplicationName {
                        get { throw new NotImplementedException (); }
                        set { throw new NotImplementedException (); }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public ActiveDirectoryConnectionProtection CurrentConnectionProtection {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool EnablePasswordReset {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool EnablePasswordRetrieval {
                        get { throw new NotImplementedException (); }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool EnableSearchMethods {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override MembershipPasswordFormat PasswordFormat {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool RequiresQuestionAndAnswer {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override bool RequiresUniqueEmail {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override int MaxInvalidPasswordAttempts {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override int MinRequiredNonAlphanumericCharacters {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override int MinRequiredPasswordLength {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override int PasswordAttemptWindow {
                        get { throw new NotImplementedException (); }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public int PasswordAnswerAttemptLockoutDuration {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public override string PasswordStrengthRegularExpression {
                        get { throw new NotImplementedException (); }
                }
index 3b301d42f55d8042abf8031278408ebb27baaba8..27f8ef3122260282b7dcf7f604492a615c058070 100644 (file)
@@ -45,14 +45,14 @@ namespace System.Web.Security
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void Init (HttpApplication app)
                {
                        throw new NotImplementedException ();
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static bool CheckFileAccessForUser (string virtualPath, IntPtr token, string verb)
                {
                        throw new NotImplementedException ();
index 821d8af4b556f69e619d695ccb43eb2ce6cf9b1b..7bebd7be4fa25a74b317f23830ff02003d740b63 100644 (file)
@@ -33,7 +33,7 @@ using System.Security.Principal;
 
 namespace System.Web.Security {
 
-       [MonoTODO]
+       [MonoTODO("Not implemented")]
        // CAS - no InheritanceDemand here as the class is sealed
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
 #if NET_2_0
@@ -74,7 +74,7 @@ namespace System.Web.Security {
                        return AuthUrl (strReturnUrl, iTimeWindow, (fForceLogin ? 1 : 0), strCoBrandedArgs, iLangID, strNameSpace, iKPP, (bUseSecureAuth ? 1 : 0));
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string AuthUrl (string strReturnUrl,
                                       int iTimeWindow,
                                       int iForceLogin,
@@ -111,7 +111,7 @@ namespace System.Web.Security {
                        return AuthUrl2 (strReturnUrl, iTimeWindow, (fForceLogin ? 1 : 0), strCoBrandedArgs, iLangID, strNameSpace, iKPP, (bUseSecureAuth ? 1 : 0));
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string AuthUrl2 (string strReturnUrl,
                                        int iTimeWindow,
                                        int iForceLogin,
@@ -124,61 +124,61 @@ namespace System.Web.Security {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static string Compress (string strData)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static bool CryptIsValid ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static int CryptPutHost (string strHost)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static int CryptPutSite (string strSite)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static string Decompress (string strData)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static string Decrypt (string strData)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static string Encrypt (string strData)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public object GetCurrentConfig (string strAttribute)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string GetDomainAttribute (string strAttribute, int iLCID, string strDomain)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string GetDomainFromMemberName (string strMemberName)
                {
                        throw new NotImplementedException ();
@@ -189,7 +189,7 @@ namespace System.Web.Security {
                        return this.GetIsAuthenticated (iTimeWindow, (bForceLogin ? 1 : 0), (bCheckSecure ? 1 : 0));
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool GetIsAuthenticated (int iTimeWindow, int iForceLogin, int iCheckSecure)
                {
                        throw new NotImplementedException ();
@@ -207,7 +207,7 @@ namespace System.Web.Security {
                }
 #endif
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string GetLoginChallenge (string szRetURL,
                                                 int iTimeWindow,
                                                 int fForceLogin,
@@ -221,31 +221,31 @@ namespace System.Web.Security {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public object GetOption (string strOpt)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public object GetProfileObject (string strProfileName)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool HasFlag (int iFlagMask)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool HasProfile (string strProfile)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool HaveConsent (bool bNeedFullConsent, bool bNeedBirthdate)
                {
                        throw new NotImplementedException ();
@@ -276,7 +276,7 @@ namespace System.Web.Security {
                        return LoginUser (szRetURL, iTimeWindow, (fForceLogin ? 1 : 0), szCOBrandArgs, iLangID, strNameSpace, iKPP, (fUseSecureAuth ? 1 : 0), null);
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public int LoginUser (string szRetURL,
                                      int iTimeWindow,
                                      int fForceLogin,
@@ -315,7 +315,7 @@ namespace System.Web.Security {
                        return LogoTag (strReturnUrl, iTimeWindow, (fForceLogin ? 1 : 0), strCoBrandedArgs, iLangID, (fSecure ? 1 : 0), strNameSpace, iKPP, (bUseSecureAuth ? 1 : 0));
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string LogoTag (string strReturnUrl,
                                       int iTimeWindow,
                                       int iForceLogin,
@@ -354,7 +354,7 @@ namespace System.Web.Security {
                        return LogoTag2 (strReturnUrl, iTimeWindow, (fForceLogin ? 1 : 0), strCoBrandedArgs, iLangID, (fSecure ? 1 : 0), strNameSpace, iKPP, (bUseSecureAuth ? 1 : 0));
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string LogoTag2 (string strReturnUrl,
                                        int iTimeWindow,
                                        int iForceLogin,
@@ -373,7 +373,7 @@ namespace System.Web.Security {
                        return LogoutURL (null, null, -1, null, -1);
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string LogoutURL (string szReturnURL,
                                         string szCOBrandArgs,
                                         int iLangID,
@@ -383,25 +383,25 @@ namespace System.Web.Security {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public void SetOption (string strOpt, object vOpt)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static void SignOut (string strSignOutDotGifFileName)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public object Ticket (string strAttribute)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string AuthenticationType
                {
                        get {
@@ -409,7 +409,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public int Error
                {
                        get {
@@ -417,7 +417,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool GetFromNetworkServer
                {
                        get {
@@ -425,7 +425,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool HasSavedPassword
                {
                        get {
@@ -433,7 +433,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool HasTicket
                {
                        get {
@@ -441,7 +441,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string HexPUID
                {
                        get {
@@ -449,7 +449,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool IsAuthenticated
                {
                        get {
@@ -457,7 +457,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string this [string strProfileName]
                {
                        get {
@@ -465,7 +465,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string Name
                {
                        get {
@@ -473,7 +473,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public int TicketAge
                {
                        get {
@@ -481,7 +481,7 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public int TimeSinceSignIn
                {
                        get {
index 9b3dadd36305e06b320e97749fd120dea1a6330b..78d3381afebd95a438e80ab828c6ea0ec3e736ea 100644 (file)
@@ -53,7 +53,7 @@ namespace System.Web.Security {
                        this.identity = identity;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public RolePrincipal (IIdentity identity, string encryptedTicket)
                        : this (identity)
                {
@@ -69,7 +69,7 @@ namespace System.Web.Security {
                        this.providerName = providerName;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public RolePrincipal (string providerName, IIdentity identity, string encryptedTicket)
                        : this (identity)
                {
@@ -107,7 +107,7 @@ namespace System.Web.Security {
                        return cachedRoles[role] != null;
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string ToEncryptedTicket ()
                {
                        throw new NotImplementedException ();
@@ -117,17 +117,17 @@ namespace System.Web.Security {
                        get { return listChanged; }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string CookiePath {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool Expired {
                        get { throw new NotImplementedException (); }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public DateTime ExpireDate {
                        get { throw new NotImplementedException (); }
                }
@@ -140,7 +140,7 @@ namespace System.Web.Security {
                        get { return cachedRoles != null; }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public DateTime IssueDate {
                        get { throw new NotImplementedException (); }
                }
index a554ed39d88575920b7fc897ab5261b37d898f30..0a52a65deb64ee624f1e028815b4fb62231cc257 100644 (file)
@@ -116,7 +116,7 @@ namespace System.Web.Security {
                        Provider.CreateRole (rolename);
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static void DeleteCookie ()
                {
                        throw new NotImplementedException ();
index 2b650047bc6359ef86bf70327b939b3f0c75c2ba..08d734461c265cf05582f58b983fc4036fbbbff8 100644 (file)
@@ -334,7 +334,6 @@ namespace System.Web.Security {
                        return true;
                }
 
-               [MonoTODO]
                public override bool DeleteUser (string username, bool deleteAllRelatedData)
                {
                        CheckParam ("username", username, 256);
@@ -606,7 +605,6 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
                public override MembershipUser GetUser (string username, bool userIsOnline)
                {
                        if (username == null)
@@ -632,7 +630,6 @@ namespace System.Web.Security {
                        return u;
                }
 
-               [MonoTODO]
                public override MembershipUser GetUser (object providerUserKey, bool userIsOnline)
                {
                        DbCommand command = factory.CreateCommand ();
@@ -647,7 +644,6 @@ namespace System.Web.Security {
                        return u;
                }
 
-               [MonoTODO]
                public override string GetUserNameByEmail (string email)
                {
                        CheckParam ("email", email, 256);
@@ -1069,7 +1065,6 @@ namespace System.Web.Security {
                        }
                }
 
-               [MonoTODO]
                public override string ApplicationName
                {
                        get { return applicationName; }
index 873cea89876f848f021754e10144e1a7a3b2d442..4044de7a20c6271ff2c02ec7fe87021d18dbef98 100644 (file)
@@ -288,7 +288,6 @@ namespace System.Web.Security
                        return rv;
                }
 
-               [MonoTODO]
                public override void Initialize (string name, NameValueCollection config)
                {
                        if (config == null)
@@ -412,7 +411,6 @@ namespace System.Web.Security
                        }
                }
 
-               [MonoTODO]
                public override string ApplicationName
                {
                        get { return applicationName; }
index 2c7345d8afaee08194aba330d07729ef9f97f1ce..6b653a2f6629de8d8bfd69f34626e74fa6e8d760 100644 (file)
@@ -75,7 +75,7 @@ namespace System.Web.Security
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static bool CheckUrlAccessForPrincipal (string virtualPath, IPrincipal user, string verb)
                {
                        throw new NotImplementedException ();
index d33351e118f183819984a5bc272362c3bca523b7..17e0bc96b78a1432557f3ba7bdc66b509500de34 100644 (file)
@@ -48,7 +48,7 @@ namespace System.Web.Security
                                Authenticate = null;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void Init (HttpApplication app)
                {
                        throw new NotImplementedException ();
index eb5a25df0d224d9cd06be960e7fa059e9fb45736..2e1771beb217323274c93d2e5a0a7737a1a1706b 100644 (file)
@@ -32,7 +32,6 @@ using System.Security.Permissions;
 
 namespace System.Web.SessionState {
 
-       [MonoTODO]
        // CAS - no InheritanceDemand here as the class is sealed
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        public sealed class StateRuntime : IStateRuntime {
@@ -45,7 +44,7 @@ namespace System.Web.SessionState {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [AspNetHostingPermission (SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Medium)]
                public void ProcessRequest (IntPtr tracker, int verb,
                        string uri, int exclusive, int timeout,
@@ -55,7 +54,7 @@ namespace System.Web.SessionState {
                        throw new NotImplementedException ();
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [AspNetHostingPermission (SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Medium)]
                public void ProcessRequest (IntPtr tracker, int verb, string uri, int exclusive,
                        int extraFlags, int timeout, int lockCookieExists, int lockCookie,
@@ -64,7 +63,7 @@ namespace System.Web.SessionState {
                        throw new NotImplementedException ();
                }
 #endif
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [SecurityPermission (SecurityAction.Demand, UnmanagedCode = true)]
                public void StopProcessing ()
                {
index 3ed9c9265fe422efd689a1dfb3f2f42c8d1ce187..2d5a7a019f3267b8dd70f5df94d2719be1189a32 100644 (file)
@@ -39,7 +39,7 @@ namespace System.Web.UI.Adapters
                {
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected HttpBrowserCapabilities Browser 
                {
                        get {
@@ -47,7 +47,7 @@ namespace System.Web.UI.Adapters
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [Browsable (false)]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                protected Control Control 
@@ -57,7 +57,7 @@ namespace System.Web.UI.Adapters
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [Browsable (false)]
                protected Page Page 
@@ -67,7 +67,7 @@ namespace System.Web.UI.Adapters
                        }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [Browsable (false)]
                protected PageAdapter PageAdapter 
@@ -77,79 +77,79 @@ namespace System.Web.UI.Adapters
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void BeginRender (HtmlTextWriter w)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void CreateChildControls ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void EndRender (HtmlTextWriter w)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void LoadAdapterControlState (object state)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void LoadAdapterViewState (object state)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void OnInit (EventArgs e)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void OnLoad (EventArgs e)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void OnPreRender (EventArgs e)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void OnUnload (EventArgs e)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void Render (HtmlTextWriter w)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual void RenderChildren (HtmlTextWriter w)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual object SaveAdapterControlState ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual object SaveAdapterViewState ()
                {
                        throw new NotImplementedException ();
index 5497df3a203f659849c2de1bb4e91b8ac90df3d5..6db9407b2d3a86b8d91af4a561e344b65f66c7ef 100644 (file)
@@ -40,7 +40,7 @@ namespace System.Web.UI.Adapters
                {
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual StringCollection CacheVaryByHeaders 
                {
                        get {
@@ -48,7 +48,7 @@ namespace System.Web.UI.Adapters
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual StringCollection CacheVaryByParams 
                {
                        get {
@@ -56,7 +56,7 @@ namespace System.Web.UI.Adapters
                        }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected string ClientState 
                {
                        get {
@@ -64,31 +64,31 @@ namespace System.Web.UI.Adapters
                        }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual NameValueCollection DeterminePostBackMode ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual ICollection GetRadioButtonsByGroup (string groupName)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual PageStatePersister GetStatePersister ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RegisterRadioButton (RadioButton radioButton)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RenderBeginHyperlink (HtmlTextWriter w,
                                                          string targetUrl,
                                                          bool encodeUrl,
@@ -97,7 +97,7 @@ namespace System.Web.UI.Adapters
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RenderBeginHyperlink (HtmlTextWriter w,
                                                          string targetUrl,
                                                          bool encodeUrl,
@@ -107,13 +107,13 @@ namespace System.Web.UI.Adapters
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RenderEndHyperlink (HtmlTextWriter w)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RenderPostBackEvent (HtmlTextWriter w,
                                                         string target,
                                                         string argument,
@@ -123,7 +123,7 @@ namespace System.Web.UI.Adapters
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual void RenderPostBackEvent (HtmlTextWriter w,
                                                         string target,
                                                         string argument,
@@ -135,7 +135,7 @@ namespace System.Web.UI.Adapters
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected void RenderPostBackEvent (HtmlTextWriter w,
                                                    string target,
                                                    string argument,
@@ -148,13 +148,13 @@ namespace System.Web.UI.Adapters
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual string TransformText (string text) 
                {
                        throw new NotImplementedException ();
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected internal virtual string GetPostBackFormReference (string formID)
                {
                        throw new NotImplementedException ();
index 5c45281cbd06714cc7d41076e351d43768e29717..d02de70ffda37a66d186a2e7e4b55cbe1400fc5d 100644 (file)
@@ -530,20 +530,17 @@ namespace System.Web.UI.HtmlControls
                }
 
 #if NET_2_0
-               [MonoTODO]
                protected virtual void OnDataPropertyChanged ()
                {
                        RequiresDataBinding = true;
                }
 
-               [MonoTODO]
                protected virtual void OnDataSourceViewChanged (object sender,
                                                                EventArgs e)
                {
                        RequiresDataBinding = true;
                }
 
-               [MonoTODO]
                protected internal override void OnInit (EventArgs e)
                {
                        base.OnInit (e);
index eb2819df817a1b557da55e240268a172095f9918..9c2a5a0ddaec1c02c2604f21891ea17e456926bf 100644 (file)
@@ -60,25 +60,26 @@ namespace System.Web.UI.WebControls.Adapters
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO ("why override?")]
                protected override void RenderBeginTag (HtmlTextWriter writer)
                {
                        Control.RenderBeginTag (writer);
                }
 
-               [MonoTODO ("we need to iterate over the MenuItems here, calling MenuAdapter.RenderItem for each one.")]
                protected override void RenderContents (HtmlTextWriter writer)
                {
+                       // FIXME: we need to iterate over the
+                       // MenuItems here, calling
+                       // MenuAdapter.RenderItem for each one.
+                       
                        Control.RenderContents (writer);
                }
 
-               [MonoTODO ("why override?")]
                protected override void RenderEndTag (HtmlTextWriter writer)
                {
                        Control.RenderEndTag (writer);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal virtual void RenderItem (HtmlTextWriter writer, 
                                                            MenuItem item,
                                                            int position)
@@ -86,19 +87,19 @@ namespace System.Web.UI.WebControls.Adapters
                        throw new NotImplementedException ();
                }
          
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal override void LoadAdapterControlState (object state)
                {
                        throw new NotImplementedException ();
                }
                    
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal override object SaveAdapterControlState ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                void System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
                {
                        throw new NotImplementedException ();
index 73204e805efe8b9aca1870cb3e5c5414b7d75ff6..261688bf9f2f6d83fd3f0862280aad711f61958d 100644 (file)
@@ -57,7 +57,7 @@ namespace System.Web.UI.WebControls.WebParts {
                        get{ return callBackMethod;  }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool GetEnabled (Control control)
                {
                        throw new NotImplementedException ();
index a409483a08be2eccdfe10507b53d222e123f702b..a2a31d48636a069510b5c2bec1f2dc839de1b071 100644 (file)
@@ -40,13 +40,13 @@ namespace System.Web.UI.WebControls.WebParts
                {                       
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual void SetObject (Control control, object data)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual bool SupportsConnection (Control control, 
                                                        TypeCollection interfaces)
                {
@@ -54,4 +54,4 @@ namespace System.Web.UI.WebControls.WebParts
                }                       
        }
 }
-#endif
\ No newline at end of file
+#endif
index 698e7cb212a407a4d95fcf2772eade2315a3fdcc..a253c31cb669c0392d77217172fbc9e7240064f7 100644 (file)
@@ -67,7 +67,6 @@ namespace System.Web.UI.WebControls.WebParts
                                Visible = false;
                }
 #if false
-               [MonoTODO]
                protected override void SetDesignModeState (IDictionary data)
                {
                        EditorZoneBase stateZone = data["Zone"] as EditorZoneBase;
index 1eaf09fb2c01e925b8cd5ccf4e905170236bdffe..43844aad3497dceca3d0f22e518f8fbd8d103f3d 100644 (file)
@@ -47,7 +47,7 @@ namespace System.Web.UI.WebControls.WebParts
                        chrome_type = PartChromeType.Default;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override void DataBind()
                {
                        throw new NotImplementedException ();
@@ -81,7 +81,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual new ControlCollection Controls
                {
                        get {
index 22cbd0e66fad708abc00f3b086213bc2609c2112..4e3f3fb6f053774b1120acdec1c651ef3bcab212 100644 (file)
@@ -40,13 +40,13 @@ namespace System.Web.UI.WebControls.WebParts
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual object GetObject (Control control)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual ConnectionInterfaceCollection GetSecondaryInterfaces (Control control)
                {
                        throw new NotImplementedException ();
index 099273a410bc790e09cf2209b03c489c9c094886..e93c970405109214c93e4c0c3b05fb9e83738f7e 100644 (file)
@@ -75,20 +75,20 @@ namespace System.Web.UI.WebControls.WebParts
                }
 
 #if IWebEditableInterface
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual EditorPartCollection CreateEditorParts ()
                {
                        throw new NotImplementedException ();
                }
 #endif
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected void SetPersonalizationDirty ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public static void SetPersonalizationDirty (Control control)
                {
                        throw new NotImplementedException ();
@@ -205,7 +205,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string AuthorizationFilter 
                {
                        get {
@@ -216,7 +215,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string CatalogIconImageUrl 
                {
                        get {
@@ -227,7 +225,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO ("why override?")]
                public override PartChromeState ChromeState 
                {
                        get {
@@ -238,7 +235,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO ("why override?")]
                public override PartChromeType ChromeType 
                {
                        get {
@@ -249,7 +245,7 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public string ConnectErrorMessage 
                {
                        get {
@@ -257,7 +253,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO ("why override?")]
                public override string Description 
                {
                        get {
@@ -268,15 +263,15 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                /* msdn2 lists this as an override, but it doesn't appear to work with our implementation */
                public /*override*/ ContentDirection Direction 
                {
                        get {
-                       throw new NotImplementedException ();
+                               throw new NotImplementedException ();
                        }
                        set {
-                       throw new NotImplementedException ();
+                               throw new NotImplementedException ();
                        }
                }
 
@@ -287,7 +282,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual WebPartExportMode ExportMode 
                {
                        get {
@@ -298,7 +292,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public bool HasSharedData 
                {
                        get {
@@ -306,7 +299,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public bool HasUserData 
                {
                        get {
@@ -314,7 +306,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO("why override?")]
                public override Unit Height 
                {
                        get {
@@ -325,7 +316,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual WebPartHelpMode HelpMode 
                {
                        get {
@@ -336,7 +326,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string HelpUrl 
                {
                        get {
@@ -347,7 +336,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual bool Hidden 
                {
                        get {
@@ -368,7 +356,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public bool IsClosed 
                {
                        get {
@@ -376,7 +363,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO("not virtual and no setter..")]
                public bool IsShared 
                {
                        get {
@@ -384,7 +370,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO("not virtual and no setter..")]
                public bool IsStandalone 
                {
                        get {
@@ -392,7 +377,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public bool IsStatic 
                {
                        get {
@@ -400,7 +384,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string Subtitle 
                {
                        get {
@@ -408,7 +391,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO ("why override?")]
                public override string Title 
                {
                        get {
@@ -419,7 +401,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string TitleIconImageUrl 
                {
                        get {
@@ -430,7 +411,6 @@ namespace System.Web.UI.WebControls.WebParts
                        }
                }
 
-               [MonoTODO]
                public virtual string TitleUrl 
                {
                        get {
@@ -449,26 +429,25 @@ namespace System.Web.UI.WebControls.WebParts
                }
 
 #if IWebEditableInterface
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public virtual object WebBrowsableObject 
                {
                        get {
-                       throw new NotImplementedException ();
+                               throw new NotImplementedException ();
                        }
                }
 #endif
 
 #if notyet
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected WebPartManager WebPartManager 
                {
                        get {
-                       throw new NotImplementedException ();
+                               throw new NotImplementedException ();
                        }
                }
 #endif
 
-               [MonoTODO ("why override?")]
                public override Unit Width 
                {
                        get {
@@ -480,16 +459,15 @@ namespace System.Web.UI.WebControls.WebParts
                }
 
 #if notyet
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public WebPartZoneBase Zone 
                {
                        get {
-                       throw new NotImplementedException ();
+                               throw new NotImplementedException ();
                        }
                }
 #endif
 
-               [MonoTODO]
                public int ZoneIndex 
                {
                        get {
index caa051d4353b104278a38f9a31821efdc51b6397..d278fb7bbb669ad20618619b05e0d5b5b9937c36 100644 (file)
@@ -78,43 +78,43 @@ namespace System.Web.UI.WebControls.WebParts
                        stateBag.Add ("clientClickHandler", clientClickHandler);
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected virtual void LoadViewState (object savedState)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected virtual object SaveViewState()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected virtual void TrackViewState()
                {
                        throw new NotImplementedException();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                void IStateManager.LoadViewState (object savedState)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                object IStateManager.SaveViewState ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                void IStateManager.TrackViewState ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                bool IStateManager.IsTrackingViewState {
                        get {
                                throw new NotImplementedException ();
@@ -196,4 +196,4 @@ namespace System.Web.UI.WebControls.WebParts
                }
        }
 }
-#endif
\ No newline at end of file
+#endif
index 486070871fcee315a39c6d0c239d4cbee96ec6fa..69bcc18956ef47d4bc238088ea493e29bd1fa5b7 100644 (file)
@@ -78,7 +78,7 @@ namespace System.Web.UI.WebControls {
 
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [Browsable (false)]
-               [MonoTODO]
+               [MonoTODO("AccessDataSource does not support SQL Cache Dependencies")]
                public override string SqlCacheDependency {
                        get { throw new NotSupportedException ("AccessDataSource does not supports SQL Cache Dependencies."); }
                        set { throw new NotSupportedException ("AccessDataSource does not supports SQL Cache Dependencies."); }
index 257ca3fd7c1b5cf2df8b122da20e671b378d2a06..e9db968306afc65902d1a1e9319a22c3eafc19ad 100644 (file)
@@ -53,7 +53,6 @@ namespace System.Web.UI.WebControls {
 #endif 
        {
 #if NET_2_0
-               [MonoTODO]
                protected internal override void OnInit (EventArgs e)
                {
                        base.OnInit(e);
@@ -81,13 +80,13 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal override void PerformDataBinding (IEnumerable data)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override void PerformSelect ()
                {
                        throw new NotImplementedException ();
@@ -209,7 +208,7 @@ namespace System.Web.UI.WebControls {
                [DefaultValue ("AlternateText")]
                [WebSysDescriptionAttribute ("")]
                [WebCategoryAttribute ("Behavior")]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public string AlternateTextField 
                {
                        get {
@@ -232,7 +231,7 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [DefaultValue ("ImageUrl")]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                [WebSysDescriptionAttribute ("")]
                [WebCategoryAttribute ("Behavior")]
                public string ImageUrlField 
@@ -263,7 +262,7 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [DefaultValue ("NavigateUrl")]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                [WebSysDescriptionAttribute ("")]
                [WebCategoryAttribute ("Behavior")]
                public string NavigateUrlField 
@@ -294,7 +293,6 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                /* all these are listed in corcompare */
-               [MonoTODO]
                public override string UniqueID
                {
                        get {
@@ -302,7 +300,6 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
                protected override HtmlTextWriterTag TagKey 
                {
                        get {
index ad08ae54da9a50029ab29989ded12df8c299ef13..bd3c8f4a467e8f4cb1d2c7e7c0a3a0302d3f0c2d 100644 (file)
@@ -62,7 +62,6 @@ namespace System.Web.UI.WebControls {
                        ReadOnly = fieldProperties.IsReadOnly;
                }
                
-               [MonoTODO]
                public Type DataType {
                        get { return dataType; }
                        set { dataType = value; }
@@ -143,7 +142,6 @@ namespace System.Web.UI.WebControls {
                        field.DataType = DataType;
                }
 
-               [MonoTODO]
                protected override object GetDesignTimeValue()
                {
                        return base.GetDesignTimeValue ();
index c37690e87680f0373eed172a6af9c6ccbdd4f836..df36e1a546e0dc2f3bbd340806f1f6059a482e70 100644 (file)
@@ -234,7 +234,7 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static bool CanConvert (string text, 
                                               ValidationDataType type, 
                                               bool cultureInvariant)
@@ -242,7 +242,7 @@ namespace System.Web.UI.WebControls {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected static bool Compare (string leftText, 
                                               bool cultureInvariantLeftText, 
                                               string rightText, 
@@ -253,7 +253,7 @@ namespace System.Web.UI.WebControls {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected static bool Convert (string text,
                                               ValidationDataType type,
                                               bool cultureInvariant,
index 953b080675d8f317bf1900fa0d2a96ddf9e2c728..2e1916c4ecbd02bf87356ca89d2dd57da147a609 100644 (file)
@@ -92,7 +92,6 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
                [WebSysDescription ("")]
                [WebCategoryAttribute ("Appearance")]
                public override string HeaderText {
@@ -150,7 +149,6 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
                public override bool Initialize (bool enableSorting, 
                                                 Control control)
                {
index 92eb9c65fea64a4e9b3167e0dd2d2fdcae13c013..0dea5ed802d16e20f5a3902723e43f9d62283d4d 100644 (file)
@@ -178,7 +178,7 @@ namespace System.Web.UI.WebControls {
                        field.Text = Text;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override void ValidateSupportsCallback ()
                {
                        throw new NotImplementedException ();
index 9618bde5d73bc038db96d01057f6e55c125946d3..fc37c46c0fab59bfa9c3eef908ce9da37221a62e 100644 (file)
@@ -732,7 +732,7 @@ namespace System.Web.UI.WebControls
 
                #region Private Methods
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override void SetDesignModeState (IDictionary data)
                {
                        throw new NotImplementedException ();
index 41d58269371cf8c0e88c2f8c1bd7a2cc36d5e544..f2cddcd365f8310aa37bd82a2a706849abe9c2b7 100644 (file)
@@ -90,7 +90,6 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                [DefaultValue (false)]
                [Themeable (false)]
-               [MonoTODO]
                [WebSysDescription ("")]
                [WebCategory ("Behavior")]
                public virtual bool CausesValidation 
index fc94f6a629f3966300ebe08dfd666e28b64c0118..ff7734bcd7d9ed585377dad2abd2decc752f1a5b 100644 (file)
@@ -1483,9 +1483,11 @@ namespace System.Web.UI.WebControls
                                _errorMessageLabel.Text = errorMessage;
                }
 
-               [MonoTODO]
                private string GeneratePassword ()
                {
+                       // FIXME:
+                       // Generate an actual password!
+                       
                        return "password";
                }
 
index d58f22b280147dad7d3d579e38842b8f3939f191..9015880fc804c361a50318e59e81ceffd34c11c4 100644 (file)
@@ -57,7 +57,6 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
                [Themeable (false)]
                [DefaultValue (false)]
                public bool ValidateEmptyText {
index fad1577a0424cb6f841250508a4fcb78e37a596d..58c581ebec14932cb1f67602908922a0c10b9f5c 100644 (file)
@@ -441,7 +441,6 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
                [Browsable(false)]
                [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
                [WebSysDescription ("")]
index 445d2f45e177b111f80a29d24748bd4d597ff5b5..349252862580896b4e79e40c3f6f5497e628035f 100644 (file)
@@ -1139,7 +1139,6 @@ namespace System.Web.UI.WebControls
                        return dataSource.DataSourceCount;\r
                }\r
 \r
-               [MonoTODO]\r
                protected override void EnsureDataBound ()\r
                {\r
                        base.EnsureDataBound ();\r
index f32fc4610ef2536103652b023f4c64c943ce0a15..c80faa78f13aa193da37d5d73253d559270d646b 100644 (file)
@@ -205,7 +205,7 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal override void VerifyMultiSelect ()
                {
                        throw new NotImplementedException ();
index 28226b014b11a635dc12bd8416eed3c477409c34..ee9b76f602c114457608d4f3b958865b0f1673e2 100644 (file)
@@ -1,83 +1,83 @@
-//\r
-// System.Web.UI.WebControls.EmbeddedMailObjectsCollection.cs\r
-//\r
-// Authors:\r
-//     Igor Zelmanovich (igorz@mainsoft.com)\r
-//\r
-// (C) 2006 Mainsoft, Inc (http://www.mainsoft.com)\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-#if NET_2_0\r
-\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Collections;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       public sealed class EmbeddedMailObjectsCollection : CollectionBase\r
-       {\r
-               [MonoTODO]\r
-               public EmbeddedMailObject this [int index] {\r
-                       get { throw new NotImplementedException (); }\r
-                       set { throw new NotImplementedException (); }\r
-               }\r
-\r
-               [MonoTODO]\r
-               public int Add (EmbeddedMailObject value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               [MonoTODO]\r
-               public bool Contains (EmbeddedMailObject value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               [MonoTODO]\r
-               public void CopyTo (EmbeddedMailObject [] array, int index) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-               \r
-               [MonoTODO]\r
-               public int IndexOf (EmbeddedMailObject value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               [MonoTODO]\r
-               public void Insert (int index, EmbeddedMailObject value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               [MonoTODO]\r
-               protected override void OnValidate (object value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               [MonoTODO]\r
-               public void Remove (EmbeddedMailObject value) {\r
-                       throw new NotImplementedException ();\r
-               }\r
-       }\r
-}\r
-\r
-#endif
\ No newline at end of file
+//
+// System.Web.UI.WebControls.EmbeddedMailObjectsCollection.cs
+//
+// Authors:
+//     Igor Zelmanovich (igorz@mainsoft.com)
+//
+// (C) 2006 Mainsoft, Inc (http://www.mainsoft.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Collections;
+
+namespace System.Web.UI.WebControls
+{
+       public sealed class EmbeddedMailObjectsCollection : CollectionBase
+       {
+               [MonoTODO("Not implemented")]
+               public EmbeddedMailObject this [int index] {
+                       get { throw new NotImplementedException (); }
+                       set { throw new NotImplementedException (); }
+               }
+
+               [MonoTODO("Not implemented")]
+               public int Add (EmbeddedMailObject value) {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO("Not implemented")]
+               public bool Contains (EmbeddedMailObject value) {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO("Not implemented")]
+               public void CopyTo (EmbeddedMailObject [] array, int index) {
+                       throw new NotImplementedException ();
+               }
+               
+               [MonoTODO("Not implemented")]
+               public int IndexOf (EmbeddedMailObject value) {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO("Not implemented")]
+               public void Insert (int index, EmbeddedMailObject value) {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO("Not implemented")]
+               protected override void OnValidate (object value) {
+                       throw new NotImplementedException ();
+               }
+
+               [MonoTODO("Not implemented")]
+               public void Remove (EmbeddedMailObject value) {
+                       throw new NotImplementedException ();
+               }
+       }
+}
+
+#endif
index bf360efa6f76d2b85d5494745da446b167c43411..608893f4bb638de7034ef294f55c970a9875d584 100644 (file)
-//\r
-// System.Web.UI.WebControls.FormView.cs\r
-//\r
-// Authors:\r
-//     Lluis Sanchez Gual (lluis@novell.com)\r
-//\r
-// (C) 2005 Novell, Inc (http://www.novell.com)\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-// \r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-// \r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-#if NET_2_0\r
-\r
-using System;\r
-using System.Collections;\r
-using System.Collections.Specialized;\r
-using System.ComponentModel;\r
-using System.Web.UI;\r
-using System.Security.Permissions;\r
-using System.Text;\r
-using System.IO;\r
-using System.Reflection;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       [SupportsEventValidation]\r
-       [DesignerAttribute ("System.Web.UI.Design.WebControls.FormViewDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]\r
-       [ControlValuePropertyAttribute ("SelectedValue")]\r
-       [DefaultEventAttribute ("PageIndexChanging")]\r
-       [AspNetHostingPermissionAttribute (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]\r
-       [AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]\r
-       public class FormView: CompositeDataBoundControl, IDataItemContainer, INamingContainer, IPostBackEventHandler, IPostBackContainer\r
-       {\r
-               object dataItem;\r
-               \r
-               Table table;\r
-               FormViewRow headerRow;\r
-               FormViewRow footerRow;\r
-               FormViewRow bottomPagerRow;\r
-               FormViewRow topPagerRow;\r
-               FormViewRow itemRow;\r
-               \r
-               IOrderedDictionary currentEditRowKeys;\r
-               IOrderedDictionary currentEditNewValues;\r
-               IOrderedDictionary currentEditOldValues;\r
-               \r
-               ITemplate pagerTemplate;\r
-               ITemplate emptyDataTemplate;\r
-               ITemplate headerTemplate;\r
-               ITemplate footerTemplate;\r
-               ITemplate editItemTemplate;\r
-               ITemplate insertItemTemplate;\r
-               ITemplate itemTemplate;\r
-               \r
-               PropertyDescriptor[] cachedKeyProperties;\r
-               readonly string[] emptyKeys = new string[0];\r
-               \r
-               // View state\r
-               PagerSettings pagerSettings;\r
-               \r
-               TableItemStyle editRowStyle;\r
-               TableItemStyle insertRowStyle;\r
-               TableItemStyle emptyDataRowStyle;\r
-               TableItemStyle footerStyle;\r
-               TableItemStyle headerStyle;\r
-               TableItemStyle pagerStyle;\r
-               TableItemStyle rowStyle;\r
-               \r
-               IOrderedDictionary _keyTable;\r
-               DataKey key;\r
-               DataKey oldEditValues;\r
-               \r
-               private static readonly object PageIndexChangedEvent = new object();\r
-               private static readonly object PageIndexChangingEvent = new object();\r
-               private static readonly object ItemCommandEvent = new object();\r
-               private static readonly object ItemCreatedEvent = new object();\r
-               private static readonly object ItemDeletedEvent = new object();\r
-               private static readonly object ItemDeletingEvent = new object();\r
-               private static readonly object ItemInsertedEvent = new object();\r
-               private static readonly object ItemInsertingEvent = new object();\r
-               private static readonly object ModeChangingEvent = new object();\r
-               private static readonly object ModeChangedEvent = new object();\r
-               private static readonly object ItemUpdatedEvent = new object();\r
-               private static readonly object ItemUpdatingEvent = new object();\r
-               \r
-               // Control state\r
-               int pageIndex;\r
-               FormViewMode currentMode = FormViewMode.ReadOnly; \r
-               bool hasCurrentMode;\r
-               int pageCount;\r
-               \r
-               public event EventHandler PageIndexChanged {\r
-                       add { Events.AddHandler (PageIndexChangedEvent, value); }\r
-                       remove { Events.RemoveHandler (PageIndexChangedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewPageEventHandler PageIndexChanging {\r
-                       add { Events.AddHandler (PageIndexChangingEvent, value); }\r
-                       remove { Events.RemoveHandler (PageIndexChangingEvent, value); }\r
-               }\r
-               \r
-               public event FormViewCommandEventHandler ItemCommand {\r
-                       add { Events.AddHandler (ItemCommandEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemCommandEvent, value); }\r
-               }\r
-               \r
-               public event EventHandler ItemCreated {\r
-                       add { Events.AddHandler (ItemCreatedEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemCreatedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewDeletedEventHandler ItemDeleted {\r
-                       add { Events.AddHandler (ItemDeletedEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemDeletedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewDeleteEventHandler ItemDeleting {\r
-                       add { Events.AddHandler (ItemDeletingEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemDeletingEvent, value); }\r
-               }\r
-               \r
-               public event FormViewInsertedEventHandler ItemInserted {\r
-                       add { Events.AddHandler (ItemInsertedEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemInsertedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewInsertEventHandler ItemInserting {\r
-                       add { Events.AddHandler (ItemInsertingEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemInsertingEvent, value); }\r
-               }\r
-               \r
-               public event FormViewModeEventHandler ModeChanging {\r
-                       add { Events.AddHandler (ModeChangingEvent, value); }\r
-                       remove { Events.RemoveHandler (ModeChangingEvent, value); }\r
-               }\r
-               \r
-               public event EventHandler ModeChanged {\r
-                       add { Events.AddHandler (ModeChangedEvent, value); }\r
-                       remove { Events.RemoveHandler (ModeChangedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewUpdatedEventHandler ItemUpdated {\r
-                       add { Events.AddHandler (ItemUpdatedEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemUpdatedEvent, value); }\r
-               }\r
-               \r
-               public event FormViewUpdateEventHandler ItemUpdating {\r
-                       add { Events.AddHandler (ItemUpdatingEvent, value); }\r
-                       remove { Events.RemoveHandler (ItemUpdatingEvent, value); }\r
-               }\r
-               \r
-               protected virtual void OnPageIndexChanged (EventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               EventHandler eh = (EventHandler) Events [PageIndexChangedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnPageIndexChanging (FormViewPageEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewPageEventHandler eh = (FormViewPageEventHandler) Events [PageIndexChangingEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemCommand (FormViewCommandEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewCommandEventHandler eh = (FormViewCommandEventHandler) Events [ItemCommandEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemCreated (EventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               EventHandler eh = (EventHandler) Events [ItemCreatedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemDeleted (FormViewDeletedEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewDeletedEventHandler eh = (FormViewDeletedEventHandler) Events [ItemDeletedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemInserted (FormViewInsertedEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewInsertedEventHandler eh = (FormViewInsertedEventHandler) Events [ItemInsertedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemInserting (FormViewInsertEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewInsertEventHandler eh = (FormViewInsertEventHandler) Events [ItemInsertingEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemDeleting (FormViewDeleteEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewDeleteEventHandler eh = (FormViewDeleteEventHandler) Events [ItemDeletingEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnModeChanged (EventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               EventHandler eh = (EventHandler) Events [ModeChangedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnModeChanging (FormViewModeEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewModeEventHandler eh = (FormViewModeEventHandler) Events [ModeChangingEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemUpdated (FormViewUpdatedEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewUpdatedEventHandler eh = (FormViewUpdatedEventHandler) Events [ItemUpdatedEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               protected virtual void OnItemUpdating (FormViewUpdateEventArgs e)\r
-               {\r
-                       if (Events != null) {\r
-                               FormViewUpdateEventHandler eh = (FormViewUpdateEventHandler) Events [ItemUpdatingEvent];\r
-                               if (eh != null) eh (this, e);\r
-                       }\r
-               }\r
-               \r
-               \r
-               [WebCategoryAttribute ("Paging")]\r
-               [DefaultValueAttribute (false)]\r
-               public virtual bool AllowPaging {\r
-                       get {\r
-                               object ob = ViewState ["AllowPaging"];\r
-                               if (ob != null) return (bool) ob;\r
-                               return false;\r
-                       }\r
-                       set {\r
-                               ViewState ["AllowPaging"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               [UrlPropertyAttribute]\r
-               [WebCategoryAttribute ("Appearance")]\r
-               [DefaultValueAttribute ("")]\r
-               [EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]\r
-               public virtual string BackImageUrl {\r
-                       get {\r
-                               if (ControlStyleCreated)\r
-                                       return ((TableStyle) ControlStyle).BackImageUrl;\r
-                               return String.Empty;\r
-                       }\r
-                       set {\r
-                               ((TableStyle) ControlStyle).BackImageUrl = value;\r
-                       }\r
-               }\r
-\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual FormViewRow BottomPagerRow {\r
-                       get {\r
-                               EnsureChildControls ();\r
-                               return bottomPagerRow;\r
-                       }\r
-               }\r
-       \r
-               [WebCategoryAttribute ("Accessibility")]\r
-               [DefaultValueAttribute ("")]\r
-               [LocalizableAttribute (true)]\r
-               public virtual string Caption {\r
-                       get {\r
-                               object ob = ViewState ["Caption"];\r
-                               if (ob != null) return (string) ob;\r
-                               return string.Empty;\r
-                       }\r
-                       set {\r
-                               ViewState ["Caption"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               [WebCategoryAttribute ("Accessibility")]\r
-               [DefaultValueAttribute (TableCaptionAlign.NotSet)]\r
-               public virtual TableCaptionAlign CaptionAlign\r
-               {\r
-                       get {\r
-                               object o = ViewState ["CaptionAlign"];\r
-                               if(o != null) return (TableCaptionAlign) o;\r
-                               return TableCaptionAlign.NotSet;\r
-                       }\r
-                       set {\r
-                               ViewState ["CaptionAlign"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-\r
-               [WebCategoryAttribute ("Layout")]\r
-               [DefaultValueAttribute (-1)]\r
-               public virtual int CellPadding\r
-               {\r
-                       get {\r
-                               if (ControlStyleCreated)\r
-                                       return ((TableStyle) ControlStyle).CellPadding;\r
-                               return -1;\r
-                       }\r
-                       set {\r
-                               ((TableStyle) ControlStyle).CellPadding = value;\r
-                       }\r
-               }\r
-\r
-               [WebCategoryAttribute ("Layout")]\r
-               [DefaultValueAttribute (0)]\r
-               public virtual int CellSpacing\r
-               {\r
-                       get {\r
-                               if (ControlStyleCreated)\r
-                                       return ((TableStyle) ControlStyle).CellSpacing;\r
-                               return 0;\r
-                       }\r
-                       set {\r
-                               ((TableStyle) ControlStyle).CellSpacing = value;\r
-                       }\r
-               }\r
-               \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public FormViewMode CurrentMode {\r
-                       get {\r
-                               return hasCurrentMode ? currentMode : DefaultMode;\r
-                       }\r
-                       private set {\r
-                               hasCurrentMode = true;\r
-                               currentMode = value;\r
-                       }\r
-               }\r
-\r
-               FormViewMode defaultMode;\r
-\r
-               [DefaultValueAttribute (FormViewMode.ReadOnly)]\r
-               [WebCategoryAttribute ("Behavior")]\r
-               public virtual FormViewMode DefaultMode {\r
-                       get {\r
-                               return defaultMode;\r
-                       }\r
-                       set {\r
-                               defaultMode = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-\r
-               string[] dataKeyNames;\r
-               [DefaultValueAttribute (null)]\r
-               [WebCategoryAttribute ("Data")]\r
-               [TypeConverter (typeof(StringArrayConverter))]\r
-               [EditorAttribute ("System.Web.UI.Design.WebControls.DataFieldEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]\r
-               public virtual string[] DataKeyNames\r
-               {\r
-                       get {\r
-                               if (dataKeyNames == null)\r
-                                       return emptyKeys;\r
-                               return dataKeyNames;\r
-                       }\r
-                       set {\r
-                               dataKeyNames = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               IOrderedDictionary KeyTable {\r
-                       get {\r
-                               if (_keyTable == null) {\r
-                                       _keyTable = new OrderedDictionary (DataKeyNames.Length);\r
-                               }\r
-                               return _keyTable;\r
-                       }\r
-               }\r
-\r
-               [BrowsableAttribute (false)]\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               public virtual DataKey DataKey {\r
-                       get {\r
-                               if (key == null) {\r
-                                       key= new DataKey (KeyTable);\r
-                               }\r
-                               return key;\r
-                       }\r
-               }\r
-\r
-               DataKey OldEditValues {\r
-                       get {\r
-                               if (oldEditValues == null) {\r
-                                       oldEditValues = new DataKey (new OrderedDictionary ());\r
-                               }\r
-                               return oldEditValues;\r
-                       }\r
-               }\r
-\r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate EditItemTemplate {\r
-                       get { return editItemTemplate; }\r
-                       set { editItemTemplate = value; RequireBinding (); }\r
-               }\r
-\r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               [DefaultValueAttribute (null)]\r
-               public TableItemStyle EditRowStyle {\r
-                       get {\r
-                               if (editRowStyle == null) {\r
-                                       editRowStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               editRowStyle.TrackViewState();\r
-                               }\r
-                               return editRowStyle;\r
-                       }\r
-               }\r
-               \r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               [DefaultValueAttribute (null)]\r
-               public TableItemStyle EmptyDataRowStyle {\r
-                       get {\r
-                               if (emptyDataRowStyle == null) {\r
-                                       emptyDataRowStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               emptyDataRowStyle.TrackViewState();\r
-                               }\r
-                               return emptyDataRowStyle;\r
-                       }\r
-               }\r
-               \r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate EmptyDataTemplate {\r
-                       get { return emptyDataTemplate; }\r
-                       set { emptyDataTemplate = value; RequireBinding (); }\r
-               }\r
-               \r
-               [LocalizableAttribute (true)]\r
-               [WebCategoryAttribute ("Appearance")]\r
-               [DefaultValueAttribute ("")]\r
-               public virtual string EmptyDataText {\r
-                       get {\r
-                               object ob = ViewState ["EmptyDataText"];\r
-                               if (ob != null) return (string) ob;\r
-                               return string.Empty;\r
-                       }\r
-                       set {\r
-                               ViewState ["EmptyDataText"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-       \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual FormViewRow FooterRow {\r
-                       get {\r
-                               EnsureChildControls ();\r
-                               return footerRow;\r
-                       }\r
-               }\r
-       \r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate FooterTemplate {\r
-                       get { return footerTemplate; }\r
-                       set { footerTemplate = value; RequireBinding (); }\r
-               }\r
-\r
-               [LocalizableAttribute (true)]\r
-               [WebCategoryAttribute ("Appearance")]\r
-               [DefaultValueAttribute ("")]\r
-               public virtual string FooterText {\r
-                       get {\r
-                               object ob = ViewState ["FooterText"];\r
-                               if (ob != null) return (string) ob;\r
-                               return string.Empty;\r
-                       }\r
-                       set {\r
-                               ViewState ["FooterText"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DefaultValue (null)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               public TableItemStyle FooterStyle {\r
-                       get {\r
-                               if (footerStyle == null) {\r
-                                       footerStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               footerStyle.TrackViewState();\r
-                               }\r
-                               return footerStyle;\r
-                       }\r
-               }\r
-               \r
-               [WebCategoryAttribute ("Appearance")]\r
-               [DefaultValueAttribute (GridLines.None)]\r
-               public virtual GridLines GridLines {\r
-                       get {\r
-                               if (ControlStyleCreated)\r
-                                       return ((TableStyle) ControlStyle).GridLines;\r
-                               return GridLines.None;\r
-                       }\r
-                       set {\r
-                               ((TableStyle) ControlStyle).GridLines = value;\r
-                       }\r
-               }\r
-\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual FormViewRow HeaderRow {\r
-                       get {\r
-                               EnsureChildControls ();\r
-                               return headerRow;\r
-                       }\r
-               }\r
-       \r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DefaultValue (null)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               public TableItemStyle HeaderStyle {\r
-                       get {\r
-                               if (headerStyle == null) {\r
-                                       headerStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               headerStyle.TrackViewState();\r
-                               }\r
-                               return headerStyle;\r
-                       }\r
-               }\r
-               \r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate HeaderTemplate {\r
-                       get { return headerTemplate; }\r
-                       set { headerTemplate = value; RequireBinding (); }\r
-               }\r
-\r
-               [LocalizableAttribute (true)]\r
-               [WebCategoryAttribute ("Appearance")]\r
-               [DefaultValueAttribute ("")]\r
-               public virtual string HeaderText {\r
-                       get {\r
-                               object ob = ViewState ["HeaderText"];\r
-                               if (ob != null) return (string) ob;\r
-                               return string.Empty;\r
-                       }\r
-                       set {\r
-                               ViewState ["HeaderText"] = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               [Category ("Layout")]\r
-               [DefaultValueAttribute (HorizontalAlign.NotSet)]\r
-               public virtual HorizontalAlign HorizontalAlign {\r
-                       get {\r
-                               if (ControlStyleCreated)\r
-                                       return ((TableStyle) ControlStyle).HorizontalAlign;\r
-                               return HorizontalAlign.NotSet;\r
-                       }\r
-                       set {\r
-                               ((TableStyle) ControlStyle).HorizontalAlign = value;\r
-                       }\r
-               }\r
-\r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate InsertItemTemplate {\r
-                       get { return insertItemTemplate; }\r
-                       set { insertItemTemplate = value; RequireBinding (); }\r
-               }\r
-\r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               [DefaultValueAttribute (null)]\r
-               public TableItemStyle InsertRowStyle {\r
-                       get {\r
-                               if (insertRowStyle == null) {\r
-                                       insertRowStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               insertRowStyle.TrackViewState();\r
-                               }\r
-                               return insertRowStyle;\r
-                       }\r
-               }\r
-\r
-               [DefaultValue (null)]\r
-               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate ItemTemplate {\r
-                       get { return itemTemplate; }\r
-                       set { itemTemplate = value; RequireBinding (); }\r
-               }\r
-               \r
-               [BrowsableAttribute (false)]\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               public virtual int PageCount {\r
-                       get {\r
-                               return pageCount;\r
-                       }\r
-               }\r
-\r
-               [WebCategoryAttribute ("Paging")]\r
-               [BindableAttribute (true, BindingDirection.OneWay)]\r
-               [DefaultValueAttribute (0)]\r
-               public virtual int PageIndex {\r
-                       get {\r
-                               return pageIndex;\r
-                       }\r
-                       set {\r
-                               if (value < 0)\r
-                                       throw new ArgumentOutOfRangeException ("PageIndex must be non-negative");\r
-                               if (pageIndex == value)\r
-                                       return;\r
-                               pageIndex = value;\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-       \r
-               [WebCategoryAttribute ("Paging")]\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Content)]\r
-               [NotifyParentPropertyAttribute (true)]\r
-               [PersistenceModeAttribute (PersistenceMode.InnerProperty)]\r
-               public virtual PagerSettings PagerSettings {\r
-                       get {\r
-                               if (pagerSettings == null) {\r
-                                       pagerSettings = new PagerSettings (this);\r
-                                       if (IsTrackingViewState)\r
-                                               ((IStateManager)pagerSettings).TrackViewState ();\r
-                               }\r
-                               return pagerSettings;\r
-                       }\r
-               }\r
-       \r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               public TableItemStyle PagerStyle {\r
-                       get {\r
-                               if (pagerStyle == null) {\r
-                                       pagerStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               pagerStyle.TrackViewState();\r
-                               }\r
-                               return pagerStyle;\r
-                       }\r
-               }\r
-               \r
-               \r
-               [DefaultValue (null)]\r
-               /* DataControlPagerCell isnt specified in the docs */\r
-               //[TemplateContainer (typeof(DataControlPagerCell), BindingDirection.OneWay)]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [Browsable (false)]\r
-               public virtual ITemplate PagerTemplate {\r
-                       get { return pagerTemplate; }\r
-                       set { pagerTemplate = value; RequireBinding (); }\r
-               }\r
-               \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual FormViewRow Row {\r
-                       get {\r
-                               EnsureChildControls ();\r
-                               return itemRow;\r
-                       }\r
-               }\r
-               \r
-               [WebCategoryAttribute ("Styles")]\r
-               [PersistenceMode (PersistenceMode.InnerProperty)]\r
-               [NotifyParentProperty (true)]\r
-               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]\r
-               [DefaultValue (null)]\r
-               public TableItemStyle RowStyle {\r
-                       get {\r
-                               if (rowStyle == null) {\r
-                                       rowStyle = new TableItemStyle ();\r
-                                       if (IsTrackingViewState)\r
-                                               rowStyle.TrackViewState();\r
-                               }\r
-                               return rowStyle;\r
-                       }\r
-               }\r
-\r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public object SelectedValue {\r
-                       get { return DataKey.Value; }\r
-               }\r
-               \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual FormViewRow TopPagerRow {\r
-                       get {\r
-                               EnsureChildControls ();\r
-                               return topPagerRow;\r
-                       }\r
-               }\r
-       \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual object DataItem {\r
-                       get {\r
-                               EnsureDataBound ();\r
-                               return dataItem;\r
-                       }\r
-               }\r
-               \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public int DataItemCount {\r
-                       get { return PageCount; }\r
-               }               \r
-       \r
-               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
-               [BrowsableAttribute (false)]\r
-               public virtual int DataItemIndex {\r
-                       get { return PageIndex; }\r
-               }\r
-\r
-               int IDataItemContainer.DataItemIndex {\r
-                       get { return DataItemIndex; }\r
-               }\r
-       \r
-               int IDataItemContainer.DisplayIndex {\r
-                       get { return PageIndex; }\r
-               }               \r
-       \r
-               public virtual bool IsBindableType (Type type)\r
-               {\r
-                       return type.IsPrimitive || type == typeof (string) || type == typeof (DateTime) || type == typeof (Guid) || type == typeof (Decimal);\r
-               }\r
-               \r
-               protected override DataSourceSelectArguments CreateDataSourceSelectArguments ()\r
-               {\r
-                       DataSourceSelectArguments arg = new DataSourceSelectArguments ();\r
-                       DataSourceView view = GetData ();\r
-                       if (AllowPaging && view.CanPage) {\r
-                               arg.StartRowIndex = PageIndex;\r
-                               if (view.CanRetrieveTotalRowCount) {\r
-                                       arg.RetrieveTotalRowCount = true;\r
-                                       arg.MaximumRows = 1;\r
-                               }\r
-                               else {\r
-                                       arg.MaximumRows = -1;\r
-                               }\r
-                       }\r
-                       return arg;\r
-               }\r
-               \r
-               protected virtual FormViewRow CreateRow (int rowIndex, DataControlRowType rowType, DataControlRowState rowState)\r
-               {\r
-                       FormViewRow row = new FormViewRow (rowIndex, rowType, rowState);\r
-                       OnItemCreated (EventArgs.Empty);\r
-                       return row;\r
-               }\r
-               \r
-               void RequireBinding ()\r
-               {\r
-                       if (Initialized) {\r
-                               RequiresDataBinding = true;\r
-                       }\r
-               }\r
-               \r
-               protected virtual Table CreateTable ()\r
-               {\r
-                       return new ContainedTable (this);\r
-               }\r
-\r
-               [MonoTODO]\r
-               protected override void EnsureDataBound ()\r
-               {\r
-                       base.EnsureDataBound ();\r
-               }\r
-       \r
-               protected override Style CreateControlStyle ()\r
-               {\r
-                       TableStyle style = new TableStyle (ViewState);\r
-                       style.CellSpacing = 0;\r
-                       return style;\r
-               }\r
-               \r
-               protected override int CreateChildControls (IEnumerable data, bool dataBinding)\r
-               {\r
-                       PagedDataSource dataSource = new PagedDataSource ();\r
-                       dataSource.DataSource = data;\r
-                       dataSource.AllowPaging = AllowPaging;\r
-                       dataSource.PageSize = 1;\r
-                       dataSource.CurrentPageIndex = PageIndex;\r
-\r
-                       if (dataBinding && CurrentMode != FormViewMode.Insert) {\r
-                               DataSourceView view = GetData ();\r
-                               if (view != null && view.CanPage) {\r
-                                       dataSource.AllowServerPaging = true;\r
-                                       if (SelectArguments.RetrieveTotalRowCount)\r
-                                               dataSource.VirtualCount = SelectArguments.TotalRowCount;\r
-                               }\r
-                       }\r
-\r
-                       pageCount = dataSource.DataSourceCount;\r
-                       bool showPager = AllowPaging && (pageCount > 1);\r
-                       \r
-                       Controls.Clear ();\r
-                       table = CreateTable ();\r
-                       Controls.Add (table);\r
-\r
-                       // Gets the current data item\r
-                       \r
-                       IEnumerator e = dataSource.GetEnumerator (); \r
-                       dataItem = null;\r
-\r
-                       if (AllowPaging) {\r
-                               if (e.MoveNext ())\r
-                                       dataItem = e.Current;\r
-                       }\r
-                       else\r
-                       for (int page = 0; e.MoveNext (); page++ )\r
-                               if (page == PageIndex)\r
-                                       dataItem = e.Current;\r
-                       \r
-                       // Main table creation\r
-                       \r
-                       if (HeaderText.Length != 0 || headerTemplate != null) {\r
-                               headerRow = CreateRow (-1, DataControlRowType.Header, DataControlRowState.Normal);\r
-                               InitializeRow (headerRow);\r
-                               table.Rows.Add (headerRow);\r
-                       }\r
-                       \r
-                       if (showPager && PagerSettings.Position == PagerPosition.Top || PagerSettings.Position == PagerPosition.TopAndBottom) {\r
-                               topPagerRow = CreateRow (-1, DataControlRowType.Pager, DataControlRowState.Normal);\r
-                               InitializePager (topPagerRow, dataSource);\r
-                               table.Rows.Add (topPagerRow);\r
-                       }\r
-\r
-                       if (pageCount > 0) {\r
-                               DataControlRowState rstate = GetRowState ();\r
-                               itemRow = CreateRow (0, DataControlRowType.DataRow, rstate);\r
-                               InitializeRow (itemRow);\r
-                               table.Rows.Add (itemRow);\r
-                       } else {\r
-                               switch (CurrentMode) {\r
-                               case FormViewMode.Edit:\r
-                                       itemRow = CreateRow (-1, DataControlRowType.EmptyDataRow, DataControlRowState.Edit);\r
-                                       break;\r
-                               case FormViewMode.Insert:\r
-                                       itemRow = CreateRow (-1, DataControlRowType.DataRow, DataControlRowState.Insert);\r
-                                       break;\r
-                               default:\r
-                                       itemRow = CreateRow (-1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);\r
-                                       break;\r
-                               }\r
-                               table.Rows.Add (itemRow);\r
-                               InitializeRow (itemRow);\r
-                       }\r
-\r
-                       if (FooterText.Length != 0 || footerTemplate != null) {\r
-                               footerRow = CreateRow (-1, DataControlRowType.Footer, DataControlRowState.Normal);\r
-                               InitializeRow (footerRow);\r
-                               table.Rows.Add (footerRow);\r
-                       }\r
-                       \r
-                       if (showPager && PagerSettings.Position == PagerPosition.Bottom || PagerSettings.Position == PagerPosition.TopAndBottom) {\r
-                               bottomPagerRow = CreateRow (0, DataControlRowType.Pager, DataControlRowState.Normal);\r
-                               InitializePager (bottomPagerRow, dataSource);\r
-                               table.Rows.Add (bottomPagerRow);\r
-                       }\r
-\r
-                       if (dataBinding)\r
-                               DataBind (false);\r
-                       \r
-                       return dataSource.DataSourceCount;\r
-               }\r
-               \r
-               DataControlRowState GetRowState ()\r
-               {\r
-                       DataControlRowState rstate = DataControlRowState.Normal;\r
-                       if (CurrentMode == FormViewMode.Edit) rstate |= DataControlRowState.Edit;\r
-                       else if (CurrentMode == FormViewMode.Insert) rstate |= DataControlRowState.Insert;\r
-                       return rstate;\r
-               }\r
-               \r
-               protected virtual void InitializePager (FormViewRow row, PagedDataSource dataSource)\r
-               {\r
-                       TableCell cell = new TableCell ();\r
-                       cell.ColumnSpan = 2;\r
-\r
-                       if (pagerTemplate != null)\r
-                               pagerTemplate.InstantiateIn (cell);\r
-                       else\r
-                               cell.Controls.Add (PagerSettings.CreatePagerControl (dataSource.CurrentPageIndex, dataSource.PageCount));\r
-                       \r
-                       row.Cells.Add (cell);\r
-               }\r
-               \r
-               protected virtual void InitializeRow (FormViewRow row)\r
-               {\r
-                       TableCell cell = new TableCell ();\r
-                       \r
-                       if (row.RowType == DataControlRowType.DataRow)\r
-                       {\r
-                               if ((row.RowState & DataControlRowState.Edit) != 0) {\r
-                                       if (editItemTemplate != null)\r
-                                               editItemTemplate.InstantiateIn (cell);\r
-                               } else if ((row.RowState & DataControlRowState.Insert) != 0) {\r
-                                       if (insertItemTemplate != null)\r
-                                               insertItemTemplate.InstantiateIn (cell);\r
-                               } else if (itemTemplate != null)\r
-                                       itemTemplate.InstantiateIn (cell);\r
-                       }\r
-                       else if (row.RowType == DataControlRowType.EmptyDataRow)\r
-                       {\r
-                               if (emptyDataTemplate != null)\r
-                                       emptyDataTemplate.InstantiateIn (cell);\r
-                               else\r
-                                       cell.Text = EmptyDataText;\r
-                       }\r
-                       else if (row.RowType == DataControlRowType.Footer)\r
-                       {\r
-                               if (footerTemplate != null)\r
-                                       footerTemplate.InstantiateIn (cell);\r
-                               else\r
-                                       cell.Text = FooterText;\r
-                       }\r
-                       else if (row.RowType == DataControlRowType.Header)\r
-                       {\r
-                               if (headerTemplate != null)\r
-                                       headerTemplate.InstantiateIn (cell);\r
-                               else\r
-                                       cell.Text = HeaderText;\r
-                       }\r
-                       cell.ColumnSpan = 2;\r
-                       row.Cells.Add (cell);\r
-               }\r
-               \r
-               void FillRowDataKey (object dataItem)\r
-               {\r
-                       KeyTable.Clear ();\r
-\r
-                       if (cachedKeyProperties == null) {\r
-                               PropertyDescriptorCollection props = TypeDescriptor.GetProperties (dataItem);\r
-                               cachedKeyProperties = new PropertyDescriptor [DataKeyNames.Length];\r
-                               for (int n=0; n<DataKeyNames.Length; n++) { \r
-                                       PropertyDescriptor p = props [DataKeyNames[n]];\r
-                                       if (p == null)\r
-                                               new InvalidOperationException ("Property '" + DataKeyNames[n] + "' not found in object of type " + dataItem.GetType());\r
-                                       cachedKeyProperties [n] = p;\r
-                               }\r
-                       }\r
-                       foreach (PropertyDescriptor p in cachedKeyProperties)\r
-                               KeyTable [p.Name] = p.GetValue (dataItem);\r
-               }\r
-               \r
-               IOrderedDictionary GetRowValues (bool includePrimaryKey)\r
-               {\r
-                       OrderedDictionary dic = new OrderedDictionary ();\r
-                       ExtractRowValues (dic, includePrimaryKey);\r
-                       return dic;\r
-               }\r
-               \r
-               protected virtual void ExtractRowValues (IOrderedDictionary fieldValues, bool includeKeys)\r
-               {\r
-                       if (Row == null)\r
-                               return;\r
-\r
-                       DataControlRowState rowState = Row.RowState;\r
-                       IBindableTemplate bt;\r
-                       \r
-                       if ((rowState & DataControlRowState.Insert) != 0)\r
-                               bt = insertItemTemplate as IBindableTemplate; \r
-                       else if ((rowState & DataControlRowState.Edit) != 0)\r
-                               bt = editItemTemplate as IBindableTemplate;\r
-                       else\r
-                               return;\r
-                       \r
-                       if (bt != null) {\r
-                               IOrderedDictionary values = bt.ExtractValues (Row.Cells [0]);\r
-                               foreach (DictionaryEntry e in values) {\r
-                                       if (includeKeys || Array.IndexOf (DataKeyNames, e.Key) == -1)\r
-                                               fieldValues [e.Key] = e.Value;\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               protected override HtmlTextWriterTag TagKey {\r
-                       get {\r
-                               return HtmlTextWriterTag.Table;\r
-                       }\r
-               }\r
-               \r
-               public sealed override void DataBind ()\r
-               {\r
-                       if (CurrentMode == FormViewMode.Insert) {\r
-                               RequiresDataBinding = false;\r
-                               PerformDataBinding (new object [] { null });\r
-                               return;\r
-                       }\r
-\r
-                       cachedKeyProperties = null;\r
-                       base.DataBind ();\r
-                       \r
-                       if (pageCount > 0) {\r
-                               if (CurrentMode == FormViewMode.Edit)\r
-                                       oldEditValues = new DataKey (GetRowValues (true));\r
-                               FillRowDataKey (dataItem);\r
-                               key = new DataKey (KeyTable);\r
-                       }\r
-               }\r
-               \r
-               protected internal override void PerformDataBinding (IEnumerable data)\r
-               {\r
-                       base.PerformDataBinding (data);\r
-               }\r
-\r
-               protected internal virtual void PrepareControlHierarchy ()\r
-               {\r
-                       if (table == null)\r
-                               return;\r
-\r
-                       table.Caption = Caption;\r
-                       table.CaptionAlign = CaptionAlign;\r
-\r
-                       foreach (FormViewRow row in table.Rows) {\r
-                               switch (row.RowType) {\r
-                               case DataControlRowType.Header:\r
-                                       if (headerStyle != null && !headerStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (headerStyle);\r
-                                       break;\r
-                               case DataControlRowType.Footer:\r
-                                       if (footerStyle != null && !footerStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (footerStyle);\r
-                                       break;\r
-                               case DataControlRowType.Pager:\r
-                                       if (pagerStyle != null && !pagerStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (pagerStyle);\r
-                                       break;\r
-                               case DataControlRowType.EmptyDataRow:\r
-                                       if (emptyDataRowStyle != null && !emptyDataRowStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (emptyDataRowStyle);\r
-                                       break;\r
-                               case DataControlRowType.DataRow:\r
-                                       if (rowStyle != null && !rowStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (rowStyle);\r
-                                       if ((row.RowState & (DataControlRowState.Edit | DataControlRowState.Insert)) != 0 && editRowStyle != null && !editRowStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (editRowStyle);\r
-                                       if ((row.RowState & DataControlRowState.Insert) != 0 && insertRowStyle != null && !insertRowStyle.IsEmpty)\r
-                                               row.ControlStyle.CopyFrom (insertRowStyle);\r
-                                       break;\r
-                               default:\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               \r
-               protected internal override void OnInit (EventArgs e)\r
-               {\r
-                       Page.RegisterRequiresControlState (this);\r
-                       base.OnInit (e);\r
-               }\r
-               \r
-               protected override bool OnBubbleEvent (object source, EventArgs e)\r
-               {\r
-                       FormViewCommandEventArgs args = e as FormViewCommandEventArgs;\r
-                       if (args != null) {\r
-                               OnItemCommand (args);\r
-                               ProcessEvent (args.CommandName, args.CommandArgument as string);\r
-                               return true;\r
-                       }\r
-                       return base.OnBubbleEvent (source, e);\r
-               }\r
-               \r
-                void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)\r
-               {\r
-                       RaisePostBackEvent (eventArgument);\r
-               }\r
-\r
-               protected virtual void RaisePostBackEvent (string eventArgument)\r
-               {\r
-                       int i = eventArgument.IndexOf ('$');\r
-                       if (i != -1)\r
-                               ProcessEvent (eventArgument.Substring (0, i), eventArgument.Substring (i + 1));\r
-                       else\r
-                               ProcessEvent (eventArgument, null);\r
-               }\r
-               \r
-               void ProcessEvent (string eventName, string param)\r
-               {\r
-                       switch (eventName)\r
-                       {\r
-                       case DataControlCommands.PageCommandName:\r
-                               int newIndex = -1;\r
-                               switch (param) {\r
-                               case DataControlCommands.FirstPageCommandArgument:\r
-                                       newIndex = 0;\r
-                                       break;\r
-                               case DataControlCommands.LastPageCommandArgument:\r
-                                       newIndex = PageCount - 1;\r
-                                       break;\r
-                               case DataControlCommands.NextPageCommandArgument:\r
-                                       newIndex = PageIndex + 1;\r
-                                       break;\r
-                               case DataControlCommands.PreviousPageCommandArgument:\r
-                                       newIndex = PageIndex - 1;\r
-                                       break;\r
-                               default:\r
-                                       int paramIndex = 0;\r
-                                       int.TryParse (param, out paramIndex);\r
-                                       newIndex = paramIndex - 1;\r
-                                       break;\r
-                               }\r
-                               ShowPage (newIndex);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.FirstPageCommandArgument:\r
-                               ShowPage (0);\r
-                               break;\r
-\r
-                       case DataControlCommands.LastPageCommandArgument:\r
-                               ShowPage (PageCount - 1);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.NextPageCommandArgument:\r
-                               if (PageIndex < PageCount - 1)\r
-                                       ShowPage (PageIndex + 1);\r
-                               break;\r
-\r
-                       case DataControlCommands.PreviousPageCommandArgument:\r
-                               if (PageIndex > 0)\r
-                                       ShowPage (PageIndex - 1);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.EditCommandName:\r
-                               ChangeMode (FormViewMode.Edit);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.NewCommandName:\r
-                               ChangeMode (FormViewMode.Insert);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.UpdateCommandName:\r
-                               UpdateItem (param, true);\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.CancelCommandName:\r
-                               CancelEdit ();\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.DeleteCommandName:\r
-                               DeleteItem ();\r
-                               break;\r
-                                       \r
-                       case DataControlCommands.InsertCommandName:\r
-                               InsertItem (true);\r
-                               break;\r
-                       }\r
-               }\r
-               \r
-               void ShowPage (int index)\r
-               {\r
-                       FormViewPageEventArgs args = new FormViewPageEventArgs (index);\r
-                       OnPageIndexChanging (args);\r
-                       if (!args.Cancel) {\r
-                               int newIndex = args.NewPageIndex;\r
-                               if (newIndex < 0 || newIndex >= PageCount)\r
-                                       return;\r
-                               EndRowEdit (false);\r
-                               PageIndex = newIndex;\r
-                               OnPageIndexChanged (EventArgs.Empty);\r
-                       }\r
-               }\r
-               \r
-               public void ChangeMode (FormViewMode newMode)\r
-               {\r
-                       FormViewModeEventArgs args = new FormViewModeEventArgs (newMode, false);\r
-                       OnModeChanging (args);\r
-                       if (!args.Cancel) {\r
-                               CurrentMode = args.NewMode;\r
-                               OnModeChanged (EventArgs.Empty);\r
-                               RequireBinding ();\r
-                       }\r
-               }\r
-               \r
-               void CancelEdit ()\r
-               {\r
-                       FormViewModeEventArgs args = new FormViewModeEventArgs (FormViewMode.ReadOnly, true);\r
-                       OnModeChanging (args);\r
-                       if (!args.Cancel) {\r
-                               EndRowEdit ();\r
-                       }\r
-               }\r
-\r
-               public virtual void UpdateItem (bool causesValidation)\r
-               {\r
-                       UpdateItem (null, causesValidation);\r
-               }\r
-               \r
-               void UpdateItem (string param, bool causesValidation)\r
-               {\r
-                       if (causesValidation && Page != null)\r
-                               Page.Validate ();\r
-                       \r
-                       if (currentMode != FormViewMode.Edit) throw new HttpException ("Must be in Edit mode");\r
-\r
-                       currentEditOldValues = OldEditValues.Values;\r
-                       currentEditRowKeys = DataKey.Values;\r
-                       currentEditNewValues = GetRowValues (false);\r
-                       \r
-                       FormViewUpdateEventArgs args = new FormViewUpdateEventArgs (param, currentEditRowKeys, currentEditOldValues, currentEditNewValues);\r
-                       OnItemUpdating (args);\r
-                       if (!args.Cancel) {\r
-                               DataSourceView view = GetData ();\r
-                               if (view == null)\r
-                                       throw new HttpException ("The DataSourceView associated to data bound control was null");\r
-                               if (view.CanUpdate)\r
-                                       view.Update (currentEditRowKeys, currentEditNewValues, currentEditOldValues, new DataSourceViewOperationCallback (UpdateCallback));\r
-                       }\r
-                       else\r
-                               EndRowEdit ();\r
-               }\r
-\r
-               bool UpdateCallback (int recordsAffected, Exception exception)\r
-               {\r
-                       FormViewUpdatedEventArgs dargs = new FormViewUpdatedEventArgs (recordsAffected, exception, currentEditRowKeys, currentEditOldValues, currentEditNewValues);\r
-                       OnItemUpdated (dargs);\r
-\r
-                       if (!dargs.KeepInEditMode)                              \r
-                               EndRowEdit ();\r
-\r
-                       return dargs.ExceptionHandled;\r
-               }\r
-\r
-               public virtual void InsertItem (bool causesValidation)\r
-               {\r
-                       InsertItem (null, causesValidation);\r
-               }\r
-               \r
-               void InsertItem (string param, bool causesValidation)\r
-               {\r
-                       if (causesValidation && Page != null)\r
-                               Page.Validate ();\r
-                       \r
-                       if (currentMode != FormViewMode.Insert) throw new HttpException ("Must be in Insert mode");\r
-                       \r
-                       currentEditNewValues = GetRowValues (true);\r
-                       FormViewInsertEventArgs args = new FormViewInsertEventArgs (param, currentEditNewValues);\r
-                       OnItemInserting (args);\r
-                       if (!args.Cancel) {\r
-                               DataSourceView view = GetData ();\r
-                               if (view == null)\r
-                                       throw new HttpException ("The DataSourceView associated to data bound control was null");\r
-                               if (view.CanInsert)\r
-                                       view.Insert (currentEditNewValues, new DataSourceViewOperationCallback (InsertCallback));\r
-                       }\r
-                       else\r
-                               EndRowEdit ();\r
-               }\r
-               \r
-               bool InsertCallback (int recordsAffected, Exception exception)\r
-               {\r
-                       FormViewInsertedEventArgs dargs = new FormViewInsertedEventArgs (recordsAffected, exception, currentEditNewValues);\r
-                       OnItemInserted (dargs);\r
-\r
-                       if (!dargs.KeepInInsertMode)                            \r
-                               EndRowEdit ();\r
-\r
-                       return dargs.ExceptionHandled;\r
-               }\r
-\r
-               public virtual void DeleteItem ()\r
-               {\r
-                       currentEditRowKeys = DataKey.Values;\r
-                       currentEditNewValues = GetRowValues (true);\r
-                       \r
-                       FormViewDeleteEventArgs args = new FormViewDeleteEventArgs (PageIndex, currentEditRowKeys, currentEditNewValues);\r
-                       OnItemDeleting (args);\r
-\r
-                       if (!args.Cancel) {\r
-                               if (PageIndex > 0 && PageIndex == PageCount - 1)\r
-                                       PageIndex--;\r
-                                       \r
-                               RequireBinding ();\r
-                                       \r
-                               DataSourceView view = GetData ();\r
-                               if (view != null && view.CanDelete)\r
-                                       view.Delete (currentEditRowKeys, currentEditNewValues, new DataSourceViewOperationCallback (DeleteCallback));\r
-                               else {\r
-                                       FormViewDeletedEventArgs dargs = new FormViewDeletedEventArgs (0, null, currentEditRowKeys, currentEditNewValues);\r
-                                       OnItemDeleted (dargs);\r
-                               }\r
-                       }\r
-               }\r
-\r
-               bool DeleteCallback (int recordsAffected, Exception exception)\r
-               {\r
-                       FormViewDeletedEventArgs dargs = new FormViewDeletedEventArgs (recordsAffected, exception, currentEditRowKeys, currentEditNewValues);\r
-                       OnItemDeleted (dargs);\r
-                       return dargs.ExceptionHandled;\r
-               }\r
-               \r
-               void EndRowEdit ()\r
-               {\r
-                       EndRowEdit (true);\r
-               }\r
-\r
-               void EndRowEdit (bool switchToDefaultMode) \r
-               {\r
-                       if (switchToDefaultMode)\r
-                               ChangeMode (DefaultMode);\r
-                       oldEditValues = new DataKey (new OrderedDictionary ());\r
-                       currentEditRowKeys = null;\r
-                       currentEditOldValues = null;\r
-                       currentEditNewValues = null;\r
-                       RequireBinding ();\r
-               }\r
-\r
-               protected internal override void LoadControlState (object ob)\r
-               {\r
-                       if (ob == null) return;\r
-                       object[] state = (object[]) ob;\r
-                       base.LoadControlState (state[0]);\r
-                       pageIndex = (int) state[1];\r
-                       pageCount = (int) state[2];\r
-                       CurrentMode = (FormViewMode) state[3];\r
-                       defaultMode = (FormViewMode) state[4];\r
-                       dataKeyNames = (string[]) state[5];\r
-                       if (state [6] != null)\r
-                               ((IStateManager) DataKey).LoadViewState (state [6]);\r
-                       if (state [7] != null)\r
-                               ((IStateManager) OldEditValues).LoadViewState (state [7]);\r
-               }\r
-               \r
-               protected internal override object SaveControlState ()\r
-               {\r
-                       object bstate = base.SaveControlState ();\r
-                       return new object [] {\r
-                               bstate, \r
-                               pageIndex, \r
-                               pageCount, \r
-                               CurrentMode, \r
-                               defaultMode, \r
-                               dataKeyNames,\r
-                               (key == null ? null : ((IStateManager)key).SaveViewState()),\r
-                               (oldEditValues == null ? null : ((IStateManager) oldEditValues).SaveViewState ())\r
-                       };\r
-               }\r
-               \r
-               protected override void TrackViewState()\r
-               {\r
-                       base.TrackViewState();\r
-                       if (pagerSettings != null) ((IStateManager)pagerSettings).TrackViewState();\r
-                       if (footerStyle != null) ((IStateManager)footerStyle).TrackViewState();\r
-                       if (headerStyle != null) ((IStateManager)headerStyle).TrackViewState();\r
-                       if (pagerStyle != null) ((IStateManager)pagerStyle).TrackViewState();\r
-                       if (rowStyle != null) ((IStateManager)rowStyle).TrackViewState();\r
-                       if (editRowStyle != null) ((IStateManager)editRowStyle).TrackViewState();\r
-                       if (insertRowStyle != null) ((IStateManager)insertRowStyle).TrackViewState();\r
-                       if (emptyDataRowStyle != null) ((IStateManager)emptyDataRowStyle).TrackViewState();\r
-               }\r
-\r
-               protected override object SaveViewState()\r
-               {\r
-                       object[] states = new object [10];\r
-                       states[0] = base.SaveViewState();\r
-                       states[1] = (pagerSettings == null ? null : ((IStateManager)pagerSettings).SaveViewState());\r
-                       states[2] = (footerStyle == null ? null : ((IStateManager)footerStyle).SaveViewState());\r
-                       states[3] = (headerStyle == null ? null : ((IStateManager)headerStyle).SaveViewState());\r
-                       states[4] = (pagerStyle == null ? null : ((IStateManager)pagerStyle).SaveViewState());\r
-                       states[5] = (rowStyle == null ? null : ((IStateManager)rowStyle).SaveViewState());\r
-                       states[6] = (insertRowStyle == null ? null : ((IStateManager)insertRowStyle).SaveViewState());\r
-                       states[7] = (editRowStyle == null ? null : ((IStateManager)editRowStyle).SaveViewState());\r
-                       states[8] = (emptyDataRowStyle == null ? null : ((IStateManager)emptyDataRowStyle).SaveViewState());\r
-                       \r
-                       for (int i = states.Length - 1; i >= 0; i--) {\r
-                               if (states [i] != null)\r
-                                       return states;\r
-                       }\r
-\r
-                       return null;\r
-               }\r
-\r
-               protected override void LoadViewState (object savedState)\r
-               {\r
-                       if (savedState == null) {\r
-                               base.LoadViewState (null);\r
-                               return;\r
-                       }\r
-\r
-                       object [] states = (object []) savedState;\r
-                       \r
-                       base.LoadViewState (states[0]);\r
-                       \r
-                       if (states[1] != null) ((IStateManager)PagerSettings).LoadViewState (states[1]);\r
-                       if (states[2] != null) ((IStateManager)FooterStyle).LoadViewState (states[2]);\r
-                       if (states[3] != null) ((IStateManager)HeaderStyle).LoadViewState (states[3]);\r
-                       if (states[4] != null) ((IStateManager)PagerStyle).LoadViewState (states[4]);\r
-                       if (states[5] != null) ((IStateManager)RowStyle).LoadViewState (states[5]);\r
-                       if (states[6] != null) ((IStateManager)InsertRowStyle).LoadViewState (states[6]);\r
-                       if (states[7] != null) ((IStateManager)EditRowStyle).LoadViewState (states[7]);\r
-                       if (states[8] != null) ((IStateManager)EmptyDataRowStyle).LoadViewState (states[8]);\r
-               }\r
-               \r
-               protected internal override void Render (HtmlTextWriter writer)\r
-               {\r
-                       PrepareControlHierarchy ();\r
-                       \r
-                       if (table == null)\r
-                               return;\r
-\r
-                       table.Render (writer);\r
-               }\r
-\r
-               PostBackOptions IPostBackContainer.GetPostBackOptions (IButtonControl control)\r
-               {\r
-                       if (control == null)\r
-                               throw new ArgumentNullException ("control");\r
-\r
-                       if (control.CausesValidation)\r
-                               throw new InvalidOperationException ("A button that causes validation in FormView '" + ID + "' is attempting to use the container GridView as the post back target.  The button should either turn off validation or use itself as the post back container.");\r
-\r
-                       PostBackOptions options = new PostBackOptions (this);\r
-                       options.Argument = control.CommandName + "$" + control.CommandArgument;\r
-                       options.RequiresJavaScriptProtocol = true;\r
-\r
-                       return options;\r
-               }\r
-\r
-       }\r
-}\r
-\r
-#endif\r
+//
+// System.Web.UI.WebControls.FormView.cs
+//
+// Authors:
+//     Lluis Sanchez Gual (lluis@novell.com)
+//
+// (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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using System.Web.UI;
+using System.Security.Permissions;
+using System.Text;
+using System.IO;
+using System.Reflection;
+
+namespace System.Web.UI.WebControls
+{
+       [SupportsEventValidation]
+       [DesignerAttribute ("System.Web.UI.Design.WebControls.FormViewDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
+       [ControlValuePropertyAttribute ("SelectedValue")]
+       [DefaultEventAttribute ("PageIndexChanging")]
+       [AspNetHostingPermissionAttribute (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       public class FormView: CompositeDataBoundControl, IDataItemContainer, INamingContainer, IPostBackEventHandler, IPostBackContainer
+       {
+               object dataItem;
+               
+               Table table;
+               FormViewRow headerRow;
+               FormViewRow footerRow;
+               FormViewRow bottomPagerRow;
+               FormViewRow topPagerRow;
+               FormViewRow itemRow;
+               
+               IOrderedDictionary currentEditRowKeys;
+               IOrderedDictionary currentEditNewValues;
+               IOrderedDictionary currentEditOldValues;
+               
+               ITemplate pagerTemplate;
+               ITemplate emptyDataTemplate;
+               ITemplate headerTemplate;
+               ITemplate footerTemplate;
+               ITemplate editItemTemplate;
+               ITemplate insertItemTemplate;
+               ITemplate itemTemplate;
+               
+               PropertyDescriptor[] cachedKeyProperties;
+               readonly string[] emptyKeys = new string[0];
+               
+               // View state
+               PagerSettings pagerSettings;
+               
+               TableItemStyle editRowStyle;
+               TableItemStyle insertRowStyle;
+               TableItemStyle emptyDataRowStyle;
+               TableItemStyle footerStyle;
+               TableItemStyle headerStyle;
+               TableItemStyle pagerStyle;
+               TableItemStyle rowStyle;
+               
+               IOrderedDictionary _keyTable;
+               DataKey key;
+               DataKey oldEditValues;
+               
+               private static readonly object PageIndexChangedEvent = new object();
+               private static readonly object PageIndexChangingEvent = new object();
+               private static readonly object ItemCommandEvent = new object();
+               private static readonly object ItemCreatedEvent = new object();
+               private static readonly object ItemDeletedEvent = new object();
+               private static readonly object ItemDeletingEvent = new object();
+               private static readonly object ItemInsertedEvent = new object();
+               private static readonly object ItemInsertingEvent = new object();
+               private static readonly object ModeChangingEvent = new object();
+               private static readonly object ModeChangedEvent = new object();
+               private static readonly object ItemUpdatedEvent = new object();
+               private static readonly object ItemUpdatingEvent = new object();
+               
+               // Control state
+               int pageIndex;
+               FormViewMode currentMode = FormViewMode.ReadOnly; 
+               bool hasCurrentMode;
+               int pageCount;
+               
+               public event EventHandler PageIndexChanged {
+                       add { Events.AddHandler (PageIndexChangedEvent, value); }
+                       remove { Events.RemoveHandler (PageIndexChangedEvent, value); }
+               }
+               
+               public event FormViewPageEventHandler PageIndexChanging {
+                       add { Events.AddHandler (PageIndexChangingEvent, value); }
+                       remove { Events.RemoveHandler (PageIndexChangingEvent, value); }
+               }
+               
+               public event FormViewCommandEventHandler ItemCommand {
+                       add { Events.AddHandler (ItemCommandEvent, value); }
+                       remove { Events.RemoveHandler (ItemCommandEvent, value); }
+               }
+               
+               public event EventHandler ItemCreated {
+                       add { Events.AddHandler (ItemCreatedEvent, value); }
+                       remove { Events.RemoveHandler (ItemCreatedEvent, value); }
+               }
+               
+               public event FormViewDeletedEventHandler ItemDeleted {
+                       add { Events.AddHandler (ItemDeletedEvent, value); }
+                       remove { Events.RemoveHandler (ItemDeletedEvent, value); }
+               }
+               
+               public event FormViewDeleteEventHandler ItemDeleting {
+                       add { Events.AddHandler (ItemDeletingEvent, value); }
+                       remove { Events.RemoveHandler (ItemDeletingEvent, value); }
+               }
+               
+               public event FormViewInsertedEventHandler ItemInserted {
+                       add { Events.AddHandler (ItemInsertedEvent, value); }
+                       remove { Events.RemoveHandler (ItemInsertedEvent, value); }
+               }
+               
+               public event FormViewInsertEventHandler ItemInserting {
+                       add { Events.AddHandler (ItemInsertingEvent, value); }
+                       remove { Events.RemoveHandler (ItemInsertingEvent, value); }
+               }
+               
+               public event FormViewModeEventHandler ModeChanging {
+                       add { Events.AddHandler (ModeChangingEvent, value); }
+                       remove { Events.RemoveHandler (ModeChangingEvent, value); }
+               }
+               
+               public event EventHandler ModeChanged {
+                       add { Events.AddHandler (ModeChangedEvent, value); }
+                       remove { Events.RemoveHandler (ModeChangedEvent, value); }
+               }
+               
+               public event FormViewUpdatedEventHandler ItemUpdated {
+                       add { Events.AddHandler (ItemUpdatedEvent, value); }
+                       remove { Events.RemoveHandler (ItemUpdatedEvent, value); }
+               }
+               
+               public event FormViewUpdateEventHandler ItemUpdating {
+                       add { Events.AddHandler (ItemUpdatingEvent, value); }
+                       remove { Events.RemoveHandler (ItemUpdatingEvent, value); }
+               }
+               
+               protected virtual void OnPageIndexChanged (EventArgs e)
+               {
+                       if (Events != null) {
+                               EventHandler eh = (EventHandler) Events [PageIndexChangedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnPageIndexChanging (FormViewPageEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewPageEventHandler eh = (FormViewPageEventHandler) Events [PageIndexChangingEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemCommand (FormViewCommandEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewCommandEventHandler eh = (FormViewCommandEventHandler) Events [ItemCommandEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemCreated (EventArgs e)
+               {
+                       if (Events != null) {
+                               EventHandler eh = (EventHandler) Events [ItemCreatedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemDeleted (FormViewDeletedEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewDeletedEventHandler eh = (FormViewDeletedEventHandler) Events [ItemDeletedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemInserted (FormViewInsertedEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewInsertedEventHandler eh = (FormViewInsertedEventHandler) Events [ItemInsertedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemInserting (FormViewInsertEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewInsertEventHandler eh = (FormViewInsertEventHandler) Events [ItemInsertingEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemDeleting (FormViewDeleteEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewDeleteEventHandler eh = (FormViewDeleteEventHandler) Events [ItemDeletingEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnModeChanged (EventArgs e)
+               {
+                       if (Events != null) {
+                               EventHandler eh = (EventHandler) Events [ModeChangedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnModeChanging (FormViewModeEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewModeEventHandler eh = (FormViewModeEventHandler) Events [ModeChangingEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemUpdated (FormViewUpdatedEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewUpdatedEventHandler eh = (FormViewUpdatedEventHandler) Events [ItemUpdatedEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               protected virtual void OnItemUpdating (FormViewUpdateEventArgs e)
+               {
+                       if (Events != null) {
+                               FormViewUpdateEventHandler eh = (FormViewUpdateEventHandler) Events [ItemUpdatingEvent];
+                               if (eh != null) eh (this, e);
+                       }
+               }
+               
+               
+               [WebCategoryAttribute ("Paging")]
+               [DefaultValueAttribute (false)]
+               public virtual bool AllowPaging {
+                       get {
+                               object ob = ViewState ["AllowPaging"];
+                               if (ob != null) return (bool) ob;
+                               return false;
+                       }
+                       set {
+                               ViewState ["AllowPaging"] = value;
+                               RequireBinding ();
+                       }
+               }
+               
+               [UrlPropertyAttribute]
+               [WebCategoryAttribute ("Appearance")]
+               [DefaultValueAttribute ("")]
+               [EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
+               public virtual string BackImageUrl {
+                       get {
+                               if (ControlStyleCreated)
+                                       return ((TableStyle) ControlStyle).BackImageUrl;
+                               return String.Empty;
+                       }
+                       set {
+                               ((TableStyle) ControlStyle).BackImageUrl = value;
+                       }
+               }
+
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual FormViewRow BottomPagerRow {
+                       get {
+                               EnsureChildControls ();
+                               return bottomPagerRow;
+                       }
+               }
+       
+               [WebCategoryAttribute ("Accessibility")]
+               [DefaultValueAttribute ("")]
+               [LocalizableAttribute (true)]
+               public virtual string Caption {
+                       get {
+                               object ob = ViewState ["Caption"];
+                               if (ob != null) return (string) ob;
+                               return string.Empty;
+                       }
+                       set {
+                               ViewState ["Caption"] = value;
+                               RequireBinding ();
+                       }
+               }
+               
+               [WebCategoryAttribute ("Accessibility")]
+               [DefaultValueAttribute (TableCaptionAlign.NotSet)]
+               public virtual TableCaptionAlign CaptionAlign
+               {
+                       get {
+                               object o = ViewState ["CaptionAlign"];
+                               if(o != null) return (TableCaptionAlign) o;
+                               return TableCaptionAlign.NotSet;
+                       }
+                       set {
+                               ViewState ["CaptionAlign"] = value;
+                               RequireBinding ();
+                       }
+               }
+
+               [WebCategoryAttribute ("Layout")]
+               [DefaultValueAttribute (-1)]
+               public virtual int CellPadding
+               {
+                       get {
+                               if (ControlStyleCreated)
+                                       return ((TableStyle) ControlStyle).CellPadding;
+                               return -1;
+                       }
+                       set {
+                               ((TableStyle) ControlStyle).CellPadding = value;
+                       }
+               }
+
+               [WebCategoryAttribute ("Layout")]
+               [DefaultValueAttribute (0)]
+               public virtual int CellSpacing
+               {
+                       get {
+                               if (ControlStyleCreated)
+                                       return ((TableStyle) ControlStyle).CellSpacing;
+                               return 0;
+                       }
+                       set {
+                               ((TableStyle) ControlStyle).CellSpacing = value;
+                       }
+               }
+               
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public FormViewMode CurrentMode {
+                       get {
+                               return hasCurrentMode ? currentMode : DefaultMode;
+                       }
+                       private set {
+                               hasCurrentMode = true;
+                               currentMode = value;
+                       }
+               }
+
+               FormViewMode defaultMode;
+
+               [DefaultValueAttribute (FormViewMode.ReadOnly)]
+               [WebCategoryAttribute ("Behavior")]
+               public virtual FormViewMode DefaultMode {
+                       get {
+                               return defaultMode;
+                       }
+                       set {
+                               defaultMode = value;
+                               RequireBinding ();
+                       }
+               }
+
+               string[] dataKeyNames;
+               [DefaultValueAttribute (null)]
+               [WebCategoryAttribute ("Data")]
+               [TypeConverter (typeof(StringArrayConverter))]
+               [EditorAttribute ("System.Web.UI.Design.WebControls.DataFieldEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
+               public virtual string[] DataKeyNames
+               {
+                       get {
+                               if (dataKeyNames == null)
+                                       return emptyKeys;
+                               return dataKeyNames;
+                       }
+                       set {
+                               dataKeyNames = value;
+                               RequireBinding ();
+                       }
+               }
+               
+               IOrderedDictionary KeyTable {
+                       get {
+                               if (_keyTable == null) {
+                                       _keyTable = new OrderedDictionary (DataKeyNames.Length);
+                               }
+                               return _keyTable;
+                       }
+               }
+
+               [BrowsableAttribute (false)]
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               public virtual DataKey DataKey {
+                       get {
+                               if (key == null) {
+                                       key= new DataKey (KeyTable);
+                               }
+                               return key;
+                       }
+               }
+
+               DataKey OldEditValues {
+                       get {
+                               if (oldEditValues == null) {
+                                       oldEditValues = new DataKey (new OrderedDictionary ());
+                               }
+                               return oldEditValues;
+                       }
+               }
+
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate EditItemTemplate {
+                       get { return editItemTemplate; }
+                       set { editItemTemplate = value; RequireBinding (); }
+               }
+
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               [DefaultValueAttribute (null)]
+               public TableItemStyle EditRowStyle {
+                       get {
+                               if (editRowStyle == null) {
+                                       editRowStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               editRowStyle.TrackViewState();
+                               }
+                               return editRowStyle;
+                       }
+               }
+               
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               [DefaultValueAttribute (null)]
+               public TableItemStyle EmptyDataRowStyle {
+                       get {
+                               if (emptyDataRowStyle == null) {
+                                       emptyDataRowStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               emptyDataRowStyle.TrackViewState();
+                               }
+                               return emptyDataRowStyle;
+                       }
+               }
+               
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate EmptyDataTemplate {
+                       get { return emptyDataTemplate; }
+                       set { emptyDataTemplate = value; RequireBinding (); }
+               }
+               
+               [LocalizableAttribute (true)]
+               [WebCategoryAttribute ("Appearance")]
+               [DefaultValueAttribute ("")]
+               public virtual string EmptyDataText {
+                       get {
+                               object ob = ViewState ["EmptyDataText"];
+                               if (ob != null) return (string) ob;
+                               return string.Empty;
+                       }
+                       set {
+                               ViewState ["EmptyDataText"] = value;
+                               RequireBinding ();
+                       }
+               }
+       
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual FormViewRow FooterRow {
+                       get {
+                               EnsureChildControls ();
+                               return footerRow;
+                       }
+               }
+       
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate FooterTemplate {
+                       get { return footerTemplate; }
+                       set { footerTemplate = value; RequireBinding (); }
+               }
+
+               [LocalizableAttribute (true)]
+               [WebCategoryAttribute ("Appearance")]
+               [DefaultValueAttribute ("")]
+               public virtual string FooterText {
+                       get {
+                               object ob = ViewState ["FooterText"];
+                               if (ob != null) return (string) ob;
+                               return string.Empty;
+                       }
+                       set {
+                               ViewState ["FooterText"] = value;
+                               RequireBinding ();
+                       }
+               }
+               
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DefaultValue (null)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               public TableItemStyle FooterStyle {
+                       get {
+                               if (footerStyle == null) {
+                                       footerStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               footerStyle.TrackViewState();
+                               }
+                               return footerStyle;
+                       }
+               }
+               
+               [WebCategoryAttribute ("Appearance")]
+               [DefaultValueAttribute (GridLines.None)]
+               public virtual GridLines GridLines {
+                       get {
+                               if (ControlStyleCreated)
+                                       return ((TableStyle) ControlStyle).GridLines;
+                               return GridLines.None;
+                       }
+                       set {
+                               ((TableStyle) ControlStyle).GridLines = value;
+                       }
+               }
+
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual FormViewRow HeaderRow {
+                       get {
+                               EnsureChildControls ();
+                               return headerRow;
+                       }
+               }
+       
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DefaultValue (null)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               public TableItemStyle HeaderStyle {
+                       get {
+                               if (headerStyle == null) {
+                                       headerStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               headerStyle.TrackViewState();
+                               }
+                               return headerStyle;
+                       }
+               }
+               
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.OneWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate HeaderTemplate {
+                       get { return headerTemplate; }
+                       set { headerTemplate = value; RequireBinding (); }
+               }
+
+               [LocalizableAttribute (true)]
+               [WebCategoryAttribute ("Appearance")]
+               [DefaultValueAttribute ("")]
+               public virtual string HeaderText {
+                       get {
+                               object ob = ViewState ["HeaderText"];
+                               if (ob != null) return (string) ob;
+                               return string.Empty;
+                       }
+                       set {
+                               ViewState ["HeaderText"] = value;
+                               RequireBinding ();
+                       }
+               }
+               
+               [Category ("Layout")]
+               [DefaultValueAttribute (HorizontalAlign.NotSet)]
+               public virtual HorizontalAlign HorizontalAlign {
+                       get {
+                               if (ControlStyleCreated)
+                                       return ((TableStyle) ControlStyle).HorizontalAlign;
+                               return HorizontalAlign.NotSet;
+                       }
+                       set {
+                               ((TableStyle) ControlStyle).HorizontalAlign = value;
+                       }
+               }
+
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate InsertItemTemplate {
+                       get { return insertItemTemplate; }
+                       set { insertItemTemplate = value; RequireBinding (); }
+               }
+
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               [DefaultValueAttribute (null)]
+               public TableItemStyle InsertRowStyle {
+                       get {
+                               if (insertRowStyle == null) {
+                                       insertRowStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               insertRowStyle.TrackViewState();
+                               }
+                               return insertRowStyle;
+                       }
+               }
+
+               [DefaultValue (null)]
+               [TemplateContainer (typeof(FormView), BindingDirection.TwoWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate ItemTemplate {
+                       get { return itemTemplate; }
+                       set { itemTemplate = value; RequireBinding (); }
+               }
+               
+               [BrowsableAttribute (false)]
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               public virtual int PageCount {
+                       get {
+                               return pageCount;
+                       }
+               }
+
+               [WebCategoryAttribute ("Paging")]
+               [BindableAttribute (true, BindingDirection.OneWay)]
+               [DefaultValueAttribute (0)]
+               public virtual int PageIndex {
+                       get {
+                               return pageIndex;
+                       }
+                       set {
+                               if (value < 0)
+                                       throw new ArgumentOutOfRangeException ("PageIndex must be non-negative");
+                               if (pageIndex == value)
+                                       return;
+                               pageIndex = value;
+                               RequireBinding ();
+                       }
+               }
+       
+               [WebCategoryAttribute ("Paging")]
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Content)]
+               [NotifyParentPropertyAttribute (true)]
+               [PersistenceModeAttribute (PersistenceMode.InnerProperty)]
+               public virtual PagerSettings PagerSettings {
+                       get {
+                               if (pagerSettings == null) {
+                                       pagerSettings = new PagerSettings (this);
+                                       if (IsTrackingViewState)
+                                               ((IStateManager)pagerSettings).TrackViewState ();
+                               }
+                               return pagerSettings;
+                       }
+               }
+       
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               public TableItemStyle PagerStyle {
+                       get {
+                               if (pagerStyle == null) {
+                                       pagerStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               pagerStyle.TrackViewState();
+                               }
+                               return pagerStyle;
+                       }
+               }
+               
+               
+               [DefaultValue (null)]
+               /* DataControlPagerCell isnt specified in the docs */
+               //[TemplateContainer (typeof(DataControlPagerCell), BindingDirection.OneWay)]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [Browsable (false)]
+               public virtual ITemplate PagerTemplate {
+                       get { return pagerTemplate; }
+                       set { pagerTemplate = value; RequireBinding (); }
+               }
+               
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual FormViewRow Row {
+                       get {
+                               EnsureChildControls ();
+                               return itemRow;
+                       }
+               }
+               
+               [WebCategoryAttribute ("Styles")]
+               [PersistenceMode (PersistenceMode.InnerProperty)]
+               [NotifyParentProperty (true)]
+               [DesignerSerializationVisibility (DesignerSerializationVisibility.Content)]
+               [DefaultValue (null)]
+               public TableItemStyle RowStyle {
+                       get {
+                               if (rowStyle == null) {
+                                       rowStyle = new TableItemStyle ();
+                                       if (IsTrackingViewState)
+                                               rowStyle.TrackViewState();
+                               }
+                               return rowStyle;
+                       }
+               }
+
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public object SelectedValue {
+                       get { return DataKey.Value; }
+               }
+               
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual FormViewRow TopPagerRow {
+                       get {
+                               EnsureChildControls ();
+                               return topPagerRow;
+                       }
+               }
+       
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual object DataItem {
+                       get {
+                               EnsureDataBound ();
+                               return dataItem;
+                       }
+               }
+               
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public int DataItemCount {
+                       get { return PageCount; }
+               }               
+       
+               [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+               [BrowsableAttribute (false)]
+               public virtual int DataItemIndex {
+                       get { return PageIndex; }
+               }
+
+               int IDataItemContainer.DataItemIndex {
+                       get { return DataItemIndex; }
+               }
+       
+               int IDataItemContainer.DisplayIndex {
+                       get { return PageIndex; }
+               }               
+       
+               public virtual bool IsBindableType (Type type)
+               {
+                       return type.IsPrimitive || type == typeof (string) || type == typeof (DateTime) || type == typeof (Guid) || type == typeof (Decimal);
+               }
+               
+               protected override DataSourceSelectArguments CreateDataSourceSelectArguments ()
+               {
+                       DataSourceSelectArguments arg = new DataSourceSelectArguments ();
+                       DataSourceView view = GetData ();
+                       if (AllowPaging && view.CanPage) {
+                               arg.StartRowIndex = PageIndex;
+                               if (view.CanRetrieveTotalRowCount) {
+                                       arg.RetrieveTotalRowCount = true;
+                                       arg.MaximumRows = 1;
+                               }
+                               else {
+                                       arg.MaximumRows = -1;
+                               }
+                       }
+                       return arg;
+               }
+               
+               protected virtual FormViewRow CreateRow (int rowIndex, DataControlRowType rowType, DataControlRowState rowState)
+               {
+                       FormViewRow row = new FormViewRow (rowIndex, rowType, rowState);
+                       OnItemCreated (EventArgs.Empty);
+                       return row;
+               }
+               
+               void RequireBinding ()
+               {
+                       if (Initialized) {
+                               RequiresDataBinding = true;
+                       }
+               }
+               
+               protected virtual Table CreateTable ()
+               {
+                       return new ContainedTable (this);
+               }
+
+               protected override void EnsureDataBound ()
+               {
+                       base.EnsureDataBound ();
+               }
+       
+               protected override Style CreateControlStyle ()
+               {
+                       TableStyle style = new TableStyle (ViewState);
+                       style.CellSpacing = 0;
+                       return style;
+               }
+               
+               protected override int CreateChildControls (IEnumerable data, bool dataBinding)
+               {
+                       PagedDataSource dataSource = new PagedDataSource ();
+                       dataSource.DataSource = data;
+                       dataSource.AllowPaging = AllowPaging;
+                       dataSource.PageSize = 1;
+                       dataSource.CurrentPageIndex = PageIndex;
+
+                       if (dataBinding && CurrentMode != FormViewMode.Insert) {
+                               DataSourceView view = GetData ();
+                               if (view != null && view.CanPage) {
+                                       dataSource.AllowServerPaging = true;
+                                       if (SelectArguments.RetrieveTotalRowCount)
+                                               dataSource.VirtualCount = SelectArguments.TotalRowCount;
+                               }
+                       }
+
+                       pageCount = dataSource.DataSourceCount;
+                       bool showPager = AllowPaging && (pageCount > 1);
+                       
+                       Controls.Clear ();
+                       table = CreateTable ();
+                       Controls.Add (table);
+
+                       // Gets the current data item
+                       
+                       IEnumerator e = dataSource.GetEnumerator (); 
+                       dataItem = null;
+
+                       if (AllowPaging) {
+                               if (e.MoveNext ())
+                                       dataItem = e.Current;
+                       }
+                       else
+                       for (int page = 0; e.MoveNext (); page++ )
+                               if (page == PageIndex)
+                                       dataItem = e.Current;
+                       
+                       // Main table creation
+                       
+                       if (HeaderText.Length != 0 || headerTemplate != null) {
+                               headerRow = CreateRow (-1, DataControlRowType.Header, DataControlRowState.Normal);
+                               InitializeRow (headerRow);
+                               table.Rows.Add (headerRow);
+                       }
+                       
+                       if (showPager && PagerSettings.Position == PagerPosition.Top || PagerSettings.Position == PagerPosition.TopAndBottom) {
+                               topPagerRow = CreateRow (-1, DataControlRowType.Pager, DataControlRowState.Normal);
+                               InitializePager (topPagerRow, dataSource);
+                               table.Rows.Add (topPagerRow);
+                       }
+
+                       if (pageCount > 0) {
+                               DataControlRowState rstate = GetRowState ();
+                               itemRow = CreateRow (0, DataControlRowType.DataRow, rstate);
+                               InitializeRow (itemRow);
+                               table.Rows.Add (itemRow);
+                       } else {
+                               switch (CurrentMode) {
+                               case FormViewMode.Edit:
+                                       itemRow = CreateRow (-1, DataControlRowType.EmptyDataRow, DataControlRowState.Edit);
+                                       break;
+                               case FormViewMode.Insert:
+                                       itemRow = CreateRow (-1, DataControlRowType.DataRow, DataControlRowState.Insert);
+                                       break;
+                               default:
+                                       itemRow = CreateRow (-1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
+                                       break;
+                               }
+                               table.Rows.Add (itemRow);
+                               InitializeRow (itemRow);
+                       }
+
+                       if (FooterText.Length != 0 || footerTemplate != null) {
+                               footerRow = CreateRow (-1, DataControlRowType.Footer, DataControlRowState.Normal);
+                               InitializeRow (footerRow);
+                               table.Rows.Add (footerRow);
+                       }
+                       
+                       if (showPager && PagerSettings.Position == PagerPosition.Bottom || PagerSettings.Position == PagerPosition.TopAndBottom) {
+                               bottomPagerRow = CreateRow (0, DataControlRowType.Pager, DataControlRowState.Normal);
+                               InitializePager (bottomPagerRow, dataSource);
+                               table.Rows.Add (bottomPagerRow);
+                       }
+
+                       if (dataBinding)
+                               DataBind (false);
+                       
+                       return dataSource.DataSourceCount;
+               }
+               
+               DataControlRowState GetRowState ()
+               {
+                       DataControlRowState rstate = DataControlRowState.Normal;
+                       if (CurrentMode == FormViewMode.Edit) rstate |= DataControlRowState.Edit;
+                       else if (CurrentMode == FormViewMode.Insert) rstate |= DataControlRowState.Insert;
+                       return rstate;
+               }
+               
+               protected virtual void InitializePager (FormViewRow row, PagedDataSource dataSource)
+               {
+                       TableCell cell = new TableCell ();
+                       cell.ColumnSpan = 2;
+
+                       if (pagerTemplate != null)
+                               pagerTemplate.InstantiateIn (cell);
+                       else
+                               cell.Controls.Add (PagerSettings.CreatePagerControl (dataSource.CurrentPageIndex, dataSource.PageCount));
+                       
+                       row.Cells.Add (cell);
+               }
+               
+               protected virtual void InitializeRow (FormViewRow row)
+               {
+                       TableCell cell = new TableCell ();
+                       
+                       if (row.RowType == DataControlRowType.DataRow)
+                       {
+                               if ((row.RowState & DataControlRowState.Edit) != 0) {
+                                       if (editItemTemplate != null)
+                                               editItemTemplate.InstantiateIn (cell);
+                               } else if ((row.RowState & DataControlRowState.Insert) != 0) {
+                                       if (insertItemTemplate != null)
+                                               insertItemTemplate.InstantiateIn (cell);
+                               } else if (itemTemplate != null)
+                                       itemTemplate.InstantiateIn (cell);
+                       }
+                       else if (row.RowType == DataControlRowType.EmptyDataRow)
+                       {
+                               if (emptyDataTemplate != null)
+                                       emptyDataTemplate.InstantiateIn (cell);
+                               else
+                                       cell.Text = EmptyDataText;
+                       }
+                       else if (row.RowType == DataControlRowType.Footer)
+                       {
+                               if (footerTemplate != null)
+                                       footerTemplate.InstantiateIn (cell);
+                               else
+                                       cell.Text = FooterText;
+                       }
+                       else if (row.RowType == DataControlRowType.Header)
+                       {
+                               if (headerTemplate != null)
+                                       headerTemplate.InstantiateIn (cell);
+                               else
+                                       cell.Text = HeaderText;
+                       }
+                       cell.ColumnSpan = 2;
+                       row.Cells.Add (cell);
+               }
+               
+               void FillRowDataKey (object dataItem)
+               {
+                       KeyTable.Clear ();
+
+                       if (cachedKeyProperties == null) {
+                               PropertyDescriptorCollection props = TypeDescriptor.GetProperties (dataItem);
+                               cachedKeyProperties = new PropertyDescriptor [DataKeyNames.Length];
+                               for (int n=0; n<DataKeyNames.Length; n++) { 
+                                       PropertyDescriptor p = props [DataKeyNames[n]];
+                                       if (p == null)
+                                               new InvalidOperationException ("Property '" + DataKeyNames[n] + "' not found in object of type " + dataItem.GetType());
+                                       cachedKeyProperties [n] = p;
+                               }
+                       }
+                       foreach (PropertyDescriptor p in cachedKeyProperties)
+                               KeyTable [p.Name] = p.GetValue (dataItem);
+               }
+               
+               IOrderedDictionary GetRowValues (bool includePrimaryKey)
+               {
+                       OrderedDictionary dic = new OrderedDictionary ();
+                       ExtractRowValues (dic, includePrimaryKey);
+                       return dic;
+               }
+               
+               protected virtual void ExtractRowValues (IOrderedDictionary fieldValues, bool includeKeys)
+               {
+                       if (Row == null)
+                               return;
+
+                       DataControlRowState rowState = Row.RowState;
+                       IBindableTemplate bt;
+                       
+                       if ((rowState & DataControlRowState.Insert) != 0)
+                               bt = insertItemTemplate as IBindableTemplate; 
+                       else if ((rowState & DataControlRowState.Edit) != 0)
+                               bt = editItemTemplate as IBindableTemplate;
+                       else
+                               return;
+                       
+                       if (bt != null) {
+                               IOrderedDictionary values = bt.ExtractValues (Row.Cells [0]);
+                               foreach (DictionaryEntry e in values) {
+                                       if (includeKeys || Array.IndexOf (DataKeyNames, e.Key) == -1)
+                                               fieldValues [e.Key] = e.Value;
+                               }
+                       }
+               }
+               
+               protected override HtmlTextWriterTag TagKey {
+                       get {
+                               return HtmlTextWriterTag.Table;
+                       }
+               }
+               
+               public sealed override void DataBind ()
+               {
+                       if (CurrentMode == FormViewMode.Insert) {
+                               RequiresDataBinding = false;
+                               PerformDataBinding (new object [] { null });
+                               return;
+                       }
+
+                       cachedKeyProperties = null;
+                       base.DataBind ();
+                       
+                       if (pageCount > 0) {
+                               if (CurrentMode == FormViewMode.Edit)
+                                       oldEditValues = new DataKey (GetRowValues (true));
+                               FillRowDataKey (dataItem);
+                               key = new DataKey (KeyTable);
+                       }
+               }
+               
+               protected internal override void PerformDataBinding (IEnumerable data)
+               {
+                       base.PerformDataBinding (data);
+               }
+
+               protected internal virtual void PrepareControlHierarchy ()
+               {
+                       if (table == null)
+                               return;
+
+                       table.Caption = Caption;
+                       table.CaptionAlign = CaptionAlign;
+
+                       foreach (FormViewRow row in table.Rows) {
+                               switch (row.RowType) {
+                               case DataControlRowType.Header:
+                                       if (headerStyle != null && !headerStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (headerStyle);
+                                       break;
+                               case DataControlRowType.Footer:
+                                       if (footerStyle != null && !footerStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (footerStyle);
+                                       break;
+                               case DataControlRowType.Pager:
+                                       if (pagerStyle != null && !pagerStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (pagerStyle);
+                                       break;
+                               case DataControlRowType.EmptyDataRow:
+                                       if (emptyDataRowStyle != null && !emptyDataRowStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (emptyDataRowStyle);
+                                       break;
+                               case DataControlRowType.DataRow:
+                                       if (rowStyle != null && !rowStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (rowStyle);
+                                       if ((row.RowState & (DataControlRowState.Edit | DataControlRowState.Insert)) != 0 && editRowStyle != null && !editRowStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (editRowStyle);
+                                       if ((row.RowState & DataControlRowState.Insert) != 0 && insertRowStyle != null && !insertRowStyle.IsEmpty)
+                                               row.ControlStyle.CopyFrom (insertRowStyle);
+                                       break;
+                               default:
+                                       break;
+                               }
+                       }
+               }
+               
+               protected internal override void OnInit (EventArgs e)
+               {
+                       Page.RegisterRequiresControlState (this);
+                       base.OnInit (e);
+               }
+               
+               protected override bool OnBubbleEvent (object source, EventArgs e)
+               {
+                       FormViewCommandEventArgs args = e as FormViewCommandEventArgs;
+                       if (args != null) {
+                               OnItemCommand (args);
+                               ProcessEvent (args.CommandName, args.CommandArgument as string);
+                               return true;
+                       }
+                       return base.OnBubbleEvent (source, e);
+               }
+               
+                void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
+               {
+                       RaisePostBackEvent (eventArgument);
+               }
+
+               protected virtual void RaisePostBackEvent (string eventArgument)
+               {
+                       int i = eventArgument.IndexOf ('$');
+                       if (i != -1)
+                               ProcessEvent (eventArgument.Substring (0, i), eventArgument.Substring (i + 1));
+                       else
+                               ProcessEvent (eventArgument, null);
+               }
+               
+               void ProcessEvent (string eventName, string param)
+               {
+                       switch (eventName)
+                       {
+                       case DataControlCommands.PageCommandName:
+                               int newIndex = -1;
+                               switch (param) {
+                               case DataControlCommands.FirstPageCommandArgument:
+                                       newIndex = 0;
+                                       break;
+                               case DataControlCommands.LastPageCommandArgument:
+                                       newIndex = PageCount - 1;
+                                       break;
+                               case DataControlCommands.NextPageCommandArgument:
+                                       newIndex = PageIndex + 1;
+                                       break;
+                               case DataControlCommands.PreviousPageCommandArgument:
+                                       newIndex = PageIndex - 1;
+                                       break;
+                               default:
+                                       int paramIndex = 0;
+                                       int.TryParse (param, out paramIndex);
+                                       newIndex = paramIndex - 1;
+                                       break;
+                               }
+                               ShowPage (newIndex);
+                               break;
+                                       
+                       case DataControlCommands.FirstPageCommandArgument:
+                               ShowPage (0);
+                               break;
+
+                       case DataControlCommands.LastPageCommandArgument:
+                               ShowPage (PageCount - 1);
+                               break;
+                                       
+                       case DataControlCommands.NextPageCommandArgument:
+                               if (PageIndex < PageCount - 1)
+                                       ShowPage (PageIndex + 1);
+                               break;
+
+                       case DataControlCommands.PreviousPageCommandArgument:
+                               if (PageIndex > 0)
+                                       ShowPage (PageIndex - 1);
+                               break;
+                                       
+                       case DataControlCommands.EditCommandName:
+                               ChangeMode (FormViewMode.Edit);
+                               break;
+                                       
+                       case DataControlCommands.NewCommandName:
+                               ChangeMode (FormViewMode.Insert);
+                               break;
+                                       
+                       case DataControlCommands.UpdateCommandName:
+                               UpdateItem (param, true);
+                               break;
+                                       
+                       case DataControlCommands.CancelCommandName:
+                               CancelEdit ();
+                               break;
+                                       
+                       case DataControlCommands.DeleteCommandName:
+                               DeleteItem ();
+                               break;
+                                       
+                       case DataControlCommands.InsertCommandName:
+                               InsertItem (true);
+                               break;
+                       }
+               }
+               
+               void ShowPage (int index)
+               {
+                       FormViewPageEventArgs args = new FormViewPageEventArgs (index);
+                       OnPageIndexChanging (args);
+                       if (!args.Cancel) {
+                               int newIndex = args.NewPageIndex;
+                               if (newIndex < 0 || newIndex >= PageCount)
+                                       return;
+                               EndRowEdit (false);
+                               PageIndex = newIndex;
+                               OnPageIndexChanged (EventArgs.Empty);
+                       }
+               }
+               
+               public void ChangeMode (FormViewMode newMode)
+               {
+                       FormViewModeEventArgs args = new FormViewModeEventArgs (newMode, false);
+                       OnModeChanging (args);
+                       if (!args.Cancel) {
+                               CurrentMode = args.NewMode;
+                               OnModeChanged (EventArgs.Empty);
+                               RequireBinding ();
+                       }
+               }
+               
+               void CancelEdit ()
+               {
+                       FormViewModeEventArgs args = new FormViewModeEventArgs (FormViewMode.ReadOnly, true);
+                       OnModeChanging (args);
+                       if (!args.Cancel) {
+                               EndRowEdit ();
+                       }
+               }
+
+               public virtual void UpdateItem (bool causesValidation)
+               {
+                       UpdateItem (null, causesValidation);
+               }
+               
+               void UpdateItem (string param, bool causesValidation)
+               {
+                       if (causesValidation && Page != null)
+                               Page.Validate ();
+                       
+                       if (currentMode != FormViewMode.Edit) throw new HttpException ("Must be in Edit mode");
+
+                       currentEditOldValues = OldEditValues.Values;
+                       currentEditRowKeys = DataKey.Values;
+                       currentEditNewValues = GetRowValues (false);
+                       
+                       FormViewUpdateEventArgs args = new FormViewUpdateEventArgs (param, currentEditRowKeys, currentEditOldValues, currentEditNewValues);
+                       OnItemUpdating (args);
+                       if (!args.Cancel) {
+                               DataSourceView view = GetData ();
+                               if (view == null)
+                                       throw new HttpException ("The DataSourceView associated to data bound control was null");
+                               if (view.CanUpdate)
+                                       view.Update (currentEditRowKeys, currentEditNewValues, currentEditOldValues, new DataSourceViewOperationCallback (UpdateCallback));
+                       }
+                       else
+                               EndRowEdit ();
+               }
+
+               bool UpdateCallback (int recordsAffected, Exception exception)
+               {
+                       FormViewUpdatedEventArgs dargs = new FormViewUpdatedEventArgs (recordsAffected, exception, currentEditRowKeys, currentEditOldValues, currentEditNewValues);
+                       OnItemUpdated (dargs);
+
+                       if (!dargs.KeepInEditMode)                              
+                               EndRowEdit ();
+
+                       return dargs.ExceptionHandled;
+               }
+
+               public virtual void InsertItem (bool causesValidation)
+               {
+                       InsertItem (null, causesValidation);
+               }
+               
+               void InsertItem (string param, bool causesValidation)
+               {
+                       if (causesValidation && Page != null)
+                               Page.Validate ();
+                       
+                       if (currentMode != FormViewMode.Insert) throw new HttpException ("Must be in Insert mode");
+                       
+                       currentEditNewValues = GetRowValues (true);
+                       FormViewInsertEventArgs args = new FormViewInsertEventArgs (param, currentEditNewValues);
+                       OnItemInserting (args);
+                       if (!args.Cancel) {
+                               DataSourceView view = GetData ();
+                               if (view == null)
+                                       throw new HttpException ("The DataSourceView associated to data bound control was null");
+                               if (view.CanInsert)
+                                       view.Insert (currentEditNewValues, new DataSourceViewOperationCallback (InsertCallback));
+                       }
+                       else
+                               EndRowEdit ();
+               }
+               
+               bool InsertCallback (int recordsAffected, Exception exception)
+               {
+                       FormViewInsertedEventArgs dargs = new FormViewInsertedEventArgs (recordsAffected, exception, currentEditNewValues);
+                       OnItemInserted (dargs);
+
+                       if (!dargs.KeepInInsertMode)                            
+                               EndRowEdit ();
+
+                       return dargs.ExceptionHandled;
+               }
+
+               public virtual void DeleteItem ()
+               {
+                       currentEditRowKeys = DataKey.Values;
+                       currentEditNewValues = GetRowValues (true);
+                       
+                       FormViewDeleteEventArgs args = new FormViewDeleteEventArgs (PageIndex, currentEditRowKeys, currentEditNewValues);
+                       OnItemDeleting (args);
+
+                       if (!args.Cancel) {
+                               if (PageIndex > 0 && PageIndex == PageCount - 1)
+                                       PageIndex--;
+                                       
+                               RequireBinding ();
+                                       
+                               DataSourceView view = GetData ();
+                               if (view != null && view.CanDelete)
+                                       view.Delete (currentEditRowKeys, currentEditNewValues, new DataSourceViewOperationCallback (DeleteCallback));
+                               else {
+                                       FormViewDeletedEventArgs dargs = new FormViewDeletedEventArgs (0, null, currentEditRowKeys, currentEditNewValues);
+                                       OnItemDeleted (dargs);
+                               }
+                       }
+               }
+
+               bool DeleteCallback (int recordsAffected, Exception exception)
+               {
+                       FormViewDeletedEventArgs dargs = new FormViewDeletedEventArgs (recordsAffected, exception, currentEditRowKeys, currentEditNewValues);
+                       OnItemDeleted (dargs);
+                       return dargs.ExceptionHandled;
+               }
+               
+               void EndRowEdit ()
+               {
+                       EndRowEdit (true);
+               }
+
+               void EndRowEdit (bool switchToDefaultMode) 
+               {
+                       if (switchToDefaultMode)
+                               ChangeMode (DefaultMode);
+                       oldEditValues = new DataKey (new OrderedDictionary ());
+                       currentEditRowKeys = null;
+                       currentEditOldValues = null;
+                       currentEditNewValues = null;
+                       RequireBinding ();
+               }
+
+               protected internal override void LoadControlState (object ob)
+               {
+                       if (ob == null) return;
+                       object[] state = (object[]) ob;
+                       base.LoadControlState (state[0]);
+                       pageIndex = (int) state[1];
+                       pageCount = (int) state[2];
+                       CurrentMode = (FormViewMode) state[3];
+                       defaultMode = (FormViewMode) state[4];
+                       dataKeyNames = (string[]) state[5];
+                       if (state [6] != null)
+                               ((IStateManager) DataKey).LoadViewState (state [6]);
+                       if (state [7] != null)
+                               ((IStateManager) OldEditValues).LoadViewState (state [7]);
+               }
+               
+               protected internal override object SaveControlState ()
+               {
+                       object bstate = base.SaveControlState ();
+                       return new object [] {
+                               bstate, 
+                               pageIndex, 
+                               pageCount, 
+                               CurrentMode, 
+                               defaultMode, 
+                               dataKeyNames,
+                               (key == null ? null : ((IStateManager)key).SaveViewState()),
+                               (oldEditValues == null ? null : ((IStateManager) oldEditValues).SaveViewState ())
+                       };
+               }
+               
+               protected override void TrackViewState()
+               {
+                       base.TrackViewState();
+                       if (pagerSettings != null) ((IStateManager)pagerSettings).TrackViewState();
+                       if (footerStyle != null) ((IStateManager)footerStyle).TrackViewState();
+                       if (headerStyle != null) ((IStateManager)headerStyle).TrackViewState();
+                       if (pagerStyle != null) ((IStateManager)pagerStyle).TrackViewState();
+                       if (rowStyle != null) ((IStateManager)rowStyle).TrackViewState();
+                       if (editRowStyle != null) ((IStateManager)editRowStyle).TrackViewState();
+                       if (insertRowStyle != null) ((IStateManager)insertRowStyle).TrackViewState();
+                       if (emptyDataRowStyle != null) ((IStateManager)emptyDataRowStyle).TrackViewState();
+               }
+
+               protected override object SaveViewState()
+               {
+                       object[] states = new object [10];
+                       states[0] = base.SaveViewState();
+                       states[1] = (pagerSettings == null ? null : ((IStateManager)pagerSettings).SaveViewState());
+                       states[2] = (footerStyle == null ? null : ((IStateManager)footerStyle).SaveViewState());
+                       states[3] = (headerStyle == null ? null : ((IStateManager)headerStyle).SaveViewState());
+                       states[4] = (pagerStyle == null ? null : ((IStateManager)pagerStyle).SaveViewState());
+                       states[5] = (rowStyle == null ? null : ((IStateManager)rowStyle).SaveViewState());
+                       states[6] = (insertRowStyle == null ? null : ((IStateManager)insertRowStyle).SaveViewState());
+                       states[7] = (editRowStyle == null ? null : ((IStateManager)editRowStyle).SaveViewState());
+                       states[8] = (emptyDataRowStyle == null ? null : ((IStateManager)emptyDataRowStyle).SaveViewState());
+                       
+                       for (int i = states.Length - 1; i >= 0; i--) {
+                               if (states [i] != null)
+                                       return states;
+                       }
+
+                       return null;
+               }
+
+               protected override void LoadViewState (object savedState)
+               {
+                       if (savedState == null) {
+                               base.LoadViewState (null);
+                               return;
+                       }
+
+                       object [] states = (object []) savedState;
+                       
+                       base.LoadViewState (states[0]);
+                       
+                       if (states[1] != null) ((IStateManager)PagerSettings).LoadViewState (states[1]);
+                       if (states[2] != null) ((IStateManager)FooterStyle).LoadViewState (states[2]);
+                       if (states[3] != null) ((IStateManager)HeaderStyle).LoadViewState (states[3]);
+                       if (states[4] != null) ((IStateManager)PagerStyle).LoadViewState (states[4]);
+                       if (states[5] != null) ((IStateManager)RowStyle).LoadViewState (states[5]);
+                       if (states[6] != null) ((IStateManager)InsertRowStyle).LoadViewState (states[6]);
+                       if (states[7] != null) ((IStateManager)EditRowStyle).LoadViewState (states[7]);
+                       if (states[8] != null) ((IStateManager)EmptyDataRowStyle).LoadViewState (states[8]);
+               }
+               
+               protected internal override void Render (HtmlTextWriter writer)
+               {
+                       PrepareControlHierarchy ();
+                       
+                       if (table == null)
+                               return;
+
+                       table.Render (writer);
+               }
+
+               PostBackOptions IPostBackContainer.GetPostBackOptions (IButtonControl control)
+               {
+                       if (control == null)
+                               throw new ArgumentNullException ("control");
+
+                       if (control.CausesValidation)
+                               throw new InvalidOperationException ("A button that causes validation in FormView '" + ID + "' is attempting to use the container GridView as the post back target.  The button should either turn off validation or use itself as the post back container.");
+
+                       PostBackOptions options = new PostBackOptions (this);
+                       options.Argument = control.CommandName + "$" + control.CommandArgument;
+                       options.RequiresJavaScriptProtocol = true;
+
+                       return options;
+               }
+
+       }
+}
+
+#endif
index 5cef14971ef66de2436f039197aed05d45e41b28..6461f176643b353551e228b3b1835aa9a32fd8de 100644 (file)
@@ -74,7 +74,7 @@ namespace System.Web.UI.WebControls
                        return DataSource as IHierarchicalDataSource;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected void MarkAsDataBound ()
                {
                        throw new NotImplementedException ();
@@ -102,7 +102,6 @@ namespace System.Web.UI.WebControls
                        base.OnLoad(e);
                }
 
-               [MonoTODO]
                protected override void OnPagePreLoad (object sender, EventArgs e)
                {
                        base.OnPagePreLoad (sender, e);
index 955525dda5073d2493f48eda356695e7cd800a18..147808635c68e55d368311acab67049e2b35ba65 100644 (file)
@@ -113,7 +113,7 @@ namespace System.Web.UI.WebControls {
                [Browsable (true)]
                [DefaultValue (true)]
                [Bindable (true)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual new bool Enabled
                {
                        get {
@@ -128,7 +128,7 @@ namespace System.Web.UI.WebControls {
                [EditorBrowsable (EditorBrowsableState.Never)]
                [Themeable (false)]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual new bool GenerateEmptyAlternateText
                {
                        get {
index ff6474eb2145c6290042f15b4b8ddd49fb10eab3..11743404a8fc7a7f58c7b70863caaf1bd1376a71 100644 (file)
@@ -70,7 +70,6 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                [DefaultValue (false)]
                [Themeable (false)]
-               [MonoTODO]
                [WebSysDescription ("")]
                [WebCategory ("Behavior")]
                public virtual bool AppendDataBoundItems
@@ -287,7 +286,6 @@ namespace System.Web.UI.WebControls {
                [DefaultValue ("")]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [Browsable (false)]
-               [MonoTODO]
                [WebSysDescription ("")]
                [WebCategoryAttribute ("Behavior")]
                public virtual string Text {
@@ -428,7 +426,6 @@ namespace System.Web.UI.WebControls {
                        base.PerformSelect ();
                }
 
-               [MonoTODO]
                protected internal override void RenderContents (HtmlTextWriter w)
                {
                        base.RenderContents (w);
@@ -496,7 +493,7 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected void SetPostDataSelection (int selectedIndex)
                {
                        throw new NotImplementedException ();
index 14f46e6a21cd1e5758c8ef715630c17f4ea6ad5b..37cc052af2f70af0cf2ba4e3617eb557d9303070 100644 (file)
@@ -53,7 +53,7 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [DefaultValue (LiteralMode.Transform)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                [WebSysDescription ("")]
                [WebCategory ("Behavior")]
                public LiteralMode Mode 
@@ -85,7 +85,7 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [EditorBrowsable (EditorBrowsableState.Never)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public override void Focus ()
                {
                        throw new NotImplementedException ();
index 15dfc08f13fc62b6f86131445d2458b9b8da37ff..82d4fd2a71bd5d429cf81fe264e8578f92c812f8 100644 (file)
@@ -94,7 +94,6 @@ namespace System.Web.UI.WebControls
                        set { _bag ["Subject"] = value; }
                }
 
-               [MonoTODO]
                public MailMessage CreateMailMessage (string recipients, IDictionary replacements, Control owner)
                {
                        if (owner == null)
@@ -119,8 +118,8 @@ namespace System.Web.UI.WebControls
                        return CreateMailMessage (recipients, replacements, bodyText, owner);
                }
 
-               [MonoTODO]
-               public MailMessage CreateMailMessage (string recipients, IDictionary replacements, string body, Control owner) {
+               public MailMessage CreateMailMessage (string recipients, IDictionary replacements, string body, Control owner)
+               {
                        if (owner == null)
                                throw new ArgumentNullException ("owner");
 
@@ -179,4 +178,4 @@ namespace System.Web.UI.WebControls
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index 24005f8c2eb80f1b8d83d3df83c5c794c83dfe14..c6a0f28ded82e5af11c563432e1050ec34953b44 100644 (file)
@@ -656,7 +656,6 @@ namespace System.Web.UI.WebControls
                        }
                }
 
-               [MonoTODO]
                public string DynamicPopOutImageTextFormatString 
                {
                        get
@@ -686,7 +685,6 @@ namespace System.Web.UI.WebControls
                        }
                }
 
-               [MonoTODO]
                public string StaticPopOutImageTextFormatString
                {
                        get
@@ -765,7 +763,6 @@ namespace System.Web.UI.WebControls
                        get { return selectedItem != null ? selectedItem.Value : ""; }
                }
 
-               [MonoTODO]
                [Localizable (true)]
                public string SkipLinkText 
                {
@@ -1105,13 +1102,13 @@ namespace System.Web.UI.WebControls
                        _requiresChildControlsDataBinding = false;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override IDictionary GetDesignModeState ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override void SetDesignModeState (IDictionary data)
                {
                        throw new NotImplementedException ();
index 4aaf65bc7a5751bcdf966e10e75af73b47b6d229..6d3af9551a50a18f073ad5c185d4ee414612a943 100644 (file)
@@ -360,7 +360,7 @@ namespace System.Web.UI.WebControls
                        get { return ViewState.IsTrackingViewState; }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                object IDataSourceViewSchemaAccessor.DataSourceViewSchema {
                        get { throw new NotImplementedException (); }
                        set { throw new NotImplementedException (); }
index 18c2deab12c4634b7bdf5a6f42aacf5be4085d03..3b713996ca70d961c2f2f1472796325343cd48c9 100644 (file)
@@ -58,7 +58,6 @@ namespace System.Web.UI.WebControls
                        return true;
                }
                
-               [MonoTODO]
                protected internal override void Render (HtmlTextWriter writer)
                {
                        base.Render (writer);
index 0eb9bb700e684b538004789872333cca1c9b29c2..37d21a322da7c5199af335967e7b55b852da1235 100644 (file)
@@ -870,7 +870,7 @@ namespace System.Web.UI.WebControls
 
                #endregion
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override void SetDesignModeState (IDictionary data)
                {
                        throw new NotImplementedException ();
@@ -1299,4 +1299,4 @@ namespace System.Web.UI.WebControls
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index fa978c770e9ee757bdbc97f5575290fe1fc9b3d6..323cfd73b154b1d83a5be954d55b24f2c648c052 100644 (file)
@@ -173,7 +173,7 @@ namespace System.Web.UI.WebControls {
                // Interface properties
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected virtual bool HasFooter
                {
                        get {
@@ -181,7 +181,7 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected virtual bool HasHeader 
                {
                        get {
@@ -197,7 +197,7 @@ namespace System.Web.UI.WebControls {
                        }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected virtual int RepeatedItemCount
                {
                        get {
@@ -228,7 +228,7 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected override Control FindControl (string id, int pathOffset)
                {
                        throw new NotImplementedException ();
index 8cc1ca25fefc83c26d76a9bd06b3437ae79fc950..0bfffc3275a4ea4a4e76bc435e888fd193762267 100644 (file)
@@ -315,7 +315,7 @@ namespace System.Web.UI.WebControls {
                }
 
                [Browsable (true)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual new bool EnableTheming
                {
                        get {
@@ -516,18 +516,15 @@ namespace System.Web.UI.WebControls {
                        return result;
                }
 
-               [MonoTODO]
                protected virtual void OnDataPropertyChanged ()
                {
                }
 
-               [MonoTODO]
                protected virtual void OnDataSourceViewChanged (object sender, EventArgs e)
                {
                        RequiresDataBinding = true;
                }
 
-               [MonoTODO]
                protected internal override void OnInit (EventArgs e)
                {
                        base.OnInit (e);
index 722276444983f8e2fcf85f86c9a0e99c46dab5cb..879625d94a5eafd51dbd11652c6f5bc77cc9e632 100644 (file)
@@ -107,7 +107,6 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
                public void OnValidate (object sender)
                {
                }
index 8074194bbc48d007387ecbb8c88b1e22af7326d7..278bed3f1afbe77851f0a45ebb283af2f95a8250 100644 (file)
@@ -65,7 +65,6 @@ namespace System.Web.UI.WebControls
                        return collection;
                }
 
-               [MonoTODO]
                protected override void OnDataSourceViewChanged (EventArgs e)
                {
                        base.OnDataSourceViewChanged (e);
index 0daf81e95bd2ba61658217eba839c2edf5aa02ba..044e5bcf1adb3c201c5178df6fa0a36960d06603 100644 (file)
@@ -156,7 +156,6 @@ namespace System.Web.UI.WebControls {
                                ((IStateManager) view).TrackViewState ();
                }
 
-               [MonoTODO]
                [DefaultValue (true)]
                public virtual bool CancelSelectOnNullParameter {
                        get { return View.CancelSelectOnNullParameter; }
index 1ed9c8c227e6d9f1bc8d57085f3b7210a5c84acd..7bddfd7dea83a1148e25cd0798aeca6e970c4b58 100644 (file)
@@ -468,7 +468,6 @@ namespace System.Web.UI.WebControls {
                        get { return IsTrackingViewState; }
                }
 
-               [MonoTODO]
                bool cancelSelectOnNullParameter = true;
                public bool CancelSelectOnNullParameter {
                        get { return cancelSelectOnNullParameter; }
index 36b81b233c8fe47507419dc3bc00217d33a967c9..e978765ccf5cd6ac72d9fc6c1d2386c994e48fa0 100644 (file)
@@ -821,7 +821,6 @@ namespace System.Web.UI.WebControls {
                        return col;
                }
 
-               [MonoTODO]
                [EditorBrowsable(EditorBrowsableState.Advanced)]
                [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
                [Browsable(false)]
index 9556b46a1a8d80dc71f1905ffa880bfdcdfceec8..d30407ab3673e0c0a912cfa19b6b64435994e060 100644 (file)
@@ -141,73 +141,73 @@ namespace System.Web.UI.WebControls
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                System.ComponentModel.AttributeCollection ICustomTypeDescriptor.GetAttributes ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                string ICustomTypeDescriptor.GetClassName ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                string ICustomTypeDescriptor.GetComponentName ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                TypeConverter ICustomTypeDescriptor.GetConverter ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                EventDescriptor ICustomTypeDescriptor.GetDefaultEvent ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                object ICustomTypeDescriptor.GetEditor (Type editorBaseType)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                EventDescriptorCollection ICustomTypeDescriptor.GetEvents ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                EventDescriptorCollection ICustomTypeDescriptor.GetEvents (Attribute [] arr)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties (Attribute [] arr)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                object ICustomTypeDescriptor.GetPropertyOwner (PropertyDescriptor pd)
                {
                        throw new NotImplementedException ();
index 852177ab9b6bf27ec71f210b326aa55ac84d8721..de831e7686c92e09ea9df3b4faa988de5e8b9060 100644 (file)
@@ -255,7 +255,6 @@ namespace System.Web.UI.WebControls {
                        RaisePostBackEvent (argument);
                }
 
-               [MonoTODO]
                protected virtual void RaisePostBackEvent (string argument)
                {
                }
index cc3bf68197332e982193b298f8644a9209cac416..e5776c45fc78d771a469d2b3285398d16ebf72d4 100644 (file)
@@ -115,7 +115,6 @@ namespace System.Web.UI.WebControls {
                                Text = l.Text;
                }
 
-               [MonoTODO]
 #if NET_2_0
                protected internal
 #else          
@@ -183,7 +182,6 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
                protected override object SaveViewState ()
                {
                        return base.SaveViewState ();
@@ -232,7 +230,7 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                [DefaultValue (AutoCompleteType.None)]
                [Themeable (false)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public virtual AutoCompleteType AutoCompleteType 
                {
                        get {
index 60df03f293d09e8f9ed1a74cc7e75f95f1e35c28..10e97e2fa093775c3ecd06af5b3ee726b1da404f 100644 (file)
@@ -93,7 +93,7 @@ namespace System.Web.UI.WebControls
                        Target = target;
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected TreeNode (TreeView owner, bool isRoot)
                {
                        throw new NotImplementedException ();
index 06c24968b4d6244b2c29eacc29e47461e59fbd86..75f521c9b4553cfa5dda90e426bf232c4df3a7cd 100644 (file)
@@ -322,7 +322,7 @@ namespace System.Web.UI.WebControls
                        get { return ViewState.IsTrackingViewState; }
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                object IDataSourceViewSchemaAccessor.DataSourceViewSchema {
                        get { throw new NotImplementedException (); }
                        set { throw new NotImplementedException (); }
index a04960e029412122cc3da025b839edd706311aed..0ff392c49a1eae76862191af3c09b08f20026685 100644 (file)
@@ -245,7 +245,6 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [Browsable (true)]
-               [MonoTODO]
                public virtual new bool EnableTheming
                {
                        get { return base.EnableTheming; }
@@ -290,7 +289,7 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                [Browsable (false)]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool HasAttributes 
                {
                        get {
@@ -319,7 +318,6 @@ namespace System.Web.UI.WebControls {
 
 #if NET_2_0
                [Browsable (true)]
-               [MonoTODO]
                public virtual new string SkinID
                {
                        get { return base.SkinID; }
@@ -406,7 +404,7 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected internal bool IsEnabled 
                {
                        get {
index b5c198341d0494a88674c7f5584cad9f48b5a113..232e3a4373e11314830f2f084090b1acee7fe56f 100644 (file)
@@ -578,7 +578,6 @@ namespace System.Web.UI.WebControls
                }
 
                [Localizable (true)]
-               [MonoTODO]
                public virtual string SkipLinkText 
                {
                        get
@@ -796,7 +795,6 @@ namespace System.Web.UI.WebControls
                        }
                }
 
-               [MonoTODO]
                protected virtual new HtmlTextWriterTag TagKey
                {
                        get {
@@ -1163,7 +1161,6 @@ namespace System.Web.UI.WebControls
                        return style;
                }
 
-               [MonoTODO]
                protected override IDictionary GetDesignModeState ()
                {
                        throw new NotImplementedException ();
index 99f8041a253406381a85415651be39e5de05293c..0e7d4356d5b2a5e66567e543e0303f44b2396c7e 100644 (file)
@@ -166,7 +166,6 @@ namespace System.Web.UI.WebControls {
                [DefaultValue ("")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                [Browsable (false)]
-               [MonoTODO]
                public override string SkinID
                {
                        get {
@@ -233,7 +232,7 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [Browsable (false)]
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public XPathNavigator XPathNavigator 
                {
                        get {
@@ -321,7 +320,7 @@ namespace System.Web.UI.WebControls {
                        return new EmptyControlCollection (this);
                }
 
-               [MonoTODO]
+               [MonoTODO("Always returns null")]
                protected override IDictionary GetDesignModeState ()
                {
                        return null;
index 63b2037142b53c18585f46aa221de0aa67bddc0f..0a04accad4d12d1fc2f2fe9dec7142282c10c03a 100644 (file)
@@ -240,7 +240,6 @@ namespace System.Web.UI.WebControls {
                
                [DefaultValue (0)]
                //[TypeConverter (typeof(DataSourceCacheDurationConverter))]
-               [MonoTODO]
                public virtual int CacheDuration {
                        get {
                                return _cacheDuration;
@@ -251,7 +250,6 @@ namespace System.Web.UI.WebControls {
                }
 
                [DefaultValue (DataSourceCacheExpiry.Absolute)]
-               [MonoTODO]
                public virtual DataSourceCacheExpiry CacheExpirationPolicy {
                        get {
                                return _cacheExpirationPolicy;
@@ -262,7 +260,6 @@ namespace System.Web.UI.WebControls {
                }
 
                [DefaultValue ("")]
-               [MonoTODO]
                public virtual string CacheKeyDependency {
                        get {
                                return _cacheKeyDependency;
@@ -273,7 +270,6 @@ namespace System.Web.UI.WebControls {
                }
 
                [DefaultValue (true)]
-               [MonoTODO]
                public virtual bool EnableCaching {
                        get {
                                return _enableCaching;
index 7a5435f96d775fc56d04390df83b0a8ff3ceee6c..d91c919ab5f5997dc9b1bb031d6b152cf0d7fe86 100644 (file)
@@ -36,13 +36,11 @@ namespace System.Web.UI {
                {
                }
 
-               [MonoTODO]
                protected Type GetReferenceType ()
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
                protected internal Type GetUserControlType (string virtualPath)
                {
                        throw new NotImplementedException ();
index 6bcdf6536a5b52f3add859c9dda0276009977a95..6b6758c7552c1a40cf6c51a130a747b0526241d1 100644 (file)
@@ -161,9 +161,9 @@ namespace System.Web.UI {
 
                Hashtable attr_render = new Hashtable ();
 
-               [MonoTODO]
                protected override bool OnAttributeRender (string name, string value, HtmlTextWriterAttribute key)
                {
+                       // FIXME:
                        // I checked every possible HtmlTextWriterAttribute key
                        // and always throws ArgumentNullException.
                        return (bool) attr_render [null];
index 670c1dcc42f8b2d3551b28f5b84cc096bb6f8ea1..b64bb91daad3c3c2bcf61b0e6a920c8c0773bc87 100644 (file)
@@ -147,7 +147,7 @@ namespace System.Web.UI
                 }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                protected ControlAdapter Adapter 
                {
                        get {
@@ -598,7 +598,6 @@ namespace System.Web.UI
                 }
 
 #if NET_2_0
-               [MonoTODO]
                [EditorBrowsable (EditorBrowsableState.Advanced)]
                public virtual void ApplyStyleSheetSkin (Page page)
                {
index 6087587cbd9eeff91f1caa14a3f86876b8264022..1f642f5b1ae55771208924091d62aa10525da79b 100644 (file)
@@ -32,7 +32,6 @@ using System.Web.Caching;
 
 namespace System.Web.UI
 {
-       [MonoTODO ("only stubbed")]
        public sealed class ControlCachePolicy
        {
                internal ControlCachePolicy ()
index a4f1a4b7c2cadc9d7541e92624da84fa45e5040a..f862c72d598a668f7079af9b729491d189640ff2 100644 (file)
@@ -48,7 +48,7 @@ namespace System.Web.UI {
                {
                }
                
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override void ApplyStyleSheetSkin (Page page)
                {
@@ -95,7 +95,6 @@ namespace System.Web.UI {
                        return ListSourceHelper.GetList (this);
                }
                
-               [MonoTODO ("why override?")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override bool HasControls ()
                {
@@ -109,20 +108,17 @@ namespace System.Web.UI {
                                eh (this, e);
                }
 
-               [MonoTODO ("why override?")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override void RenderControl (HtmlTextWriter tw)
                {
                        base.RenderControl (tw);
                }
 
-               [MonoTODO ("why override?")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override string ClientID {
                        get { return base.ClientID; }
                }
 
-               [MonoTODO ("why override?")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override ControlCollection Controls {
                        get { return base.Controls; }
@@ -136,7 +132,6 @@ namespace System.Web.UI {
                        set { throw new NotSupportedException (); }
                }
 
-               [MonoTODO ("why override?")]
                [DefaultValue ("")]
                [Browsable (false)]
                [EditorBrowsable (EditorBrowsableState.Never)]
index b406367cc124394b99f4dcf35c8cfe721be5a8f7..2ed3a644ef31b2e5d955ece339cfcbfa7e962cd8 100644 (file)
@@ -76,14 +76,14 @@ namespace System.Web.UI {
                        return NewParser;
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [SecurityPermission (SecurityAction.Demand, ControlThread = true, UnmanagedCode = true)]
                public static Control[] ParseControls (DesignTimeParseData data)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                [SecurityPermission (SecurityAction.Demand, ControlThread = true)]
                public static ControlBuilder ParseTheme (IDesignerHost host, string theme, string themePath)
                {
index d9e9defb52e3f771c837f33d975af8ce4ecd0e83..dadaf12f84c8eeef3c9b0934a656551c8bebb7a6 100644 (file)
@@ -35,7 +35,6 @@ using System.Security.Permissions;
 
 namespace System.Web.UI
 {
-       [MonoTODO ("Needs work and verification.")]
        // CAS
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
@@ -323,7 +322,7 @@ namespace System.Web.UI
                         return base.RenderBeforeTag ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                protected Stack FontStack {
                        get {
                                return null;
index f2858da6ef3fbf7b6ad4ebd0a7dad8d0c0942de0..444cd1389cd48b0f3d01056e68448fc8dbb64130 100644 (file)
@@ -61,17 +61,17 @@ namespace System.Web.UI {
                        return null;
                }
                
-               [MonoTODO]
+               [MonoTODO("Does nothing")]
                protected static void RegisterAttribute (string name, HtmlTextWriterAttribute key)
                {
                }
                
-               [MonoTODO]
+               [MonoTODO("Does nothing")]
                protected static void RegisterStyle (string name, HtmlTextWriterStyle key)
                {
                }
                
-               [MonoTODO]
+               [MonoTODO("Does nothing")]
                protected static void RegisterTag (string name, HtmlTextWriterTag key)
                {
                }
@@ -195,7 +195,6 @@ namespace System.Web.UI {
                        b.Flush ();
                }
 
-               [MonoTODO]
                protected HtmlTextWriterAttribute GetAttributeKey (string attrName)
                {
                        // I don't think we want to binary search
@@ -211,7 +210,6 @@ namespace System.Web.UI {
                        return (HtmlTextWriterAttribute)(-1);           
                }
 
-               [MonoTODO]
                protected string GetAttributeName (HtmlTextWriterAttribute attrKey)
                {
                        if ((int) attrKey < htmlattrs.Length)
@@ -220,7 +218,6 @@ namespace System.Web.UI {
                        return null;
                }
                
-               [MonoTODO]
                protected HtmlTextWriterStyle GetStyleKey (string styleName)
                {
                        // I don't think we want to binary search
@@ -236,13 +233,11 @@ namespace System.Web.UI {
                        return (HtmlTextWriterStyle)(-1);                       
                }
                
-               [MonoTODO]
                protected string GetStyleName (HtmlTextWriterStyle styleKey)
                {
                        return StaticGetStyleName (styleKey);
                }
                
-               [MonoTODO]
                protected virtual HtmlTextWriterTag GetTagKey (string tagName) 
                {
                        // I don't think we want to binary search
@@ -267,7 +262,6 @@ namespace System.Web.UI {
                }
                
                
-               [MonoTODO]
                protected virtual string GetTagName (HtmlTextWriterTag tagKey)
                {
                        if ((int) tagKey < tags.Length)
index cea2fd8330866dad4ead2ebd9752ead7b890cf34..3eec1b8b0d512e892e7566652af663535189f588 100644 (file)
@@ -1403,7 +1403,7 @@ public class Page : TemplateControl, IHttpHandler
                scriptManager.RegisterHiddenField (hiddenFieldName, hiddenFieldInitialValue);
        }
 
-       [MonoTODO("Used in HtmlForm")]
+       [MonoTODO("Not implemented, Used in HtmlForm")]
        internal void RegisterClientScriptFile (string a, string b, string c)
        {
                throw new NotImplementedException ();
@@ -2070,18 +2070,18 @@ return true;
        #endif
 
 #if NET_2_0
-       [MonoTODO ("Used by .net aspx parser")]
+       [MonoTODO ("Not implemented.  Only used by .net aspx parser")]
        protected object GetWrappedFileDependencies (string [] list)
        {
                return null;
        }
 
-       [MonoTODO ("Used by .net aspx parser")]
+       [MonoTODO ("Does nothing.  Used by .net aspx parser")]
        protected virtual void InitializeCulture ()
        {
        }
 
-       [MonoTODO ("Used by .net aspx parser")]
+       [MonoTODO ("Does nothing. Used by .net aspx parser")]
        protected internal void AddWrappedFileDependencies (object virtualFileDependencies)
        {
        }
index 8c87a5fbf196c739bbf788b3cb58a1840c85c3e8..ad3743610574ab10597f0d8516f30caa4470431d 100644 (file)
@@ -42,7 +42,6 @@ namespace System.Web.UI
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        public sealed class PageParser
        {
-               [MonoTODO]
                public static IHttpHandler GetCompiledPageInstance (string virtualPath,
                                                                    string inputFile, 
                                                                    HttpContext context)
index 1f13ed2ef2617fe3c769cc3ac843c85104e67377..7b3fb2fcc4c4a909653c103e052f160d15c96839 100644 (file)
@@ -42,61 +42,60 @@ namespace System.Web.UI {
                {
                }
 
-               [MonoTODO]
                public static object CreateSkinKey (Type controlType, string skinID)
                {
                        return String.Format ("{0}:{1}", skinID, controlType);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected object Eval (string expression)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected string Eval (string expression, string format)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public bool TestDeviceFilter (string deviceFilterName)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected object XPath (string xPathExpression)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected object XPath (string xPathExpression, IXmlNamespaceResolver resolver)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected string XPath (string xPathExpression, string format)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected string XPath (string xPathExpression, string format, IXmlNamespaceResolver resolver)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected IEnumerable XPathSelect (string xPathExpression)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected IEnumerable XPathSelect (string xPathExpression, IXmlNamespaceResolver resolver)
                {
                        throw new NotImplementedException ();
@@ -106,7 +105,7 @@ namespace System.Web.UI {
                protected abstract IDictionary ControlSkins { get; }
                protected abstract string[] LinkedStyleSheets { get; }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                protected Page Page {
                        get { throw new NotImplementedException (); }
                }
index aaa2a89f625f5cf5392c0a90992a2f8b7452a129..7ae2f1a8d8050a323a2a0d23fde95155675e64d6 100644 (file)
@@ -48,7 +48,6 @@ namespace System.Web.UI {
                        this.themePath = themePath;
                }
 
-               [MonoTODO]
                public Control ApplyTheme ()
                {
                        return control;
index eaf72d8244a494b37e0c5a18e859f696097706ec..be5a3cf901c107b8fd5ddf9f2178c9741868d4ef 100644 (file)
@@ -83,7 +83,6 @@ namespace System.Web.UI {
                        get { return bindings; }
                }
 
-               [MonoTODO ("why override?")]
                public override object BuildObject ()
                {
                        return base.BuildObject ();
index 7cb20414e327238c2dff746da49611c39dc130f2..6fbc0fda2f9ada6342eb650c28bdf80cbb70485a 100644 (file)
@@ -102,7 +102,7 @@ namespace System.Web.UI {
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected LiteralControl CreateResourceBasedLiteralControl (int offset,
                                                                                    int size,
                                                                                    bool fAsciiOnly)
@@ -232,7 +232,7 @@ namespace System.Web.UI {
                                eh (this, e);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, always returns null")]
                public Control ParseControl (string content)
                {
                        if (content == null)
@@ -257,7 +257,7 @@ namespace System.Web.UI {
                        return HttpContext.GetGlobalResourceObject (className, resourceKey);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected object GetGlobalResourceObject (string className, string resourceKey, Type objType, string propName)
                {
                        // FIXME: not sure how to implement that one yet
@@ -282,14 +282,14 @@ namespace System.Web.UI {
                        throw new NotSupportedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, does nothing")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                protected void SetStringResourcePointer (object stringResourcePointer,
                                                         int maxResourceOffset)
                {
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, does nothing")]
                [EditorBrowsable (EditorBrowsableState.Never)]
                protected void WriteUTF8ResourceString (HtmlTextWriter output, int offset,
                                                        int size, bool fAsciiOnly)
@@ -365,13 +365,13 @@ namespace System.Web.UI {
 
                // IFilterResolutionService
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                int IFilterResolutionService.CompareFilters (string filter1, string filter2)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                bool IFilterResolutionService.EvaluateFilter (string filterName)
                {
                        throw new NotImplementedException ();
index cf6d325e063e605b671610076b20c4ffb9998bd3..cdddbe0eddd74bc3147fc5eec5b8c05cf9419923 100644 (file)
@@ -56,25 +56,25 @@ namespace System.Web.UI {
                        this.themePath = themePath;
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented")]
                public SkinBuilder GetSkinBuilder (Control control)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public IDictionary GetSkinControlBuildersForControlType (Type type)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public ICollection GetSkinsForControl (Type type)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public int ContentHashCode {
                        get { throw new NotImplementedException (); }
                }
index 1833352726e0ecdfb27679932a315f64aebd9529..c5f405cec62283a1b9626e8e4648a3ae0aa875c2 100644 (file)
@@ -291,13 +291,13 @@ namespace System.Web.UI {
                        set { ViewState["!DesignTimeTagName"] = value; }
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                int IFilterResolutionService.CompareFilters (string filter1, string filter2)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                bool IFilterResolutionService.EvaluateFilter (string filterName)
                {
                        throw new NotImplementedException ();
index ae1c8b9d068f6d32ca4ccf91be4556b62e342edb..3b28e011287a8aaf2a02ab1998543ef2b1fcfb9b 100644 (file)
@@ -41,13 +41,12 @@ namespace System.Web.UI {
                        return false;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented, does nothing")]
                public override void SetTagInnerText (string text)
                {
                        // Do something with the text
                }
 #if NET_2_0
-               [MonoTODO ("why override?")]
                public override object BuildObject ()
                {
                        return base.BuildObject ();
index 154d319a7330ba852f70ddacf8830fb4d09817e4..c6f9e007b9ffb2c6dcce78d67b49a589eb177ddc 100644 (file)
@@ -263,7 +263,6 @@ namespace System.Web.UI {
                        Write (TagRightChar);
                }
 
-               [MonoTODO]
                protected override bool OnAttributeRender (string name, string value, HtmlTextWriterAttribute key)
                {
                        // I tested every possible value of HtmlTextWriterAttribute
@@ -271,7 +270,6 @@ namespace System.Web.UI {
                        return (bool) attr_render [null];
                }
 
-               [MonoTODO]
                protected override bool OnStyleAttributeRender (string name, string value, HtmlTextWriterStyle key)
                {
                        // I tested every possible value of HtmlTextWriterStyle
index 272a164294be3855ff1405e42e55fbd7b17f309f..caab377043cc8f2ae38ede159c7a6280168d58ab 100644 (file)
@@ -31,7 +31,6 @@ using System.Security.Permissions;
 
 namespace System.Web.Util
 {
-       [MonoTODO]
        // CAS
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
@@ -47,6 +46,7 @@ namespace System.Web.Util
                        InvokeTransacted (callback, mode, ref abortedTransaction);
                }
 
+               [MonoTODO ("Not implemented, not supported by Mono")]
                public static void InvokeTransacted (TransactedCallback callback, 
                                                        TransactionOption mode, 
                                                        ref bool transactionAborted)
index 7aba89f563ed3bcd5d742c9a5607ed8961c3294b..5e03ca366e2eff6bfb8cf38e30633dfa71764cfa 100644 (file)
@@ -30,7 +30,6 @@ using System.Security.Permissions;
 
 namespace System.Web.Util
 {
-       [MonoTODO]
        // CAS
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
@@ -41,6 +40,7 @@ namespace System.Web.Util
                }
 
                [SecurityPermission (SecurityAction.Demand, UnmanagedCode = true)]
+               [MonoTODO ("Not implemented, not currently supported by Mono")]
                public static void Post (WorkItemCallback callback)
                {
                        // note: this is the documented exception for (Windows) OS prior to NT
index d4b95f660fa6da715c23989f28faa633bf4e1abc..06c9f75102ada91f31c656a8b171c41f26027a37 100644 (file)
@@ -162,7 +162,7 @@ namespace System.Web {
                        }
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public ArrayList Browsers {
                        get { throw new NotImplementedException (); }
                }
index 1636415efb2dc4c7168ef811450cab4b5f1f7cbb..3a03d7494cddb4fc8fe76e0b38359c442804a525 100644 (file)
@@ -44,23 +44,23 @@ namespace System.Web {
                        get { return false; }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                protected NameValueCollection ExecuteUrlHeaders {
                        get { return null; }
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                public virtual IAsyncResult BeginProcessRequest (HttpContext context, AsyncCallback callback, object state)
                {
                        return null;
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented, does nothing")]
                public virtual void EndProcessRequest (IAsyncResult result)
                {
                }
 
-               [MonoTODO]
+               [MonoTODO("Not implemented, does nothing")]
                public virtual void ProcessRequest (HttpContext context)
                {
                }
index 8ac166e9b0172401cf9daaf26efca5081f9d8a68..06c60c8f2b5a72f9e5b4ef0db123b72ad4185d3f 100644 (file)
@@ -225,7 +225,7 @@ namespace System.Web {
                        last_modified = date;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetLastModifiedFromFileDependencies ()
                {
                        throw new NotImplementedException (); 
@@ -243,19 +243,19 @@ namespace System.Web {
                        HaveMaxAge = true;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetNoServerCaching ()
                {
                        throw new NotImplementedException (); 
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetNoStore ()
                {
                        throw new NotImplementedException (); 
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetNoTransforms ()
                {
                        throw new NotImplementedException (); 
@@ -287,7 +287,7 @@ namespace System.Web {
                        sliding_expiration = slide;
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetValidUntilExpires (bool validUntilExpires)
                {
                        throw new NotImplementedException (); 
@@ -369,7 +369,7 @@ namespace System.Web {
 
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void SetOmitVaryStar (bool omit)
                {
                        throw new NotImplementedException (); 
index e9cd9c838bf396dd40698e6eb474f08f7fcd90d3..603ada3e0cf57ed8ec234f8e4ec82410f8287a1b 100644 (file)
@@ -279,12 +279,12 @@ namespace System.Web {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public IHttpHandler CurrentHandler {
                        get { throw new NotImplementedException (); }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public IHttpHandler PreviousHandler {
                        get { throw new NotImplementedException (); }
                }
@@ -416,19 +416,19 @@ namespace System.Web {
                        return GetGLResourceObject (type, resourceKey);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static object GetLocalResourceObject (string virtualPath, string resourceKey)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public static object GetLocalResourceObject (string virtualPath, string resourceKey, CultureInfo culture)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Only implemented for ASP.NET 2.x applications")]
                public object GetSection (string name)
                {
 #if NET_2_0
index 1563f6f454dbdb568d08f4da4cc04c4d54de4058..fe972764d7110af89b421c3a81538ad48964b446 100644 (file)
@@ -245,7 +245,7 @@ namespace System.Web {
                        }
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public Encoding HeaderEncoding {
                        get { throw new NotImplementedException (); }
                        set {
@@ -264,7 +264,7 @@ namespace System.Web {
                        }
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool IsRequestBeingRedirected {
                        get { throw new NotImplementedException (); }
                }
@@ -362,43 +362,43 @@ namespace System.Web {
                        }
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void AddCacheDependency (CacheDependency[] dependencies)
                {
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void AddCacheItemDependencies (string[] cacheKeys)
                {
                        throw new NotImplementedException ();
                }
 #endif
-               [MonoTODO]
+               [MonoTODO("Currently does nothing")]
                public void AddCacheItemDependencies (ArrayList cacheKeys)
                {
                        // TODO: talk to jackson about the cache
                }
 
-               [MonoTODO]
+               [MonoTODO("Currently does nothing")]
                public void AddCacheItemDependency (string cacheKey)
                {
                        // TODO: talk to jackson about the cache
                }
 
-               [MonoTODO]
+               [MonoTODO("Currently does nothing")]
                public void AddFileDependencies (ArrayList filenames)
                {
                        // TODO: talk to jackson about the cache
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void AddFileDependencies (string[] filenames)
                {
                        throw new NotImplementedException ();
                }
 #endif
-               [MonoTODO]
+               [MonoTODO ("Currently does nothing")]
                public void AddFileDependency (string filename)
                {
                        // TODO: talk to jackson about the cache
@@ -884,7 +884,7 @@ namespace System.Web {
                        Flush ();
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void WriteSubstitution (HttpResponseSubstitutionCallback callback)
                {
                        throw new NotImplementedException ();
index 01dd0fe00baaedf3ac9f21570a644c6ff53ff9c1..dfe3ec6c58b3313c8c323814ffd936570c8120f0 100644 (file)
@@ -196,7 +196,7 @@ namespace System.Web {
                        context.Response.End ();
                }
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public void Transfer (IHttpHandler handler, bool preserveForm)
                {
                        throw new NotImplementedException ();
index 72b7324909295b53a328d76ce8245824a3b0b26c..d54068df35720c1cfa85714b908d4c854cfbbd24 100644 (file)
@@ -116,7 +116,7 @@ namespace System.Web {
                }
 
 #if NET_2_0
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                public bool NeverAccessed {
                        get { throw new NotImplementedException (); }
                }
index d8a42c54f6a7fb686534605ae1b9155faffedd53..e442a304b5bdabcbe68b9ff20ac4d333cef05a24 100644 (file)
@@ -187,19 +187,18 @@ namespace System.Web {
                        }
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                protected string GetExplicitResourceString (string attributeName, string defaultValue, bool throwIfNotFound)
                {
                        return null;
                }
                
-               [MonoTODO]
+               [MonoTODO("Not implemented, always returns null")]
                protected string GetImplicitResourceString (string attributeName)
                {
                        return null;
                }
                
-               [MonoTODO ("resource string?")]
                public virtual string this [string key]
                {
                        get {
index 79be08fc59c0b483b3bfe5cba89bbf04a55c12e5..56e556624bd82b06947274825dc70cdff50375b1 100644 (file)
@@ -121,7 +121,6 @@ namespace System.Web {
                        data.Write (category, msg, error, Warning);
                }
 #if NET_2_0
-               [MonoTODO]
                public event TraceContextEventHandler TraceFinished;
 #endif
                internal void SaveData ()
index 59fb0df6a98ce2750121739791490c2ec667b7e1..8fc016f78fc07eea484e6bd9d521fed9f49242ed 100644 (file)
@@ -51,7 +51,6 @@ namespace System.Web
                FileSystemWatcher watcher;
 #endif
 
-               [MonoTODO]
                protected internal override void AddNode (SiteMapNode node, SiteMapNode parentNode)
                {
                        base.AddNode (node, parentNode);
@@ -103,7 +102,6 @@ namespace System.Web
                        return System.Web.Configuration.HandlersUtil.ExtractAttributeValue (name, n, true, true);
                }
                
-               [MonoTODO]
                SiteMapNode BuildSiteMapRecursive (XmlNode xmlNode)
                {
                        if (xmlNode.Name != "siteMapNode")
@@ -180,13 +178,11 @@ namespace System.Web
                        Dispose (true);
                }
                
-               [MonoTODO]
                public override SiteMapNode FindSiteMapNode (string rawUrl)
                {
                        return base.FindSiteMapNode (rawUrl); // why did they override this method!?
                }
 
-               [MonoTODO]
                public override SiteMapNode FindSiteMapNodeFromKey (string key)
                {
                        return base.FindSiteMapNodeFromKey (key); // why did they override this method!?
@@ -217,13 +213,12 @@ namespace System.Web
 #endif
                }
 
-               [MonoTODO]
                protected override void RemoveNode (SiteMapNode node)
                {
                        base.RemoveNode (node);
                }
 
-               [MonoTODO]
+               [MonoTODO ("Not implemented")]
                protected virtual void RemoveProvider (string providerName)
                {
                        throw new NotImplementedException ();