You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/10/08 01:03:32 UTC

svn commit: r307214 - in /struts/sandbox/trunk/overdrive/Nexus: Core/Tables/ Extras/ Extras/Spring/ Test/bin/Debug/ Web/

Author: husted
Date: Fri Oct  7 16:03:16 2005
New Revision: 307214

URL: http://svn.apache.org/viewcvs?rev=307214&view=rev
Log:
OVR-12
OVR-21
* Add FieldContext factory method, so that Tables can add a "lazy" context entry when strict is false. 
* Loosen protection on list_criteria so a composite control can access. 
* Add InitView method to ViewControl so that composite controls can wire contained controls.

Added:
    struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldTable.cs
Modified:
    struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/Tables/IFieldTable.cs
    struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.xml
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.xml
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb
    struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs Fri Oct  7 16:03:16 2005
@@ -33,6 +33,13 @@
 			set { _Strict = value; }
 		}
 
+		public virtual IFieldContext NewFieldContext(string id)
+		{
+			IFieldContext field = new FieldContext();
+			field.ID = id;
+			return field;
+		}
+		
 		public virtual IFieldContext AddFieldContext
 		{
 			set
@@ -58,9 +65,19 @@
 		{
 			if (id == null) throw new ArgumentNullException("id==null", "Nexus.Core.Tables.FieldTable.GetFieldContext");
 			IFieldContext fieldContext = Field[id] as IFieldContext;
-			bool problem = ((fieldContext == null) && (Strict));
-			if (problem)
-				throw new ArgumentNullException(id, "Nexus.Core.Tables.FieldTable.GetFieldContext");
+			bool missing = (fieldContext == null);
+			if (missing) 
+				if (Strict)
+					throw new ArgumentNullException(id, "Nexus.Core.Tables.FieldTable.GetFieldContext");
+				else 
+				{ 
+					System.Object lockThis = new System.Object();
+					lock(lockThis)
+					{
+						fieldContext = NewFieldContext(id);
+						AddFieldContext = fieldContext;
+					}
+				}
 			return fieldContext;
 		}
 

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Tables/IFieldTable.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Tables/IFieldTable.cs?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Tables/IFieldTable.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Tables/IFieldTable.cs Fri Oct  7 16:03:16 2005
@@ -19,6 +19,17 @@
 		bool Strict { set; get; }
 
 		/// <summary>
+		/// Factory method to create a stub context 
+		/// when field is required and Strict is false.
+		/// </summary>
+		/// <remarks><p>
+		/// The IFieldContext instance should provide a default for Required.
+		/// </p></remarks>
+		/// <param name="id">The fieldname</param>
+		/// <returns>New default context for ID</returns>
+		IFieldContext NewFieldContext(string id);
+
+		/// <summary>
 		/// Add a field to the set. 
 		/// </summary>
 		/// 

Modified: struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj Fri Oct  7 16:03:16 2005
@@ -114,6 +114,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "Spring\FieldTable.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "Spring\Objects.cs"
                     SubType = "Code"
                     BuildAction = "Compile"

Added: struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldTable.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldTable.cs?rev=307214&view=auto
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldTable.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldTable.cs Fri Oct  7 16:03:16 2005
@@ -0,0 +1,35 @@
+using Nexus.Core.Tables;
+using Spring.Context;
+
+namespace Nexus.Extras.Spring
+{
+	/// <summary>
+	/// Companion to Nexus.Extras.Spring.FieldContext.
+	/// </summary>
+	public class FieldTable : Nexus.Core.Tables.FieldTable
+	{
+
+		private IMessageSource _MessageSource;
+
+		/// <summary>
+		/// Identify the message source for this FieldTable.
+		/// </summary>
+		/// <exception cref="System.InvalidOperationException">
+		/// If the context has not been initialized yet.
+		/// </exception>
+		public IMessageSource MessageSource
+		{
+			get { return _MessageSource; }
+			set { _MessageSource = value; }
+		}
+
+		public override IFieldContext NewFieldContext(string id)
+		{
+			FieldContext field = new FieldContext();
+			field.ID = id;
+			field.MessageSource = this.MessageSource;
+			return field;
+		}
+		
+	}
+}

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.xml?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.xml (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.xml Fri Oct  7 16:03:16 2005
@@ -551,6 +551,17 @@
             </summary>
             
         </member>
+        <member name="M:Nexus.Core.Tables.IFieldTable.NewFieldContext(System.String)">
+            <summary>
+            Factory method to create a stub context 
+            when field is required and Strict is false.
+            </summary>
+            <remarks><p>
+            The IFieldContext instance should provide a default for Required.
+            </p></remarks>
+            <param name="id">The fieldname</param>
+            <returns>New default context for ID</returns>
+        </member>
         <member name="M:Nexus.Core.Tables.IFieldTable.GetFieldContext(System.String)">
             <summary>
             Obtain the FieldContext for the given ID, observing Strict setting.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.xml?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.xml (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.xml Fri Oct  7 16:03:16 2005
@@ -112,6 +112,19 @@
             If the context has not been initialized yet.
             </exception>
         </member>
+        <member name="T:Nexus.Extras.Spring.FieldTable">
+            <summary>
+            Companion to Nexus.Extras.Spring.FieldContext.
+            </summary>
+        </member>
+        <member name="P:Nexus.Extras.Spring.FieldTable.MessageSource">
+            <summary>
+            Identify the message source for this FieldTable.
+            </summary>
+            <exception cref="T:System.InvalidOperationException">
+            If the context has not been initialized yet.
+            </exception>
+        </member>
         <member name="T:Agility.Extras.Spring.Objects">
             <summary>
             A singleton implementation of the IHelper protocol, 

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
Binary files - no diff available.

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs Fri Oct  7 16:03:16 2005
@@ -65,7 +65,7 @@
 			if (View_Find != null)
 			{
 				FindArgs a = new FindArgs(e, Criteria);
-				View_Find(sender, a);
+				View_Find(sender, a); 
 			}
 		}
 

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs Fri Oct  7 16:03:16 2005
@@ -4,6 +4,7 @@
 using System.Web.UI.WebControls;
 using Nexus.Core;
 using Nexus.Core.Helpers;
+using WQD.Core.Controls;
 
 namespace Nexus.Web
 {
@@ -19,7 +20,7 @@
 		/// <summary>
 		/// Values to use with a query statement.
 		/// </summary>
-		private IDictionary list_Criteria
+		protected IDictionary list_Criteria
 		{
 			get
 			{
@@ -653,7 +654,11 @@
 
 		protected void add_Click(object sender, EventArgs e)
 		{
-			list_Add(sender,e);
+			if (View_Add!=null)
+			{
+				FindArgs f = new FindArgs(e,list_Criteria);
+				View_Add(sender,f);
+			}
 		}
 
 		protected virtual void list_Item_Click(int index)

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs?rev=307214&r1=307213&r2=307214&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs Fri Oct  7 16:03:16 2005
@@ -36,7 +36,7 @@
 		/// </summary>
 		protected IViewHelper Page_Error
 		{
-			set { View_Error_Send(this, new ViewArgs(value)); }
+			set { View_Error_Handler(this, new ViewArgs(value)); }
 		}
 
 		#region String utilities 
@@ -301,6 +301,7 @@
 		{
 			IViewHelper helper = Catalog.GetHelperFor(command);
 			helper.Profile = Profile;
+			// helper;
 			return helper;
 		}
 
@@ -646,12 +647,23 @@
 		/// </summary>
 		/// <param name="sender">This object</param>
 		/// <param name="e">A ViewArgs instance with the IViewHelper containing the error messages(s).</param>
-		private void View_Error_Send(object sender, ViewArgs e)
+		private void View_Error_Handler(object sender, EventArgs e)
 		{
 			if (View_Error != null)
 			{
 				View_Error(sender, e);
 			}
+		}
+
+		/// <summary>
+		/// Initialize the control to use the stanard View_Error event handerl.
+		/// </summary>
+		/// <param name="c">Control to register</param>
+		/// 
+		protected void InitView(ViewControl c)
+		{
+			c.View_Error += new EventHandler(View_Error_Handler);
+			c.Profile = Profile;
 		}
 
 		/// <summary>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org