You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/11/20 22:57:39 UTC

svn commit: r596837 - in /tapestry/tapestry4/trunk: tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/ tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/ tapestry-contrib/src/java/org/apache/tapestry/c...

Author: jkuhnert
Date: Tue Nov 20 13:57:38 2007
New Revision: 596837

URL: http://svn.apache.org/viewvc?rev=596837&view=rev
Log:
Fixes TAPESTRY-234,  more cleanly for everyone this time.

Modified:
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/TableColumns.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnComponent.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/common/AbstractTableColumn.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumnModel.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableValueRendererSource.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SimpleSqlTableDataSource.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SqlTableColumn.java
    tapestry/tapestry4/trunk/tapestry-contrib/src/test/org/apache/tapestry/contrib/table/model/simple/TestSimpleTableColumn.java
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.html
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.jwc
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.properties

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/TableColumns.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/TableColumns.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/TableColumns.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/TableColumns.java Tue Nov 20 13:57:38 2007
@@ -14,8 +14,6 @@
 
 package org.apache.tapestry.contrib.table.components;
 
-import java.util.Iterator;
-
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IMarkupWriter;
 import org.apache.tapestry.IRender;
@@ -23,6 +21,8 @@
 import org.apache.tapestry.contrib.table.model.ITableColumn;
 import org.apache.tapestry.contrib.table.model.ITableColumnModel;
 
+import java.util.Iterator;
+
 /**
  * A low level Table component that renders the column headers in the table.
  * This component must be wrapped by
@@ -82,7 +82,8 @@
     {
         m_objTableColumn = tableColumn;
 
-        if (isParameterBound("column")) setColumn(tableColumn);
+        if (isParameterBound("column"))
+            setColumn(tableColumn);
     }
 
     /**
@@ -92,8 +93,8 @@
      */
     public Iterator getTableColumnIterator()
     {
-        ITableColumnModel objColumnModel = getTableModelSource()
-                .getTableModel().getColumnModel();
+        ITableColumnModel objColumnModel = getTableModelSource() .getTableModel().getColumnModel();
+        
         return objColumnModel.getColumns();
     }
 
@@ -105,8 +106,7 @@
      */
     public IRender getTableColumnRenderer()
     {
-        return getTableColumn().getColumnRenderer(getPage().getRequestCycle(),
-                getTableModelSource());
+        return getTableColumn().getColumnRenderer(getPage().getRequestCycle(), getTableModelSource());
     }
 
     public abstract String getColumnClassParameter();
@@ -120,7 +120,8 @@
      */
     public String getColumnClass()
     {
-        if (isParameterBound("class")) return getColumnClassParameter();
+        if (isParameterBound("class"))
+            return getColumnClassParameter();
 
         return getTableColumn().getColumnName() + TABLE_COLUMN_CSS_CLASS_SUFFIX;
     }
@@ -132,15 +133,12 @@
     protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
     {
         Object oldValueUp = cycle.getAttribute(TABLE_COLUMN_ARROW_UP_ATTRIBUTE);
-        Object oldValueDown = cycle
-                .getAttribute(TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
+        Object oldValueDown = cycle.getAttribute(TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
 
         try
         {
-            cycle.setAttribute(TABLE_COLUMN_ARROW_UP_ATTRIBUTE,
-                    getArrowUpAsset());
-            cycle.setAttribute(TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE,
-                    getArrowDownAsset());
+            cycle.setAttribute(TABLE_COLUMN_ARROW_UP_ATTRIBUTE, getArrowUpAsset());
+            cycle.setAttribute(TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE, getArrowDownAsset());
 
             super.renderComponent(writer, cycle);
         }

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnComponent.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnComponent.java Tue Nov 20 13:57:38 2007
@@ -18,11 +18,7 @@
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.contrib.table.components.TableColumns;
-import org.apache.tapestry.contrib.table.model.ITableColumn;
-import org.apache.tapestry.contrib.table.model.ITableModel;
-import org.apache.tapestry.contrib.table.model.ITableModelSource;
-import org.apache.tapestry.contrib.table.model.ITableRendererListener;
-import org.apache.tapestry.contrib.table.model.ITableSortingState;
+import org.apache.tapestry.contrib.table.model.*;
 import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
 import org.apache.tapestry.event.PageDetachListener;
 import org.apache.tapestry.event.PageEvent;
@@ -33,7 +29,7 @@
  * sortable, it renders the header as a link. Clicking on the link causes the
  * table to be sorted on that column. Clicking on the link again causes the
  * sorting order to be reversed.
- * 
+ *
  * @author mindbridge
  */
 public abstract class SimpleTableColumnComponent extends BaseComponent
@@ -67,8 +63,8 @@
      * @see org.apache.tapestry.contrib.table.model.ITableRendererListener#initializeRenderer(IRequestCycle,
      *      ITableModelSource, ITableColumn, Object)
      */
-    public void initializeRenderer(IRequestCycle objCycle,
-            ITableModelSource objSource, ITableColumn objColumn, Object objRow)
+    public void initializeRenderer(IRequestCycle objCycle, ITableModelSource objSource,
+                                   ITableColumn objColumn, Object objRow)
     {
         m_objModelSource = objSource;
         m_objColumn = objColumn;
@@ -89,8 +85,10 @@
         if (m_objColumn instanceof SimpleTableColumn)
         {
             SimpleTableColumn objSimpleColumn = (SimpleTableColumn) m_objColumn;
+
             return objSimpleColumn.getDisplayName();
         }
+        
         return m_objColumn.getColumnName();
     }
 
@@ -98,6 +96,7 @@
     {
         ITableSortingState objSortingState = getTableModel().getSortingState();
         String strSortColumn = objSortingState.getSortColumn();
+        
         return m_objColumn.getColumnName().equals(strSortColumn);
     }
 
@@ -107,17 +106,20 @@
 
         IRequestCycle objCycle = getPage().getRequestCycle();
         ITableSortingState objSortingState = getTableModel().getSortingState();
+        
         if (objSortingState.getSortOrder() == ITableSortingState.SORT_ASCENDING)
         {
-            objImageAsset = (IAsset) objCycle
-                    .getAttribute(TableColumns.TABLE_COLUMN_ARROW_UP_ATTRIBUTE);
-            if (objImageAsset == null) objImageAsset = getAsset("sortUp");
+            objImageAsset = (IAsset) objCycle.getAttribute(TableColumns.TABLE_COLUMN_ARROW_UP_ATTRIBUTE);
+            
+            if (objImageAsset == null)
+                objImageAsset = getAsset("sortUp");
         }
         else
         {
-            objImageAsset = (IAsset) objCycle
-                    .getAttribute(TableColumns.TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
-            if (objImageAsset == null) objImageAsset = getAsset("sortDown");
+            objImageAsset = (IAsset) objCycle.getAttribute(TableColumns.TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
+
+            if (objImageAsset == null)
+                objImageAsset = getAsset("sortDown");
         }
 
         return objImageAsset;
@@ -125,8 +127,10 @@
 
     public Object[] getColumnSelectedParameters()
     {
-        return new Object[] { new ComponentAddress(m_objModelSource),
-                m_objColumn.getColumnName() };
+        return new Object[] {
+                new ComponentAddress(m_objModelSource),
+                m_objColumn.getColumnName()
+        };
     }
 
     public void columnSelected(IRequestCycle objCycle)

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnFormComponent.java Tue Nov 20 13:57:38 2007
@@ -18,11 +18,7 @@
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.contrib.table.components.TableColumns;
-import org.apache.tapestry.contrib.table.model.ITableColumn;
-import org.apache.tapestry.contrib.table.model.ITableModel;
-import org.apache.tapestry.contrib.table.model.ITableModelSource;
-import org.apache.tapestry.contrib.table.model.ITableRendererListener;
-import org.apache.tapestry.contrib.table.model.ITableSortingState;
+import org.apache.tapestry.contrib.table.model.*;
 import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
 
 /**
@@ -53,8 +49,8 @@
      * @see org.apache.tapestry.contrib.table.model.ITableRendererListener#initializeRenderer(IRequestCycle,
      *      ITableModelSource, ITableColumn, Object)
      */
-    public void initializeRenderer(IRequestCycle objCycle,
-            ITableModelSource objSource, ITableColumn objColumn, Object objRow)
+    public void initializeRenderer(IRequestCycle objCycle, ITableModelSource objSource,
+                                   ITableColumn objColumn, Object objRow)
     {
         setTableModelSource(objSource);
         setTableColumn(objColumn);
@@ -77,8 +73,10 @@
         if (objColumn instanceof SimpleTableColumn)
         {
             SimpleTableColumn objSimpleColumn = (SimpleTableColumn) objColumn;
+
             return objSimpleColumn.getDisplayName();
         }
+        
         return objColumn.getColumnName();
     }
 
@@ -95,17 +93,20 @@
 
         IRequestCycle objCycle = getPage().getRequestCycle();
         ITableSortingState objSortingState = getTableModel().getSortingState();
+        
         if (objSortingState.getSortOrder() == ITableSortingState.SORT_ASCENDING)
         {
-            objImageAsset = (IAsset) objCycle
-                    .getAttribute(TableColumns.TABLE_COLUMN_ARROW_UP_ATTRIBUTE);
-            if (objImageAsset == null) objImageAsset = getAsset("sortUp");
+            objImageAsset = (IAsset) objCycle.getAttribute(TableColumns.TABLE_COLUMN_ARROW_UP_ATTRIBUTE);
+
+            if (objImageAsset == null)
+                objImageAsset = getAsset("sortUp");
         }
         else
         {
-            objImageAsset = (IAsset) objCycle
-                    .getAttribute(TableColumns.TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
-            if (objImageAsset == null) objImageAsset = getAsset("sortDown");
+            objImageAsset = (IAsset) objCycle.getAttribute(TableColumns.TABLE_COLUMN_ARROW_DOWN_ATTRIBUTE);
+
+            if (objImageAsset == null)
+                objImageAsset = getAsset("sortDown");
         }
 
         return objImageAsset;
@@ -115,6 +116,7 @@
     {
         String strColumnName = getSelectedColumnName();
         ITableModelSource objSource = getTableModelSource();
+        
         objSource.storeTableAction(new TableActionColumnSort(strColumnName));
     }
 

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/components/inserted/SimpleTableColumnSortLink.java Tue Nov 20 13:57:38 2007
@@ -28,8 +28,8 @@
 /**
  * A component that renders a sorting link - to be used with contrib:Table when 
  * customizing a column's header.
- * 
- * 
+ *
+ *
  * @author andyhot
  */
 public abstract class SimpleTableColumnSortLink extends BaseComponent
@@ -45,7 +45,7 @@
     }
 
     public abstract Table getTable();
-    
+
     /**
      * @see org.apache.tapestry.event.PageDetachListener#pageDetached(PageEvent)
      */
@@ -59,21 +59,22 @@
         m_objColumn = null;
         m_objModelSource = null;
     }
-    
-     public void prepareForRender(IRequestCycle cycle)
-     {
-         if (getTable()==null)
+
+    public void prepareForRender(IRequestCycle cycle)
+    {
+        if (getTable()==null)
             throw Tapestry.createRequiredParameterException(this, "table");
-         m_objModelSource = getTable();
-         m_objColumn = getTable().getTableColumn();         
-     }
+        
+        m_objModelSource = getTable();
+        m_objColumn = getTable().getTableColumn();
+    }
 
     /**
      * @see org.apache.tapestry.contrib.table.model.ITableRendererListener#initializeRenderer(IRequestCycle,
      *      ITableModelSource, ITableColumn, Object)
      */
-    public void initializeRenderer(IRequestCycle objCycle,
-            ITableModelSource objSource, ITableColumn objColumn, Object objRow)
+    public void initializeRenderer(IRequestCycle objCycle, ITableModelSource objSource,
+                                   ITableColumn objColumn, Object objRow)
     {
         m_objModelSource = objSource;
         m_objColumn = objColumn;
@@ -81,8 +82,10 @@
 
     public Object[] getColumnSelectedParameters()
     {
-        return new Object[] { new ComponentAddress(m_objModelSource),
-                m_objColumn.getColumnName() };
+        return new Object[] {
+                new ComponentAddress(m_objModelSource),
+                m_objColumn.getColumnName()
+        };
     }
 
     public void columnSelected(IRequestCycle objCycle)
@@ -91,9 +94,8 @@
         ComponentAddress objAddr = (ComponentAddress) arrArgs[0];
         String strColumnName = (String) arrArgs[1];
 
-        ITableModelSource objSource = (ITableModelSource) objAddr
-                .findComponent(objCycle);
+        ITableModelSource objSource = (ITableModelSource) objAddr.findComponent(objCycle);
+        
         objSource.storeTableAction(new TableActionColumnSort(strColumnName));
     }
-
 }

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/common/AbstractTableColumn.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/common/AbstractTableColumn.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/common/AbstractTableColumn.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/common/AbstractTableColumn.java Tue Nov 20 13:57:38 2007
@@ -97,9 +97,6 @@
      */
     public void setColumnName(String columnName)
     {
-        if (columnName != null)
-            columnName = columnName.replace('.', '_');
-        
         m_strColumnName = columnName;
     }
 
@@ -193,8 +190,7 @@
      * @param columnRendererSource
      *            The columnRendererSource to set
      */
-    public void setColumnRendererSource(
-      ITableRendererSource columnRendererSource)
+    public void setColumnRendererSource(ITableRendererSource columnRendererSource)
     {
         m_objColumnRendererSource = columnRendererSource;
     }
@@ -226,32 +222,50 @@
      * columns if necessary.
      *
      * @param container
-     *            the component from which to get the settings
+     *            The component from which to get the settings.
      */
     public void loadSettings(IComponent container)
     {
+        String columnName = getColumnName();
+        
         IComponent objColumnRendererSource =
-          (IComponent) container.getComponents().get(getColumnName() + COLUMN_RENDERER_BLOCK_SUFFIX);
+                (IComponent) container.getComponents().get(columnName + COLUMN_RENDERER_BLOCK_SUFFIX);
+
+        if (objColumnRendererSource == null && columnName.indexOf(".") > -1)
+        {
+            columnName = columnName.replace('.', '_');
+            
+            objColumnRendererSource =
+                (IComponent) container.getComponents().get(columnName + COLUMN_RENDERER_BLOCK_SUFFIX);
+        }
 
         if (objColumnRendererSource == null)
+        {
             objColumnRendererSource = (IComponent) container.getComponents().get(COLUMN_RENDERER_BLOCK_SUFFIX);
+        }
 
-        if (objColumnRendererSource != null
-            && objColumnRendererSource instanceof Block)
+        if (objColumnRendererSource != null && objColumnRendererSource instanceof Block)
         {
             setColumnRendererSource(new BlockTableRendererSource((Block) objColumnRendererSource));
         }
 
         IComponent objValueRendererSource =
-          (IComponent) container.getComponents().get(getColumnName() + VALUE_RENDERER_BLOCK_SUFFIX);
+                (IComponent) container.getComponents().get(columnName + VALUE_RENDERER_BLOCK_SUFFIX);
+
+        if (objValueRendererSource == null && columnName.indexOf(".") > -1)
+        {
+            columnName = columnName.replace('.', '_');
+
+            objValueRendererSource =
+                (IComponent) container.getComponents().get(columnName + VALUE_RENDERER_BLOCK_SUFFIX);
+        }
 
         if (objValueRendererSource == null)
         {
             objValueRendererSource = (IComponent) container.getComponents().get(VALUE_RENDERER_BLOCK_SUFFIX);
         }
 
-        if (objValueRendererSource != null
-            && objValueRendererSource instanceof Block)
+        if (objValueRendererSource != null && objValueRendererSource instanceof Block)
         {
             setValueRendererSource(new BlockTableRendererSource((Block) objValueRendererSource));
         }

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumn.java Tue Nov 20 13:57:38 2007
@@ -25,7 +25,7 @@
  * A simple minimal implementation of the
  * {@link org.apache.tapestry.contrib.table.model.ITableColumn}interface that
  * provides all the basic services for displaying a column.
- * 
+ *
  * @author mindbridge
  */
 public class SimpleTableColumn extends AbstractTableColumn
@@ -41,14 +41,14 @@
     public static final ITableRendererSource DEFAULT_VALUE_RENDERER_SOURCE = new SimpleTableValueRendererSource();
 
     private static final long serialVersionUID = 1L;
-    
+
     private String m_strDisplayName;
 
     private ITableColumnEvaluator m_objEvaluator;
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name and display name of the column
      */
@@ -59,7 +59,7 @@
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name and display name of the column
      * @param bSortable
@@ -72,7 +72,7 @@
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name and display name of the column
      * @param bSortable
@@ -81,14 +81,14 @@
      *            the evaluator to extract the column value from the row
      */
     public SimpleTableColumn(String strColumnName,
-            ITableColumnEvaluator objEvaluator, boolean bSortable)
+                             ITableColumnEvaluator objEvaluator, boolean bSortable)
     {
         this(strColumnName, strColumnName, objEvaluator, bSortable);
     }
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name of the column
      * @param strDisplayName
@@ -101,7 +101,7 @@
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name of the column
      * @param strDisplayName
@@ -110,14 +110,14 @@
      *            whether the column is sortable
      */
     public SimpleTableColumn(String strColumnName, String strDisplayName,
-            boolean bSortable)
+                             boolean bSortable)
     {
         this(strColumnName, strDisplayName, null, bSortable);
     }
 
     /**
      * Creates a SimpleTableColumn.
-     * 
+     *
      * @param strColumnName
      *            the identifying name of the column
      * @param strDisplayName
@@ -128,9 +128,10 @@
      *            the evaluator to extract the column value from the row
      */
     public SimpleTableColumn(String strColumnName, String strDisplayName,
-            ITableColumnEvaluator objEvaluator, boolean bSortable)
+                             ITableColumnEvaluator objEvaluator, boolean bSortable)
     {
         super(strColumnName, bSortable, null);
+
         setComparator(new DefaultTableComparator());
         setDisplayName(strDisplayName);
         setColumnRendererSource(DEFAULT_COLUMN_RENDERER_SOURCE);
@@ -141,7 +142,7 @@
     /**
      * Returns the display name of the column that will be used in the table
      * header. Override for internationalization.
-     * 
+     *
      * @return String the display name of the column
      */
     public String getDisplayName()
@@ -151,21 +152,18 @@
 
     /**
      * Sets the displayName.
-     * 
+     *
      * @param displayName
      *            The displayName to set
      */
     public void setDisplayName(String displayName)
     {
-        if (displayName != null)
-            displayName = displayName.replace('_', '.');
-        
         m_strDisplayName = displayName;
     }
 
     /**
      * Returns the evaluator.
-     * 
+     *
      * @return ITableColumnEvaluator
      */
     public ITableColumnEvaluator getEvaluator()
@@ -175,7 +173,7 @@
 
     /**
      * Sets the evaluator.
-     * 
+     *
      * @param evaluator
      *            The evaluator to set
      */
@@ -190,7 +188,7 @@
      * This method allows easier use of standard comparators for sorting the
      * column. It simply wraps the provided comparator with a row-to-column
      * convertor and invokes the setComparator() method.
-     * 
+     *
      * @param comparator
      *            The column value comparator
      */
@@ -201,7 +199,7 @@
 
     /**
      * Extracts the value of the column from the row object.
-     * 
+     *
      * @param objRow
      *            the row object
      * @return Object the column value
@@ -209,6 +207,7 @@
     public Object getColumnValue(Object objRow)
     {
         ITableColumnEvaluator objEvaluator = getEvaluator();
+        
         if (objEvaluator != null)
             return objEvaluator.getColumnValue(this, objRow);
 
@@ -219,7 +218,7 @@
     /**
      * Use the column name to get the display name, as well as the column and
      * value renderer sources from the provided component.
-     * 
+     *
      * @param objSettingsContainer
      *            the component from which to get the settings
      */
@@ -241,7 +240,7 @@
     }
 
     /**
-     * 
+     *
      * @author mb
      */
     public class DefaultTableComparator implements Comparator, Serializable

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumnModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumnModel.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumnModel.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableColumnModel.java Tue Nov 20 13:57:38 2007
@@ -14,16 +14,16 @@
 
 package org.apache.tapestry.contrib.table.model.simple;
 
+import org.apache.tapestry.contrib.table.model.ITableColumn;
+import org.apache.tapestry.contrib.table.model.ITableColumnModel;
+import org.apache.tapestry.contrib.table.model.common.ArrayIterator;
+
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.tapestry.contrib.table.model.ITableColumn;
-import org.apache.tapestry.contrib.table.model.ITableColumnModel;
-import org.apache.tapestry.contrib.table.model.common.ArrayIterator;
-
 /**
  * A minimal implementation of the
  * {@link org.apache.tapestry.contrib.table.model.ITableColumnModel} interface
@@ -33,7 +33,6 @@
  */
 public class SimpleTableColumnModel implements ITableColumnModel, Serializable
 {
-
     private static final long serialVersionUID = 1L;
 
     private ITableColumn[] m_arrColumns;
@@ -42,16 +41,17 @@
     public SimpleTableColumnModel(ITableColumn[] arrColumns)
     {
         m_arrColumns = arrColumns;
-
         m_mapColumns = new HashMap();
+
         for(int i = 0; i < m_arrColumns.length; i++)
+        {
             m_mapColumns.put(m_arrColumns[i].getColumnName(), m_arrColumns[i]);
+        }
     }
 
     public SimpleTableColumnModel(List arrColumns)
     {
-        this((ITableColumn[]) arrColumns.toArray(new ITableColumn[arrColumns
-                .size()]));
+        this((ITableColumn[]) arrColumns.toArray(new ITableColumn[arrColumns.size()]));
     }
 
     public int getColumnCount()
@@ -66,6 +66,7 @@
             // error message
             return null;
         }
+        
         return m_arrColumns[nColumn];
     }
 
@@ -78,5 +79,4 @@
     {
         return new ArrayIterator(m_arrColumns);
     }
-
 }

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableValueRendererSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableValueRendererSource.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableValueRendererSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/simple/SimpleTableValueRendererSource.java Tue Nov 20 13:57:38 2007
@@ -33,7 +33,6 @@
  */
 public class SimpleTableValueRendererSource implements ITableRendererSource
 {
-
     private static final long serialVersionUID = 1L;
 
     /**

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SimpleSqlTableDataSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SimpleSqlTableDataSource.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SimpleSqlTableDataSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SimpleSqlTableDataSource.java Tue Nov 20 13:57:38 2007
@@ -14,17 +14,17 @@
 
 package org.apache.tapestry.contrib.table.model.sql;
 
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.tapestry.contrib.table.model.ITablePagingState;
 import org.apache.tapestry.contrib.table.model.ITableSortingState;
 import org.apache.tapestry.contrib.table.model.simple.SimpleTableState;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
 /**
  * @author mindbridge
  */
@@ -39,13 +39,13 @@
     private String m_strWhereClause;
 
     public SimpleSqlTableDataSource(ISqlConnectionSource objConnSource,
-            String strTableName)
+                                    String strTableName)
     {
         this(objConnSource, strTableName, null);
     }
 
     public SimpleSqlTableDataSource(ISqlConnectionSource objConnSource,
-            String strTableName, String strWhereClause)
+                                    String strTableName, String strWhereClause)
     {
         setConnSource(objConnSource);
         setTableName(strTableName);
@@ -56,7 +56,7 @@
      * @see org.apache.tapestry.contrib.table.model.sql.ISqlTableDataSource#getRowCount()
      */
     public int getRowCount()
-        throws SQLException
+            throws SQLException
     {
         String strQuery = generateCountQuery();
         LOG.trace("Invoking query to count rows: " + strQuery);
@@ -87,8 +87,8 @@
      *      SimpleTableState)
      */
     public ResultSet getCurrentRows(SqlTableColumnModel objColumnModel,
-            SimpleTableState objState)
-        throws SQLException
+                                    SimpleTableState objState)
+            throws SQLException
     {
         String strQuery = generateDataQuery(objColumnModel, objState);
         LOG.trace("Invoking query to load current rows: " + strQuery);
@@ -131,7 +131,7 @@
 
     /**
      * Returns the tableName.
-     * 
+     *
      * @return String
      */
     public String getTableName()
@@ -141,7 +141,7 @@
 
     /**
      * Sets the tableName.
-     * 
+     *
      * @param tableName
      *            The tableName to set
      */
@@ -152,7 +152,7 @@
 
     /**
      * Returns the connSource.
-     * 
+     *
      * @return ISqlConnectionSource
      */
     public ISqlConnectionSource getConnSource()
@@ -162,7 +162,7 @@
 
     /**
      * Sets the connSource.
-     * 
+     *
      * @param connSource
      *            The connSource to set
      */
@@ -173,7 +173,7 @@
 
     /**
      * Returns the whereClause.
-     * 
+     *
      * @return String
      */
     public String getWhereClause()
@@ -183,7 +183,7 @@
 
     /**
      * Sets the whereClause.
-     * 
+     *
      * @param whereClause
      *            The whereClause to set
      */
@@ -199,7 +199,9 @@
         for(int i = 0; i < objColumnModel.getColumnCount(); i++)
         {
             SqlTableColumn objColumn = objColumnModel.getSqlColumn(i);
-            if (i > 0) objColumnBuf.append(", ");
+            if (i > 0)
+                objColumnBuf.append(", ");
+
             objColumnBuf.append(quoteObjectName(objColumn.getColumnName()));
         }
 
@@ -209,7 +211,9 @@
     protected String generateWhereClause()
     {
         String strWhereClause = getWhereClause();
-        if (strWhereClause == null || strWhereClause.equals("")) return "";
+        if (strWhereClause == null || strWhereClause.equals(""))
+            return "";
+
         return "WHERE " + strWhereClause + " ";
     }
 
@@ -221,8 +225,10 @@
         {
             objSortingBuf.append("ORDER BY ");
             objSortingBuf.append(objSortingState.getSortColumn());
+
             if (objSortingState.getSortOrder() == ITableSortingState.SORT_ASCENDING)
                 objSortingBuf.append(" ASC ");
+
             else objSortingBuf.append(" DESC ");
         }
 
@@ -233,27 +239,22 @@
     {
         int nPageSize = objPagingState.getPageSize();
         int nStart = objPagingState.getCurrentPage() * nPageSize;
-        String strPagingBuf = "LIMIT " + nPageSize + " OFFSET " + nStart + " ";
-        return strPagingBuf;
+
+        return "LIMIT " + nPageSize + " OFFSET " + nStart + " ";
     }
 
     protected String generateDataQuery(SqlTableColumnModel objColumnModel,
-            SimpleTableState objState)
+                                       SimpleTableState objState)
     {
-        String strQuery = "SELECT " + generateColumnList(objColumnModel)
-                + " FROM " + getTableName() + " " + generateWhereClause()
-                + generateOrderByClause(objState.getSortingState())
-                + generateLimitClause(objState.getPagingState());
-
-        return strQuery;
+        return "SELECT " + generateColumnList(objColumnModel)
+               + " FROM " + getTableName() + " " + generateWhereClause()
+               + generateOrderByClause(objState.getSortingState())
+               + generateLimitClause(objState.getPagingState());
     }
 
     protected String generateCountQuery()
     {
-        String strQuery = "SELECT COUNT(*) FROM " + getTableName() + " "
-                + generateWhereClause();
-
-        return strQuery;
+        return "SELECT COUNT(*) FROM " + getTableName() + " "
+               + generateWhereClause();
     }
-
 }

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SqlTableColumn.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SqlTableColumn.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SqlTableColumn.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/sql/SqlTableColumn.java Tue Nov 20 13:57:38 2007
@@ -14,13 +14,13 @@
 
 package org.apache.tapestry.contrib.table.model.sql;
 
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.tapestry.contrib.table.model.simple.SimpleTableColumn;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
 /**
  * @author mindbridge
  */
@@ -71,7 +71,10 @@
             ResultSet objRS = (ResultSet) objRow;
             String strColumnName = getColumnName();
             Object objValue = objRS.getObject(strColumnName);
-            if (objValue == null) objValue = "";
+
+            if (objValue == null)
+                objValue = "";
+            
             return objValue;
         }
         catch (SQLException e)

Modified: tapestry/tapestry4/trunk/tapestry-contrib/src/test/org/apache/tapestry/contrib/table/model/simple/TestSimpleTableColumn.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/src/test/org/apache/tapestry/contrib/table/model/simple/TestSimpleTableColumn.java?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/src/test/org/apache/tapestry/contrib/table/model/simple/TestSimpleTableColumn.java (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/src/test/org/apache/tapestry/contrib/table/model/simple/TestSimpleTableColumn.java Tue Nov 20 13:57:38 2007
@@ -1,16 +1,58 @@
 package org.apache.tapestry.contrib.table.model.simple;
 
-import org.apache.tapestry.TestBase;
+import org.apache.hivemind.Messages;
+import org.apache.tapestry.BaseComponentTestCase;
+import org.apache.tapestry.IComponent;
+import org.apache.tapestry.IPage;
+import org.apache.tapestry.components.Block;
+import static org.easymock.EasyMock.checkOrder;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
+import java.util.HashMap;
+import java.util.Map;
+
 @Test
-public class TestSimpleTableColumn extends TestBase
+public class TestSimpleTableColumn extends BaseComponentTestCase
 {
-    public void test_display_column_names()
+
+    // Test for TAPESTRY-234
+    public void test_Alternate_Column_Display_Name()
     {
-        SimpleTableColumn column = new SimpleTableColumn("a.b_c");
-        assertEquals(column.getDisplayName(), "a.b.c");
-        assertEquals(column.getColumnName(), "a_b_c");
+        SimpleTableColumn column = new SimpleTableColumn("foo.bar");
+
+        assertEquals(column.getColumnName(), "foo.bar");
+        assertEquals(column.getDisplayName(), "foo.bar");
+        assertEquals(column.getValueRendererSource(), SimpleTableColumn.DEFAULT_VALUE_RENDERER_SOURCE);
+
+        IPage page = newMock(IPage.class);
+        checkOrder(page, false);
+        expect(page.getPageName()).andReturn("TestPage").anyTimes();
+
+        IComponent container = newComponent();
+        Messages msgs = newMock(Messages.class);
+        Block valueRenderer = org.easymock.classextension.EasyMock.createMock(Block.class);
+        
+        expect(valueRenderer.getPage()).andReturn(page);
+        expect(valueRenderer.getIdPath()).andReturn("TestPage[foo.bar]");
+
+        Map components = new HashMap();
+        components.put("foo_barColumnValue", valueRenderer);
+
+        expect(container.getMessages()).andReturn(msgs);
+        expect(msgs.getMessage("foo.bar")).andReturn("[foo.bar]");
+        
+        expect(container.getComponents()).andReturn(components).anyTimes();
+
+        replay();
+        org.easymock.classextension.EasyMock.replay(valueRenderer);
 
+        column.loadSettings(container);
+        
+        assert column.getValueRendererSource() != null;
+        assert !SimpleTableColumn.DEFAULT_VALUE_RENDERER_SOURCE.equals(column.getValueRendererSource());
+        
+        verify();
+        org.easymock.classextension.EasyMock.verify(valueRenderer);
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.html?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.html Tue Nov 20 13:57:38 2007
@@ -43,8 +43,7 @@
     
     <br/>
 	<span jwcid="submitButton" value="Select locales"/>
-	
-	
+
 </form>
 
 </span>

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.jwc
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.jwc?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.jwc (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.jwc Tue Nov 20 13:57:38 2007
@@ -19,19 +19,13 @@
   "-//Apache Software Foundation//Tapestry Specification 4.0//EN" 
   "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
 	
-<component-specification class="org.apache.tapestry.workbench.table.LocaleList" 
-	allow-body="no" allow-informal-parameters="yes">
+<component-specification class="org.apache.tapestry.workbench.table.LocaleList" allow-body="no" allow-informal-parameters="yes">
 
     <bean name="rowClass" class="org.apache.tapestry.bean.EvenOdd"/>
 
-    
-	<!--property name="currentLocale"/-->
-	
 	<property name="selectedLocales" persist="session" initial-value="new java.util.HashSet()"/>
 
-	<component id="form" type="Form">
-		<!--binding name="listener" value="listeners.formSubmit"/-->
-	</component>
+	<component id="form" type="Form" />
 
     <component id="checkboxGroup" type="contrib:CheckboxGroup"/>
     
@@ -48,7 +42,7 @@
 	<component id="tableView" type="contrib:TableView">
         <binding name="source" value="@java.util.Locale@getAvailableLocales()"/>
         <binding name="columns">literal: 
-            * locale:toString(), language:displayLanguage, country:displayCountry, 
+            * locale:toString(), language:displayLanguage, country:displayCountry,
             variant:displayVariant, isoLanguage:ISO3Language, isoCountry:ISO3Country
         </binding>
 	</component>
@@ -62,5 +56,4 @@
 	</component>
 
 	<component id="tableValues" type="contrib:TableValues"/>
-
 </component-specification>

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.properties?rev=596837&r1=596836&r2=596837&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.properties (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/LocaleList.properties Tue Nov 20 13:57:38 2007
@@ -18,3 +18,4 @@
 variant=Variant
 isoLanguage=ISO Language
 isoCountry=ISO Country
+locale.displayName=Locale
\ No newline at end of file