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/06/24 15:20:19 UTC

svn commit: r201614 - in /struts/sandbox/trunk/overdrive/Nexus: Core/Core.csproj Core/IEntryList.cs Core/Tables/FieldTable.cs Core/Validators/EntryListProcessor.cs Web/BaseGridPage.aspx.cs Web/GridViewHelper.cs

Author: husted
Date: Fri Jun 24 06:20:16 2005
New Revision: 201614

URL: http://svn.apache.org/viewcvs?rev=201614&view=rev
Log:
OVR-17
* Add IEntryList and EntryListProcessor.

Added:
    struts/sandbox/trunk/overdrive/Nexus/Core/IEntryList.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/Validators/EntryListProcessor.cs
Modified:
    struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj
    struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/GridViewHelper.cs

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj?rev=201614&r1=201613&r2=201614&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj Fri Jun 24 06:20:16 2005
@@ -84,6 +84,16 @@
                     AssemblyName = "Agility.Core"
                     HintPath = "..\..\Agility\Core\bin\Debug\Agility.Core.dll"
                 />
+                <Reference
+                    Name = "System.Drawing"
+                    AssemblyName = "System.Drawing"
+                    HintPath = "..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
+                />
+                <Reference
+                    Name = "System.Windows.Forms"
+                    AssemblyName = "System.Windows.Forms"
+                    HintPath = "..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
+                />
             </References>
         </Build>
         <Files>
@@ -94,7 +104,7 @@
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "IContextList.cs"
+                    RelPath = "IEntryList.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />
@@ -200,6 +210,11 @@
                 />
                 <File
                     RelPath = "Validators\DateTimeProcessor.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "Validators\EntryListProcessor.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />

Added: struts/sandbox/trunk/overdrive/Nexus/Core/IEntryList.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IEntryList.cs?rev=201614&view=auto
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/IEntryList.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/IEntryList.cs Fri Jun 24 06:20:16 2005
@@ -0,0 +1,22 @@
+using System.Collections;
+
+namespace Nexus.Core
+{
+	/// <summary>
+	/// A list of a set of Fields, such as displayed as the result of a query.
+	/// </summary>
+	public interface IEntryList : IList
+	{
+		/// <summary>
+		/// Create and Insert a new entry object at index 0.
+		/// </summary>
+		object Insert (string key);
+
+		/// <summary>
+		/// Add a entry object based on an IDictionary.
+		/// </summary>
+		/// <param name="row"></param>
+		void AddEntry(IDictionary row);
+
+	}
+}

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=201614&r1=201613&r2=201614&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Tables/FieldTable.cs Fri Jun 24 06:20:16 2005
@@ -37,7 +37,7 @@
 			set
 			{
 				if (value == null)
-					throw new ArgumentNullException ("value is null or wrong type", "Nexus.Core.Tables.FieldTable.AddFieldContext");
+					throw new ArgumentNullException ("(value==null) || (Type!=IFieldContext)", "Nexus.Core.Tables.FieldTable.AddFieldContext");
 				Field [value.ID] = value;
 			}
 		}
@@ -47,7 +47,7 @@
 			set
 			{
 				if (value == null)
-					throw new ArgumentNullException ("value is null or wrong type", "Nexus.Core.Tables.FieldTable.AddFieldContexts");
+					throw new ArgumentNullException ("(value==null) || (Type!=IFieldContext)", "Nexus.Core.Tables.FieldTable.AddFieldContexts");
 				IEnumerator elements = value.GetEnumerator ();
 				while (elements.MoveNext ()) AddFieldContext = elements.Current as IFieldContext;
 			}
@@ -55,10 +55,11 @@
 
 		public virtual IFieldContext GetFieldContext (string id)
 		{
+			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 ("Nexus.Core.Tables.FieldTable", "GetFieldContext");
+				throw new ArgumentNullException (id, "Nexus.Core.Tables.FieldTable.GetFieldContext");
 			return fieldContext;
 		}
 
@@ -71,7 +72,7 @@
 			set
 			{
 				if (value == null)
-					throw new ArgumentNullException ("value", "Nexus.Core.Tables.FieldTable.AddProcessor");
+					throw new ArgumentNullException ("value==null", "Nexus.Core.Tables.FieldTable.AddProcessor");
 				Processor [value.ID] = value;
 			}
 		}
@@ -81,7 +82,7 @@
 			set
 			{
 				if (value == null)
-					throw new ArgumentNullException ("value", "Nexus.Core.Tables.FieldTable.AddProcessors");
+					throw new ArgumentNullException ("value==null", "Nexus.Core.Tables.FieldTable.AddProcessors");
 				IEnumerator elements = value.GetEnumerator ();
 				while (elements.MoveNext ()) AddProcessor = elements.Current as IProcessor;
 			}
@@ -89,6 +90,8 @@
 
 		public virtual IProcessor GetProcessor (string id)
 		{
+			if (id == null)
+				throw new ArgumentNullException ("id==null", "Nexus.Core.Tables.FieldTable.GetProcessor");
 			IProcessor processor = Processor [id] as IProcessor;
 			if (processor == null)
 				throw new ArgumentNullException (id, "Nexus.Core.Tables.FieldTable.GetProcessor");

Added: struts/sandbox/trunk/overdrive/Nexus/Core/Validators/EntryListProcessor.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Validators/EntryListProcessor.cs?rev=201614&view=auto
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Validators/EntryListProcessor.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Validators/EntryListProcessor.cs Fri Jun 24 06:20:16 2005
@@ -0,0 +1,51 @@
+using System.Collections;
+using Agility.Nexus.Validators;
+using Nexus.Core;
+
+namespace Nexus.Core.Validators
+{
+	/// <summary>
+	/// Transform IDictionary entries into formatted entries on a IEntryList instances.
+	/// </summary>
+	/// <remarks><p>
+	/// To implement, override NewEntryList to provide an instances of the desired type. 
+	/// This will usually be an IEntryList that creates the entry objects used by your application. 
+	/// The entry objects can be conventional property objects, 
+	/// or objects that expose properties backed by an IDictionary, as you prefer.
+	/// </p></remarks>
+	/// 
+	public abstract class EntryListProcessor : Processor
+	{
+
+		public override bool ConvertInput (IProcessorContext incoming)
+		{
+			incoming.Target = incoming.Source;
+			return true;
+		}
+
+		public override bool FormatOutput (IProcessorContext outgoing)
+		{
+			ProcessorCommand formatter = new FormatOutput ();
+			IList source = outgoing.Source as IList;
+
+			IEntryList target = NewEntryList();
+
+			foreach (IDictionary row in source)
+			{
+				IRequestContext context = new RequestContext (row);
+				context.FieldTable = outgoing.FieldTable;
+				ICollection keys = row.Keys;
+				foreach (string key in keys)
+				{
+					IProcessorContext _context = new ProcessorContext (key, context);
+					formatter.ExecuteProcess (_context);
+				}
+				target.AddEntry (context.Criteria);
+			}
+			outgoing.Target = target;
+			return true;
+		}
+
+		public abstract IEntryList NewEntryList();
+	}
+}
\ No newline at end of file

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs?rev=201614&r1=201613&r2=201614&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs Fri Jun 24 06:20:16 2005
@@ -30,9 +30,6 @@
 
 		#region Page Properties 
 
-		protected Panel pnlError;
-		protected Label lblError;
-
 		private IViewHelper _Page_Error;
 		/// <summary>
 		/// Set is called when an error occurs; override to provide functionality.
@@ -53,7 +50,6 @@
 			get {return _Page_Prompt;}
 		}
 		#endregion
-
 
 		#region Messages
 

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/GridViewHelper.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/GridViewHelper.cs?rev=201614&r1=201613&r2=201614&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/GridViewHelper.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/GridViewHelper.cs Fri Jun 24 06:20:16 2005
@@ -211,12 +211,12 @@
 			grid.DataSource = list;
 		}
 
-		public abstract IContextList NewContextList ();
+		public abstract IEntryList NewEntryList ();
 
 		public virtual bool DataInsert (DataGrid grid)
 		{
 			// Fake a blank row
-			IContextList list = NewContextList ();
+			IEntryList list = NewEntryList ();
 			list.Insert (String.Empty);
 			ListHelper.Criteria [ListHelper.Command.ID] = list;
 			grid.DataSource = list;



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