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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to