Author: husted
Date: Wed Nov 29 08:55:40 2006
New Revision: 480626

URL: http://svn.apache.org/viewvc?view=rev&rev=480626
Log:
XML Documentation updates. 

Modified:
    struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml
    struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj
    struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/PostBuildEvent.bat
    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/Helpers/IViewHelper.cs
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs Wed Nov 29 
08:55:40 2006
@@ -21,10 +21,12 @@
 namespace Nexus.Core.Helpers
 {
        /// <summary>
-       /// Provide a facade for use by a code-behind to simplify access to the 
-       /// IRequestContext and IRequestCommand. 
+       /// Provide methods for running a business command and handling the 
result.
        /// </summary>
        /// <remarks><p>
+       /// IViewHelper is a facade for use by a code-behind to simplify access 
+       /// to the IRequestContext and IRequestCommand. 
+       /// </p><p>
        /// The helper may also work with the catalog to act as a 
        /// "front controller" by ensuring routine tasks are carried out.
        /// These tasks can include input validation, data conversion, 

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Nexus.Core.xml Wed Nov 29 
08:55:40 2006
@@ -44,10 +44,12 @@
         </member>
         <member name="T:Nexus.Core.Helpers.IViewHelper">
             <summary>
-            Provide a facade for use by a code-behind to simplify access to 
the 
-            IRequestContext and IRequestCommand. 
+            Provide methods for running a business command and handling the 
result.
             </summary>
             <remarks><p>
+            IViewHelper is a facade for use by a code-behind to simplify 
access 
+            to the IRequestContext and IRequestCommand. 
+            </p><p>
             The helper may also work with the catalog to act as a 
             "front controller" by ensuring routine tasks are carried out.
             These tasks can include input validation, data conversion, 

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj Wed Nov 29 08:55:40 
2006
@@ -110,6 +110,11 @@
                     AssemblyName = "Agility.Core"
                     HintPath = "..\..\..\local-cache\Agility\Agility.Core.dll"
                 />
+                <Reference
+                    Name = "Spring.Web"
+                    AssemblyName = "Spring.Web"
+                    HintPath = "..\..\local-cache\SpringNet\Spring.Web.dll"
+                />
             </References>
         </Build>
         <Files>

Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/PostBuildEvent.bat
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/PostBuildEvent.bat?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/PostBuildEvent.bat 
(original)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/PostBuildEvent.bat Wed 
Nov 29 08:55:40 2006
@@ -1,5 +1,5 @@
 @echo off
-C:\projects\Apache\struts-overdrive\sandbox\overdrive\Nexus\postbuild.bat 
C:\projects\Apache\struts-overdrive\sandbox\overdrive\Nexus\Test\bin\Debug\  
Nexus.Test  Nexus  C:\projects\Apache\struts-overdrive\sandbox\overdrive\Nexus\
+C:\projects\Nexus\struts-overdrive\sandbox\overdrive\Nexus\postbuild.bat 
C:\projects\Nexus\struts-overdrive\sandbox\overdrive\Nexus\Test\bin\Debug\  
Nexus.Test  Nexus  C:\projects\Nexus\struts-overdrive\sandbox\overdrive\Nexus\
 if errorlevel 1 goto CSharpReportError
 goto CSharpEnd
 :CSharpReportError

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs Wed Nov 29 
08:55:40 2006
@@ -8,19 +8,22 @@
 
 namespace Nexus.Web
 {
+       /// <summary>
+       /// List, edit, and select items using a DataGrid and IViewHelper 
commands. 
+       /// </summary>
        public class GridControl : ViewControl
        {
                #region Runtime state Properties
 
                /// <summary>
-               /// Attribute token for List_Criteria.
+               /// Provide an attribute token for List_Criteria.
                /// </summary>
                private string LIST_CRITERIA_KEY = "list_Criteria";
 
                /// <summary>
                /// Set the given criteria to the list_Critieria (creating a 
new one if null), and, 
-               /// If AllowCustomPage is set, 
-               /// calcuate new Limit and Offset, based on pageIndex, and set 
to criteria.
+               /// if AllowCustomPage is set, 
+               /// calculate new Limit and Offset, based on pageIndex, and set 
to criteria.
                /// </summary>
                /// <remarks><p>
                /// This form is provided to be called by list_Criteria_Init. 
@@ -49,24 +52,14 @@
                        return list_Criteria_NewPageIndex(criteria, pageIndex);
                }
 
-               /// <summary>
-               /// If AllowCustomPage is set, 
-               /// calculate new List and Offset, using the list_Context.
-               /// </summary>
-               /// <remarks><p>
-               /// The other form is provided to be called by 
list_Criteria_Init. 
-               /// This form is provided to be called by other methods.
-               /// </p></remarks>
-               /// <param name="pageIndex">The new page index</param>
-               /// <returns>The updated list_Criteria instance</returns>
                protected IDictionary list_Criteria_NewPageIndex(int pageIndex)
                {
                        IDictionary criteria = list_Criteria;
-                       return list_Criteria_NewPageIndex(criteria, pageIndex, 
AllowCustomPaging);
+                       return list_Criteria_NewPageIndex(criteria, pageIndex);
                }
 
                /// <summary>
-               /// Values to use with a query statement.
+               /// Provide values to use with a query statement, persisted 
across requests.
                /// </summary>
                protected IDictionary list_Criteria
                {
@@ -92,7 +85,7 @@
                }
 
                /// <summary>
-               /// Attribute token for List_ItemIndex
+               /// Provide attribute token for List_ItemIndex.
                /// </summary>
                private const string LIST_ITEM_INDEX = "list_ItemIndex";
 
@@ -115,12 +108,12 @@
                }
 
                /// <summary>
-               /// Attribute token for List_ItemKey.
+               /// Provide attribute token for List_ItemKey.
                /// </summary>
                private const string LIST_ITEM_KEY = "list_ItemKey";
 
                /// <summary>
-               /// The data key for the selected item.
+               /// Provide data key for the selected item.
                /// </summary>
                public virtual string list_ItemKey
                {
@@ -129,12 +122,12 @@
                }
 
                /// <summary>
-               /// Attribute token for List_Insert.
+               /// Provide attribute token for List_Insert.
                /// </summary>
                private const string LIST_INSERT_KEY = "list_Insert";
 
                /// <summary>
-               /// Insert mode - are we adding or modifying?
+               /// Determine insert mode - are we adding or modifying?
                /// </summary>
                public virtual bool list_Insert
                {
@@ -147,8 +140,14 @@
                        set { ViewState[LIST_INSERT_KEY] = value; }
                }
 
+               /// <summary>
+               /// Store whether command uses critiera.
+               /// </summary>
                private bool _HasCriteria = true;
 
+               /// <summary>
+               /// Track whether a criteria is used.
+               /// </summary>
                public virtual bool HasCriteria
                {
                        get { return _HasCriteria; }
@@ -159,24 +158,42 @@
 
                #region Command properties to set
 
+               /// <summary>
+               /// Store the Find Command.
+               /// </summary>
                private string _FindCommand;
 
+               /// <summary>
+               /// Provide the Find Command to prepare a new search.
+               /// </summary>
                public virtual string FindCommand
                {
                        get { return _FindCommand; }
                        set { _FindCommand = value; }
                }
 
+               /// <summary>
+               /// Store the List Command.
+               /// </summary>
                private string _ListCommand;
 
+               /// <summary>
+               /// Provide the List Command to filter items and populate the 
DataGrid.
+               /// </summary>
                public virtual string ListCommand
                {
                        get { return _ListCommand; }
                        set { _ListCommand = value; }
                }
 
+               /// <summary>
+               /// Store the Save Command.
+               /// </summary>
                private string _SaveCommand;
 
+               /// <summary>
+               /// Provide the Save Command to retain changes to an item.
+               /// </summary>
                public virtual string SaveCommand
                {
                        get { return _SaveCommand; }
@@ -187,16 +204,32 @@
 
                #region Column properties to set 
 
+               /// <summary>
+               /// Store the key field.
+               /// </summary>
                private string _DataKeyField;
 
+               /// <summary>
+               /// Provide the key field for the DataGrid.
+               /// </summary>
                public virtual string DataKeyField
                {
                        get { return _DataKeyField; }
                        set { _DataKeyField = value; }
                }
 
+               /// <summary>
+               /// Store the list of GridConfig items.
+               /// </summary>
                private IList _Configs;
 
+               /// <summary>
+               /// Provide a list of the GridConfig items.
+               /// </summary>
+               /// <remarks><p>
+               /// GridConfig is a local class that describes 
+               /// the fields needed to program a DataGrid column.
+               /// </p></remarks>
                public virtual IList Configs
                {
                        get { return _Configs; }
@@ -207,79 +240,163 @@
 
                #region Column properties with defaults
 
+               /// <summary>
+               /// Provide default text for the EDIT control.
+               /// </summary>
                public const string msg_EDIT_TEXT = "EDIT";
+               
+               /// <summary>
+               /// Provide default text for the CANCEL control.
+               /// </summary>
                public const string msg_QUIT_TEXT = "CANCEL";
+
+               /// <summary>
+               /// Provide default text for the SAVE control.
+               /// </summary>
                public const string msg_SAVE_TEXT = "SAVE";
-               public const string msg_ITEM_TEXT = "#";
-               public const string msg_ITEM_COMMAND = "Item";
 
+               /// <summary>
+               /// Provide default text for the ITEM control.
+               /// </summary>          
+               public const string msg_ITEM_TEXT = "#";
+               
+               /// <summary>
+               /// Store the text for the EDIT control.
+               /// </summary>
                private string _EditText = msg_EDIT_TEXT;
 
+               /// <summary>
+               /// Provide the text for the EDIT control.
+               /// </summary>
                public virtual string EditText
                {
                        get { return _EditText; }
                        set { _EditText = value; }
                }
 
+               /// <summary>
+               /// Store the text for the QUIT control.
+               /// </summary>
                private string _QuitText = msg_QUIT_TEXT;
 
+               /// <summary>
+               /// Provide the text for the QUIT control.
+               /// </summary>
                public virtual string QuitText
                {
                        get { return _QuitText; }
                        set { _QuitText = value; }
                }
 
+               /// <summary>
+               /// Store the text for the SAVE control.
+               /// </summary>
                private string _SaveText = msg_SAVE_TEXT;
 
+               /// <summary>
+               /// Provide the text for the SAVE control.
+               /// </summary>
                public virtual string SaveText
                {
                        get { return _SaveText; }
                        set { _SaveText = value; }
                }
 
+               /// <summary>
+               /// Store the text for the ITEM control.
+               /// </summary>
                private string _ItemText = msg_ITEM_TEXT;
 
+               /// <summary>
+               /// Provide the text for the ITEM control.
+               /// </summary>
                public virtual string ItemText
                {
                        get { return _ItemText; }
                        set { _ItemText = value; }
                }
 
+               /// <summary>
+               /// Provide default token to signal an item select command.
+               /// </summary>          
+               public const string msg_ITEM_COMMAND = "Item";
+
+               /// <summary>
+               /// Store the token to signal an item select command. 
+               /// </summary>
                private string _ItemCommand = msg_ITEM_COMMAND;
 
+               /// <summary>
+               /// Provide the token to signal an item select command. 
+               /// </summary>
                public virtual string ItemCommandName
                {
                        get { return _ItemCommand; }
                        set { _ItemCommand = value; }
                }
 
+               /// <summary>
+               /// Store whether an item column is presented [false].
+               /// </summary>
                private bool _HasItemColumn = false;
 
+               /// <summary>
+               /// Provide whether an item column is presented [false].
+               /// </summary>
                public virtual bool HasItemColumn
                {
                        get { return _HasItemColumn; }
                        set { _HasItemColumn = value; }
                }
 
+               /// <summary>
+               /// Store whether an edit column is presented [false].
+               /// </summary>
                private bool _HasEditColumn = false;
 
+               /// <summary>
+               /// Provide whether an edit column is presented [false].
+               /// </summary>
                public virtual bool HasEditColumn
                {
                        get { return _HasEditColumn; }
                        set { _HasEditColumn = value; }
                }
 
+               /// <summary>
+               /// Store whether dataset is being accessed page by page. 
+               /// </summary>
                private bool _AllowCustomPaging = true;
 
+               /// <summary>
+               /// Provide whether dataset is being accessed page by page. 
+               /// </summary>
+               /// <remarks><p>
+               /// Custom paging refers to whether the entire dataset is 
retrieved all at once
+               /// or whether the items to fill the current page are retrieved.
+               /// A DataGrid may be configured to display pages with 
AllowCusteomPaging set to false, 
+               /// but the underlying query should retrieve the entire dataset 
up front.
+               /// Whether page numbers are used is set in the DataGrid 
markup, not here.
+               /// </p></remarks>
                public virtual bool AllowCustomPaging
                {
                        get { return _AllowCustomPaging; }
                        set { _AllowCustomPaging = value; }
                }
 
+               /// <summary>
+               /// Store the ASP.NET default for a DataGrid page size.
+               /// </summary>
                const int DEFAULT_DATAGRID_PAGESIZE = 10;
+               
+               /// <summary>
+               /// Store the DataGrid default page size.
+               /// </summary>
                private int _PageSize = DEFAULT_DATAGRID_PAGESIZE;
 
+               /// <summary>
+               /// Provide the DataGrid default page size.
+               /// </summary>
                public virtual int PageSize
                {
                        get { return _PageSize; }
@@ -290,6 +407,11 @@
 
                #region Binding methods 
 
+               /// <summary>
+               /// Set the Helper's outcome to the DataGrid datasource, 
+               /// and update the virtual item count if AllowCustomPaging.
+               /// </summary>
+               /// <param name="helper"></param>
                protected virtual void DataSource(IViewHelper helper)
                {
                        IList list = helper.Outcome;
@@ -301,34 +423,56 @@
                        }
                }
 
+               /// <summary>
+               /// Bind the current datasource to the base control and the 
DataGrid control.
+               /// </summary>
                public override void DataBind()
                {
                        base.DataBind();
                        Grid.DataBind();
                }
 
-               protected virtual int BindItemColumn(int i)
+               /// <summary>
+               /// Configure a control column to select a DataGrid item (or 
row).
+               /// </summary>
+               /// <param name="pos">The column position</param>
+               /// <returns>The next column position</returns>
+               protected virtual int BindItemColumn(int pos)
                {
                        ButtonColumn column = new ButtonColumn();
                        column.ButtonType = ButtonColumnType.PushButton;
                        column.Text = ItemText;
                        column.CommandName = ItemCommandName;
-                       Grid.Columns.AddAt(i, column);
-                       return ++i;
+                       Grid.Columns.AddAt(pos, column);
+                       return ++pos;
                }
 
-               protected virtual int BindEditColumn(int i)
+               /// <summary>
+               /// Configure a control column to edit a DataGrid item (or row).
+               /// </summary>
+               /// <param name="pos">The column position</param>
+               /// <returns>The next column position</returns>
+               protected virtual int BindEditColumn(int pos)
                {
                        EditCommandColumn column = new EditCommandColumn();
                        column.ButtonType = ButtonColumnType.PushButton;
                        column.EditText = EditText;
                        column.CancelText = QuitText;
                        column.UpdateText = SaveText;
-                       Grid.Columns.AddAt(i, column);
-                       return ++i;
+                       Grid.Columns.AddAt(pos, column);
+                       return ++pos;
                }
 
-               protected virtual int BindColumns(int i)
+               /// <summary>
+               /// Configure the list of custom columns, starting from a given 
column position.
+               /// </summary>
+               /// <remarks><p>
+               /// If the edit or item columns have already been configured, 
+               /// then starting position may be 1 or 2.
+               /// </p></remarks>
+               /// <param name="pos">Starting column position</param>
+               /// <returns>Next column position</returns>
+               protected virtual int BindColumns(int pos)
                {
                        DataGrid grid = Grid;
                        grid.DataKeyField = DataKeyField;
@@ -339,13 +483,20 @@
                                IGridConfig config = configs[c] as IGridConfig;
                                if (config.HasTemplate)
                                {
-                                       i = BindTemplateColumn(i, config);
+                                       pos = BindTemplateColumn(pos, config);
                                }
-                               else i = BindColumn(i, config);
+                               else pos = BindColumn(pos, config);
                        }
-                       return i;
+                       return pos;
                }
 
+               /// <summary>
+               /// Configure a DataGrid column at the given position, 
+               /// using the IGridConfig settings.
+               /// </summary>
+               /// <param name="pos">Position to insert column</param>
+               /// <param name="config">Column settings</param>
+               /// <returns>The next column pos</returns>
                protected int BindColumn(int pos, IGridConfig config)
                {
                        BoundColumn column = new BoundColumn();
@@ -357,6 +508,13 @@
                        return pos + 1;
                }
 
+               /// <summary>
+               /// Configure a template column at the given position, 
+               /// using the IGtridConfig settings.
+               /// </summary>
+               /// <param name="pos">Position to insert column</param>
+               /// <param name="config">Column settings</param>
+               /// <returns>The next column pos</returns>
                protected int BindTemplateColumn(int pos, IGridConfig config)
                {
                        TemplateColumn column = new TemplateColumn();
@@ -369,15 +527,25 @@
                        return pos + 1;
                }
 
+               /// <summary>
+               /// Store whether the DataGrid has bee configured.
+               /// </summary>
                private bool bind = true;
 
+               /// <summary>
+               /// Initialize the DataGrid with any custom columns.
+               /// </summary>
+               /// <remarks>
+               /// This method is meant to be overriden by subclasses 
+               /// to program a custom set of DataGrid columns.
+               /// </remarks>
                protected virtual void InitGrid()
                {
                        bind = true;
                }
 
                /// <summary>
-               /// Obtain item count from Helper.
+               /// Obtain the item count from Helper.
                /// </summary>
                /// <param name="helper">The helper to examine</param>
                /// <returns>Total count of items for all pages</returns>
@@ -387,6 +555,10 @@
                        return Convert.ToInt32(helper.Criteria[ITEM_COUNT]);
                }
 
+               /// <summary>
+               /// Configure the DataGrid for initial display.
+               /// </summary>
+               /// <param name="helper">The Helper with an outcome to bind as 
a DataSource</param>
                protected virtual void BindGrid(IViewHelper helper)
                {
 
@@ -424,6 +596,13 @@
 
                #region Special ReadControls method 
 
+               /// <summary>
+               /// Inspect a collection of DataGrid controls and set control 
values to a dictionary.
+               /// </summary>
+               /// <param name="controls">DataGrid Control Collection</param>
+               /// <param name="dictionary">Output object for control 
values</param>
+               /// <param name="keys">List of control/attribute names to 
collect</param>
+               /// <param name="nullIfEmpty">If value is an empty strong, set 
to null</param>
                protected void ReadGridControls(ControlCollection controls, 
IDictionary dictionary, string[] keys, bool nullIfEmpty)
                {
                        int i = -1;
@@ -487,15 +666,20 @@
                #region Command methods
 
                /// <summary>
-               /// If "Add Row" feature is going to be used, 
-               /// Override getter to return new instance of the Context list 
-               /// for this application. 
+               /// Provide an internal extension point 
+               /// that can return an entry item of the appropriate type 
+               /// to use when adding a new entry to the dataset.
                /// </summary>
                protected virtual IEntryList NewContextList
                {
                        get { throw new NotImplementedException(); }
                }
-
+               
+               /// <summary>
+               /// Create a blank for editing by creating an empty row 
+               /// and temporarily changing the datasource.
+               /// </summary>
+               /// <returns></returns>
                protected virtual IViewHelper DataInsert()
                {
                        DataGrid grid = Grid;
@@ -511,12 +695,24 @@
                        return helper;
                }
 
+               /// <summary>
+               /// Invoke a Find command.
+               /// </summary>
+               /// <param name="key">Data index key for the entry, if 
any</param>
+               /// <param name="controls">The set of controls</param>
+               /// <returns>The executed helper</returns>
                protected virtual IViewHelper Find(string key, 
ControlCollection controls)
                {
                        IViewHelper helper = ExecuteBind(FindCommand);
                        return helper;
                }
 
+               /// <summary>
+               /// Invoke a Save command.
+               /// </summary>
+               /// <param name="key">Data index key for the entry, if 
any</param>
+               /// <param name="controls">The set of controls</param>
+               /// <returns>The executed helper</returns>
                protected virtual IViewHelper Save(string key, 
ControlCollection controls)
                {
                        IViewHelper h = GetHelperFor(SaveCommand);
@@ -545,6 +741,10 @@
 
                #region Loading methods
 
+               /// <summary>
+               /// Invoke a ListCommand that doesn't require a criteria.
+               /// </summary>
+               /// <returns>Executed helper</returns>
                public virtual IViewHelper ExecuteList()
                {
                        IViewHelper helper = Execute(ListCommand);
@@ -553,6 +753,10 @@
                        return helper;
                }
 
+               /// <summary>
+               /// Invoke a ListCommand that uses a criteria.
+               /// </summary>
+               /// <returns>Executed helper</returns>
                public virtual IViewHelper ExecuteList(IDictionary criteria)
                {
                        IViewHelper helper = ReadExecute(ListCommand, criteria);
@@ -561,6 +765,11 @@
                        return helper;
                }
 
+               /// <summary>
+               /// Setup the DataGrid when the page is first initialized.
+               /// </summary>
+               /// <param name="criteria">Parameters for the comamnd</param>
+               /// <returns></returns>
                public virtual IViewHelper LoadGrid(IDictionary criteria)
                {
                        IViewHelper helper;
@@ -575,13 +784,13 @@
                                helper = ExecuteList(criteria);
                        else
                                helper = ExecuteList();
-
+                       
                        if (Grid.AllowCustomPaging)
                        {
                                int count = GetItemCount(helper);
                                ListPageIndexChanged_Raise(this, 0, 
Grid.PageSize, count);                                                          
    
                        }
-
+                       
                        return helper;
                }
 
@@ -630,6 +839,12 @@
                        Reset(list_Criteria);
                }
 
+               /// <summary>
+               /// Handle standard list Item events by opening item 
+               /// or preparing to add a new item.
+               /// </summary>
+               /// <param name="commandName">The com</param>
+               /// <param name="index"></param>
                protected virtual void list_Item(string commandName, int index)
                {
                        switch (commandName)
@@ -654,6 +869,10 @@
                        }
                }
 
+               /// <summary>
+               /// Handle standard Edit events by setting the index and 
refreshing display.
+               /// </summary>
+               /// <param name="index"></param>
                protected virtual void list_Edit(int index)
                {
                        // ISSUE: Event? Page_Prompt = msg_EDIT_HINT;
@@ -661,6 +880,9 @@
                        list_Refresh();
                }
 
+               /// <summary>
+               /// Reset DataGrid state.
+               /// </summary>
                protected virtual void list_Quit()
                {
                        // ISSUE: Event? Page_Prompt = msg_QUIT_SUCCESS;
@@ -669,6 +891,9 @@
                        list_Refresh();
                }
 
+               /// <summary>
+               /// Refresh DataGrid  by rebinding datasource.
+               /// </summary>
                protected virtual void list_Refresh()
                {
                        DataBind();
@@ -688,6 +913,9 @@
                        Grid.CurrentPageIndex = 0; // sic
                }
 
+               /// <summary>
+               /// Insert a new row for editing.
+               /// </summary>
                protected virtual void list_Add()
                {
                        IViewHelper helper = DataInsert();
@@ -706,6 +934,10 @@
 
                #region List events
 
+               /// <summary>
+               /// Prepare an item for editing and return its key.
+               /// </summary>
+               /// <returns>Data key for item to edit</returns>
                private string GetDataKey()
                {
                        DataGrid grid = Grid;
@@ -714,6 +946,11 @@
                        return key;
                }
 
+               /// <summary>
+               /// Harvest a collection of controls from DataGrid
+               /// </summary>
+               /// <param name="e"></param>
+               /// <returns>A control collection for DataGrid</returns>
                public virtual ControlCollection 
GetControls(DataGridCommandEventArgs e)
                {
                        DataGrid grid = Grid;
@@ -728,11 +965,21 @@
 
                // postback events
 
+               /// <summary>
+               /// Handle event by presenting selected row in an editable form.
+               /// </summary>
+               /// <param name="source">Event source</param>
+               /// <param name="e">Event parameters</param>
                private void list_Edit(object source, DataGridCommandEventArgs 
e)
                {
                        list_Edit(e.Item.ItemIndex);
                }
 
+               /// <summary>
+               /// Handle event by retaining any changes to the selected 
DataGrid row.
+               /// </summary>
+               /// <param name="source">Event source</param>
+               /// <param name="e">Event parameters</param>
                private void list_Save(object source, DataGridCommandEventArgs 
e)
                {
                        string key = (list_Insert) ? null : GetDataKey();
@@ -750,26 +997,53 @@
                        if (!okay) Page_Alert = helper;
                }
 
+               
+               /// <summary>
+               /// Handle event by resetting DataGrid state.
+               /// </summary>
+               /// <param name="source">Event source</param>
+               /// <param name="e">Event parameters</param>
                private void list_Quit(object source, DataGridCommandEventArgs 
e)
                {
                        list_Quit();
                }
 
+               /// <summary>
+               /// Handle list add event by inserting a new row, 
+               /// and raising a View Add event.
+               /// </summary>
+               /// <param name="sender">Event source</param>
+               /// <param name="e">Event parameters</param>
                protected void list_Add(object sender, EventArgs e)
                {
                        list_Add();
                        if (View_Add != null) View_Add(sender, e);
                }
 
+               /// <summary>
+               /// Handle list item event by opening item or preparing to add 
new item.
+               /// </summary>
+               /// <param name="source">Event source</param>
+               /// <param name="e">Event parameters</param>
                private void List_Item(object source, DataGridCommandEventArgs 
e)
                {
                        int index = e.Item.ItemIndex;
                        list_Item(e.CommandName, index);
                }
 
-
+               /// <summary>
+               /// Provide key to store item limit in criteria.
+               /// </summary>
                public const string ITEM_LIMIT = "item_limit";
+               
+               /// <summary>
+               /// Provide key to store item offset in criteria.
+               /// </summary>
                public const string ITEM_OFFSET = "item_offset";
+               
+               /// <summary>
+               /// Provide key to store item count in criteria.
+               /// </summary>
                public const string ITEM_COUNT = "item_count";
 
                #endregion
@@ -902,6 +1176,12 @@
                /// 
                public event EventHandler View_Add;
 
+               /// <summary>
+               /// Handle click event by raising a View Add event 
+               /// and passing the list criteria.
+               /// </summary>
+               /// <param name="sender">Event source</param>
+               /// <param name="e">Runtime arguments</param>
                protected void add_Click(object sender, EventArgs e)
                {
                        if (View_Add != null)
@@ -911,6 +1191,10 @@
                        }
                }
 
+               /// <summary>
+               /// Provide an internal extension point for handling a selected 
item.
+               /// </summary>
+               /// <param name="index">Page index of item being 
selected</param>
                protected virtual void list_Item_Click(int index)
                {
                        // Override to provide implementation                   
@@ -919,7 +1203,6 @@
                /// <summary>
                /// Signal when an item is being saved.
                /// </summary>
-               /// 
                public event EventHandler View_Save;
 
                /// <summary>
@@ -938,7 +1221,6 @@
                /// </summary>
                /// <param name="sender">Event source</param>
                /// <param name="e">Runtime arguments</param>
-               /// 
                private void Page_Load(object sender, EventArgs e)
                {
                        DataGrid grid = Grid;
@@ -982,6 +1264,9 @@
 
                #region Templates
 
+               /// <summary>
+               /// Describe the fields needed to program a DataGrid column.
+               /// </summary>
                public interface IGridConfig
                {
                        string DataField { get; }
@@ -991,25 +1276,32 @@
                        bool HasTemplate { get; }
                }
 
+               /// <summary>
+               /// Implement IGridConfig.
+               /// </summary>
                public class GridConfig : IGridConfig
                {
                        /// <summary>
-                       /// Attribute name (required).
+                       /// Store attribute name for column (required).
                        /// </summary>
-                       /// 
                        private string _DataField;
 
+                       /// <summary>
+                       /// Provide attribute name for column (required).
+                       /// </summary>
                        public string DataField
                        {
                                get { return _DataField; }
                        }
 
                        /// <summary>
-                       /// Heading for this attribute (optional).
+                       /// Store heading for this column (optional).
                        /// </summary>
-                       /// 
                        private string _HeaderText;
 
+                       /// <summary>
+                       /// Provide heading for this column (optional).
+                       /// </summary>
                        public string HeaderText
                        {
                                get
@@ -1020,10 +1312,13 @@
                        }
 
                        /// <summary>
-                       /// Item template for this attribute (optional).
+                       /// Store item template for this column (optional).
                        /// </summary>
                        private ITemplate _ItemTemplate;
 
+                       /// <summary>
+                       /// Provide item template for this column (optional).
+                       /// </summary>
                        public ITemplate ItemTemplate
                        {
                                get { return _ItemTemplate; }
@@ -1031,10 +1326,13 @@
                        }
 
                        /// <summary>
-                       /// Edit template for this attribute (optional).
+                       /// Store edit template for this column (optional).
                        /// </summary>
                        private ITemplate _EditItemTemplate;
 
+                       /// <summary>
+                       /// Provide edit template for this column (optional).
+                       /// </summary>
                        public ITemplate EditItemTemplate
                        {
                                get { return _EditItemTemplate; }
@@ -1045,17 +1343,32 @@
                        // string SortFormat;
                        // ITemplate ItemFormat;
 
+                       /// <summary>
+                       /// Store whether attribute has a template. 
+                       /// </summary>
                        public bool HasTemplate
                        {
                                get { return (_ItemTemplate != null) || 
(_EditItemTemplate != null); }
                        }
 
+                       /// <summary>
+                       /// Construct a GridConfig from a data field and header 
test.
+                       /// </summary>
+                       /// <param name="dataField">The attribute name for this 
column</param>
+                       /// <param name="headerText">The header text for this 
column</param>
                        public GridConfig(string dataField, string headerText)
                        {
                                _DataField = dataField;
                                _HeaderText = headerText;
                        }
 
+                       /// <summary>
+                       /// Construct a GridConfig using all attributes.
+                       /// </summary>
+                       /// <param name="dataField">The attribute name for this 
column</param>
+                       /// <param name="headerText">The header text for this 
column</param>
+                       /// <param name="itemTemplate">The item template for 
this column</param>
+                       /// <param name="editItemTemplate">The edit template 
for this column</param>
                        public GridConfig(string dataField, string headerText, 
ITemplate itemTemplate, ITemplate editItemTemplate)
                        {
                                _DataField = dataField;
@@ -1065,11 +1378,22 @@
                        }
                }
 
-
+               /// <summary>
+               /// Add literal text to a DataGrid column.
+               /// </summary>
                public class LiteralTemplate : ITemplate
                {
+                       
+                       /// <summary>
+                       /// Store attribute name.
+                       /// </summary>
                        private string _DataField;
 
+                       /// <summary>
+                       /// Handle data binding event by setting control text 
to data field.
+                       /// </summary>
+                       /// <param name="sender"></param>
+                       /// <param name="e"></param>
                        private void OnDataBinding(object sender, EventArgs e)
                        {
                                Literal control;
@@ -1086,17 +1410,30 @@
                                container.Controls.Add(control);
                        }
 
+                       /// <summary>
+                       /// Construct instance from attribute name.
+                       /// </summary>
+                       /// <param name="dataField">Attribute name</param>
                        public LiteralTemplate(string dataField)
                        {
                                _DataField = dataField;
                        }
                }
 
+               /// <summary>
+               /// Configure a DataGrid column to display the selected value 
on the KeyValue list.
+               /// </summary>
                public class KeyValueTemplate : ITemplate
                {
                        private string _DataField;
                        private IKeyValueList _Control;
 
+                       /// <summary>
+                       /// Handle data binding events by extracting key and 
value, 
+                       /// and setting selected value to control text.
+                       /// </summary>
+                       /// <param name="sender">Event source</param>
+                       /// <param name="e">Runtime arguments</param>
                        private void OnDataBinding(object sender, EventArgs e)
                        {
                                Literal control;
@@ -1114,6 +1451,11 @@
                                container.Controls.Add(control);
                        }
 
+                       /// <summary>
+                       /// Construct instance from a datafield and the list.
+                       /// </summary>
+                       /// <param name="dataField">Attribute name</param>
+                       /// <param name="list">List of keyValue items</param>
                        public KeyValueTemplate(string dataField, IKeyValueList 
list)
                        {
                                _DataField = dataField;
@@ -1121,11 +1463,26 @@
                        }       
                }
 
+               /// <summary>
+               /// Present a drop down list control when editing a column.
+               /// </summary>
                public class DropDownListTemplate : ITemplate
                {
+                       /// <summary>
+                       /// Store attribute name.
+                       /// </summary>
                        private string _DataField;
+                       
+                       /// <summary>
+                       /// Store reference to the DropDownList control.
+                       /// </summary>
                        private DropDownList _Control;
 
+                       /// <summary>
+                       /// Scan list for an item matching value.
+                       /// </summary>
+                       /// <param name="control">The control to scan</param>
+                       /// <param name="value">The value to match</param>
                        private void SelectItem(ListControl control, string 
value)
                        {
                                if (value != null)
@@ -1143,6 +1500,11 @@
                                }
                        }
 
+                       /// <summary>
+                       /// Handle a data binding event by selecting the key 
row.
+                       /// </summary>
+                       /// <param name="sender"></param>
+                       /// <param name="e"></param>
                        private void OnDataBinding(object sender, EventArgs e)
                        {
                                DropDownList control;
@@ -1159,7 +1521,7 @@
                        private int _SelectedIndex;
 
                        /// <summary>
-                       /// Kludge method to set Selected Index.
+                       /// Provide a kludge method to set Selected Index.
                        /// </summary>
                        /// <remarks><p>
                        /// After setting the selected index on DataBinding, 
@@ -1181,6 +1543,10 @@
                                container.Controls.Add(_Control);
                        }
 
+                       /// <summary>
+                       /// Construct a DropDownListTempate from an id and 
datasource. 
+                       /// </summary>
+                       /// <param name="id">Data Field Name</param>
                        public DropDownListTemplate(string id, object 
dataSource)
                        {
                                _DataField = id;
@@ -1192,9 +1558,20 @@
                                _Control.PreRender += new 
EventHandler(OnPreRender);
                        }
 
+                       /// <summary>
+                       /// Construct a DropDownListTempate from an id and 
list. 
+                       /// </summary>
+                       /// <param name="id">Data Field Name</param>
+                       /// <param name="list">Items to list</param>
                        public DropDownListTemplate(string id, IKeyValueList 
list) : this(id,list,false)
                        {}
 
+                       /// <summary>
+                       /// Construct a DropDownListTempate from id, list, 
insertNullKey.
+                       /// </summary>
+                       /// <param name="id">Data Field Name</param>
+                       /// <param name="list">Items to list</param>
+                       /// <param name="insertNullKey">Whether to prepend a 
-v- item to the list</param>
                        public DropDownListTemplate(string id, IKeyValueList 
list, bool insertNullKey)
                        {
                                        if (insertNullKey) 
@@ -1279,4 +1656,4 @@
        
        
         */
-}
\ No newline at end of file
+}

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs?view=diff&rev=480626&r1=480625&r2=480626
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs Wed Nov 29 
08:55:40 2006
@@ -12,6 +12,13 @@
        /// <summary>
        /// Base class for view controls (sub forms).
        /// </summary>
+       /// <remarks>
+       /// ViewControl can read and bind controls, 
+       /// and provides access methods for helper and message resources  
+       /// </remarks>
+       /// 
+       /// 
+       /// 
        public class ViewControl : UserControl, IViewControl
        {
                private IRequestCatalog _Catalog;


Reply via email to