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/28 01:12:55 UTC

svn commit: r202093 - in /struts/sandbox/trunk/overdrive/Nexus: Core/Tokens.cs Extras/Extras.csproj Extras/Spring/FieldContext.cs Web/BaseGridPage.aspx.cs Web/Messages.resx

Author: husted
Date: Mon Jun 27 16:12:53 2005
New Revision: 202093

URL: http://svn.apache.org/viewcvs?rev=202093&view=rev
Log:
OVR-12
OVR-15
* Add alternative FieldContext implements to Extra.Spring that utilizes the message source. 
* Conform control names.

Added:
    struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldContext.cs
Modified:
    struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs
    struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj
    struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/Messages.resx

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs?rev=202093&r1=202092&r2=202093&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs Mon Jun 27 16:12:53 2005
@@ -220,13 +220,26 @@
 
 		#region Hint IDs
 
-		public const string HINT_EDIT = "Hint_Edit";
+		/// <summary>
+		///  Token for Edit hint.
+		/// </summary>
+		public const string HINT_EDIT = "hint_edit";
 
-		public const string HINT_SUCCESS_ADD = "Hint_Success_Add";
+		/// <summary>
+		///  Token for Add Succeess hint.
+		/// </summary>
+		public const string HINT_SUCCESS_ADD = "hint_success_add";
 
-		public const string HINT_SUCCESS_EDIT = "Hint_Success_Edit";
+		/// <summary>
+		///  Token for Edit Success hint.
+		/// </summary>
+		public const string HINT_SUCCESS_EDIT = "hint_success_edit";
+
+		/// <summary>
+		/// Token for Quit Success hint.
+		/// </summary>
+		public const string HINT_SUCCESS_QUIT = "hint_success_quit";
 
-		public const string HINT_SUCCESS_QUIT = "Hint_Success_Quit";
 		#endregion
 	}
 }

Modified: struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj?rev=202093&r1=202092&r2=202093&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Extras/Extras.csproj Mon Jun 27 16:12:53 2005
@@ -109,6 +109,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "Spring\FieldContext.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "Spring\Objects.cs"
                     SubType = "Code"
                     BuildAction = "Compile"

Added: struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldContext.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldContext.cs?rev=202093&view=auto
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldContext.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/FieldContext.cs Mon Jun 27 16:12:53 2005
@@ -0,0 +1,139 @@
+using System;
+using Agility.Core;
+using Nexus.Core;
+using Nexus.Core.Tables;
+using Spring.Context;
+
+namespace Nexus.Extras.Spring
+{
+	/// <summary>
+	/// Concrete IFieldContext implementation that uses Spring MessageSource to resolve text .
+	/// </summary>
+	/// <remarks><p>
+	/// This implementation *requires* that a Spring MessageSource be exposed to each the FieldContext member. 
+	/// The simplest way to do that is by using a base FieldContext in the Spring configuration file. 
+	/// The MessageSource property can be set once in the base and inherited by the others. 
+	/// </p><p>
+	/// In this implementation, the text properties -- Alert, Hint, Help, and Label -- are read-only 
+	/// and cannot be accessed with a MessageSource property. 
+	/// When the property is read, 
+	/// the method loods for a message resource that shares the same  ID as the FieldContext,
+	/// but with a "_property" suffix (_alert, _hint, _help, _label). 
+	/// So, if the FieldContext ID is LastName, then reading its Alert will look for a message 
+	/// resource named "LastName_alert". 
+	/// If the resource is not found, 
+	/// then the FieldContext ID (e.g. "LastName") is quietly returned instead. 
+	/// </p></remarks>
+	[Serializable]
+	public class FieldContext : Context, IFieldContext
+	{
+		public FieldContext () : base ()
+		{
+			ControlTypeName = Tokens.CONTROL_INPUT; // Default
+		}
+
+		public string ControlTypeName
+		{
+			get { return this [Tokens.ControlTypeName] as string; }
+			set { this [Tokens.ControlTypeName] = value; }
+		}
+
+		public string DataFormat
+		{
+			get { return this [Tokens.DataFormat] as string; }
+			set { this [Tokens.DataFormat] = value; }
+		}
+
+		public string ID
+		{
+			get { return this [Tokens.ID] as string; }
+			set { this [Tokens.ID] = value; }
+		}
+		public string ProcessorID
+		{
+			get { return this [Tokens.DataTypeID] as string; }
+			set { this [Tokens.DataTypeID] = value; }
+		}
+
+		#region text properties
+
+		private IMessageSource _MessageSource;
+		/// <summary>
+		/// Identify the message source for this FieldContext.
+		/// </summary>
+		/// <exception cref="System.InvalidOperationException">
+		/// If the context has not been initialized yet.
+		/// </exception>
+		public IMessageSource MessageSource
+		{
+			get{ return _MessageSource; }
+			set{ _MessageSource = value; }
+		}
+
+		/// <summary>
+		/// Resolve the message.
+		/// </summary>
+		/// <param name="name">The name of the resource to get.</param>
+		/// <returns>
+		/// The resolved message if the lookup was successful. Otherwise, it either throws
+		/// an exception or returns the resource name, depending on the implementation.
+		/// </returns>
+		private string GetMessage(string name)
+		{
+			return MessageSource.GetMessage(name);
+		}
+
+		/// <summary>
+		/// Resolve the message or return null.
+		/// </summary>
+		/// <param name="name">The name of the resource to get.</param>
+		/// <param name="defaultValue">The value to return on error.</param>
+		/// <returns>A resolved message or the defaultValue if the message could not be located for any reason.</returns>
+		private string GetMessageOrDefault(string name, string defaultValue)
+		{
+			string _name = null;
+			try
+			{
+				_name = GetMessage(name);
+			}
+			catch (Exception e)
+			{
+				e = e; // silly assignment
+				_name = defaultValue;
+			}
+			return _name;
+		}
+
+		private string GetText(string root, string suffix)
+		{
+			return GetMessageOrDefault(root + suffix, root);
+		}
+
+		public string Alert
+		{
+			get { return GetText(this.ID,"_alert"); }
+			set { throw new NotSupportedException(); }
+		}
+
+		public string Hint
+		{
+			get { return GetText(this.ID,"_hint"); }
+			set { throw new NotSupportedException(); }
+		}
+
+		public string Help
+		{
+			get { return GetText(this.ID,"_help"); }
+			set { throw new NotSupportedException(); }
+		}
+
+		public string Label
+		{
+			get { return GetText(this.ID,"_label"); }
+			set { throw new NotSupportedException(); }
+		}
+
+		#endregion
+
+	}
+}
\ 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=202093&r1=202092&r2=202093&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/BaseGridPage.aspx.cs Mon Jun 27 16:12:53 2005
@@ -19,10 +19,10 @@
 	/// GridViewHelper is abstract, and you need to implement your own NewEntryList method. 
 	/// </p><p>
 	/// The ASPX page needs to provide 
-	/// * pnlError
-	/// * pnlList
-	/// * repList
-	/// * cmdAddList
+	/// * error_panel
+	/// * list_panel
+	/// * list_report
+	/// * list_add_Command
 	/// </p>
 	/// <p>
 	/// If a Find dialog is provided, the implementing code behind can override 
@@ -138,7 +138,7 @@
 			set
 			{
 				ViewState [LIST_ITEM_INDEX] = value;
-				if (repList != null) repList.EditItemIndex = value;
+				if (list_report != null) list_report.EditItemIndex = value;
 			}
 		}
 
@@ -175,7 +175,7 @@
 			set
 			{
 				ViewState [LIST_INSERT_KEY] = value;
-				cmdListAdd.Visible = !value;
+				list_add_command.Visible = !value;
 			}
 		}
 
@@ -226,17 +226,17 @@
 		/// <summary>
 		/// Group List controls.
 		/// </summary>
-		protected Panel pnlList;
+		protected Panel list_panel;
 
 		/// <summary>
 		/// Render the list as a DataGrid.
 		/// </summary>
-		protected DataGrid repList;
+		protected DataGrid list_report;
 
 		/// <summary>
 		/// Invoke display for adding a new entry.
 		/// </summary>
-		protected Button cmdListAdd;
+		protected Button list_add_command;
 
 		#endregion
 
@@ -249,16 +249,16 @@
 		protected virtual bool List_Load ()
 		{
 			IGridViewHelper h = GridHelper;
-			bool okay = h.Load (repList, List_Criteria);
+			bool okay = h.Load (list_report, List_Criteria);
 			if (okay)
 			{
 				// Template_Load(h.TitleText,h.HeadingText,h.PromptText);
 				// cmdListAdd.Text = msg_ADD_COMMAND;
-				pnlList.Visible = true;
+				list_panel.Visible = true;
 			}
 			else
 			{
-				pnlList.Visible = false;
+				list_panel.Visible = false;
 				Page_Error = h.ListHelper;
 			}
 			return okay;
@@ -327,7 +327,7 @@
 			bool okay = h.Save (key, controls);
 			if (okay)
 			{
-				okay = h.List (repList);
+				okay = h.List (list_report);
 				Page_Prompt = (List_Insert) ? GetMessage(Tokens.HINT_SUCCESS_ADD) : GetMessage(Tokens.HINT_SUCCESS_EDIT);
 				List_Insert = false;
 				List_ItemIndex = -1;
@@ -342,8 +342,8 @@
 		protected virtual void List_Refresh ()
 		{
 			IGridViewHelper h = GridHelper;
-			h.DataBind (repList);
-			pnlList.Visible = true;
+			h.DataBind (list_report);
+			list_panel.Visible = true;
 		}
 
 		/// <summary>
@@ -353,13 +353,13 @@
 		protected virtual void List_Add_Load ()
 		{
 			IGridViewHelper h = GridHelper;
-			bool okay = h.DataInsert (repList);
+			bool okay = h.DataInsert (list_report);
 			if (okay)
 			{
 				Page_Prompt = GetMessage(Tokens.HINT_EDIT);
 				List_Insert = true;
 				List_ItemIndex = 0;
-				pnlList.Visible = true;
+				list_panel.Visible = true;
 			}
 			else Page_Error = h.ListHelper;
 		}
@@ -374,8 +374,8 @@
 		/// </p></remarks>
 		protected void List_ResetIndex ()
 		{
-			repList.SelectedIndex = 0;
-			repList.CurrentPageIndex = 0; // sic
+			list_report.SelectedIndex = 0;
+			list_report.CurrentPageIndex = 0; // sic
 		}
 
 		#endregion
@@ -389,14 +389,14 @@
 		/// </summary>
 		private void List_Init ()
 		{
-			repList.AutoGenerateColumns = false;
-			repList.EditItemIndex = List_ItemIndex;
-			repList.CancelCommand += new DataGridCommandEventHandler (this.List_Quit);
-			repList.EditCommand += new DataGridCommandEventHandler (this.List_Edit);
-			repList.UpdateCommand += new DataGridCommandEventHandler (this.List_Save);
-			repList.ItemCommand += new DataGridCommandEventHandler (this.List_Item);
-			repList.PageIndexChanged += new DataGridPageChangedEventHandler (this.List_PageIndexChanged);
-			cmdListAdd.Click += new EventHandler (this.List_Add);
+			list_report.AutoGenerateColumns = false;
+			list_report.EditItemIndex = List_ItemIndex;
+			list_report.CancelCommand += new DataGridCommandEventHandler (this.List_Quit);
+			list_report.EditCommand += new DataGridCommandEventHandler (this.List_Edit);
+			list_report.UpdateCommand += new DataGridCommandEventHandler (this.List_Save);
+			list_report.ItemCommand += new DataGridCommandEventHandler (this.List_Item);
+			list_report.PageIndexChanged += new DataGridPageChangedEventHandler (this.List_PageIndexChanged);
+			list_add_command.Click += new EventHandler (this.List_Add);
 		}
 
 		// postback events
@@ -419,8 +419,8 @@
 		protected void List_Save (object source, DataGridCommandEventArgs e)
 		{
 			IGridViewHelper h = GridHelper;
-			string key = (List_Insert) ? null : h.GetDataKey (e, repList);
-			ICollection controls = h.GetControls (e, repList);
+			string key = (List_Insert) ? null : h.GetDataKey (e, list_report);
+			ICollection controls = h.GetControls (e, list_report);
 			List_Save (key, controls);
 		}
 
@@ -462,7 +462,7 @@
 		/// <param name="e"></param>
 		protected void List_PageIndexChanged (object sender, DataGridPageChangedEventArgs e)
 		{
-			repList.CurrentPageIndex = e.NewPageIndex;
+			list_report.CurrentPageIndex = e.NewPageIndex;
 			List_Refresh ();
 		}
 
@@ -485,7 +485,7 @@
 
 			if (!IsPostBack)
 			{
-				pnlList.Visible = false;				
+				list_panel.Visible = false;				
 			}
 		}
 
@@ -503,7 +503,7 @@
 				Find_Load ();
 			}
 
-			if (pnlList.Visible)
+			if (list_panel.Visible)
 				List_Load ();
 		}
 
@@ -514,7 +514,7 @@
 		/// <param name="e">Event</param>
 		protected virtual void Page_PreRender(object sender, EventArgs e)
 		{
-			cmdListAdd.Text = GetMessage("cmdListAdd.Text");
+			list_add_command.Text = GetMessage(list_add_command.ID);
 		}
 
 		#endregion

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/Messages.resx
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/Messages.resx?rev=202093&r1=202092&r2=202093&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/Messages.resx (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/Messages.resx Mon Jun 27 16:12:53 2005
@@ -40,24 +40,24 @@
 		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
 	</resheader>
 	
-  <data name="Hint_Edit">
+  <data name="hint_edit">
 	<value>Edit entry, press SAVE. </value>
   </data>
   
-  <data name="Hint_Success_Add">
+  <data name="hint_success_add">
     <value>Item added. </value>
   </data>
 	
-  <data name="Hint_Success_Edit">
+  <data name="hint_success_edit">
     <value>Changes saved. </value>
   </data>
   
-  <data name="Hint_Success_Quit">
+  <data name="hint_success_quit">
 	<value>Change cancelled.  </value>
   </data>
 	
-  <data name="cmdListAdd.Text">
+  <data name="list_add_command">
     <value>ADD ITEM</value>
   </data>
-	
+  	
 </root>



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