Revision: 1777
          http://svn.sourceforge.net/spring-rich-c/?rev=1777&view=rev
Author:   jhoskens
Date:     2007-07-09 23:44:47 -0700 (Mon, 09 Jul 2007)

Log Message:
-----------
Fix for RCP-477: adding a TigerEnumTableCellRenderer with test

Added Paths:
-----------
    
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/
    
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/renderer/
    
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRenderer.java
    
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/
    
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/renderer/
    
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRendererTests.java

Added: 
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRenderer.java
===================================================================
--- 
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRenderer.java
                           (rev 0)
+++ 
trunk/spring-richclient/tiger/src/main/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRenderer.java
   2007-07-10 06:44:47 UTC (rev 1777)
@@ -0,0 +1,43 @@
+package org.springframework.richclient.table.renderer;
+
+import java.awt.Component;
+
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableCellRenderer;
+
+import org.springframework.context.support.MessageSourceAccessor;
+
+/**
+ * TableCellRenderer which looks up messages by using the class and name of the
+ * Enum as a messageKey.
+ * 
+ * @author Xavier Breton
+ */
+public class TigerEnumTableCellRenderer extends DefaultTableCellRenderer {
+
+       private static final long serialVersionUID = -1737388077316919179L;
+
+       private MessageSourceAccessor messageSourceAccessor;
+
+       /**
+        * Constructor.
+        * 
+        * @param messageSourceAccesor containing the messages for the Enums.
+        */
+       public TigerEnumTableCellRenderer(MessageSourceAccessor 
messageSourceAccesor) {
+               this.messageSourceAccessor = messageSourceAccesor;
+       }
+
+       /**
+        * [EMAIL PROTECTED]
+        */
+       @SuppressWarnings( "unchecked")
+       public Component getTableCellRendererComponent(JTable table, Object 
value, boolean isSelected, boolean hasFocus,
+                       int row, int column) {
+               if (value instanceof Enum) {
+                       value = 
messageSourceAccessor.getMessage(value.getClass().getName() + "." + ((Enum) 
value).name());
+               }
+
+               return super.getTableCellRendererComponent(table, value, 
isSelected, hasFocus, row, column);
+       }
+}

Added: 
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRendererTests.java
===================================================================
--- 
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRendererTests.java
                              (rev 0)
+++ 
trunk/spring-richclient/tiger/src/test/java/org/springframework/richclient/table/renderer/TigerEnumTableCellRendererTests.java
      2007-07-10 06:44:47 UTC (rev 1777)
@@ -0,0 +1,70 @@
+package org.springframework.richclient.table.renderer;
+
+import java.awt.Component;
+import java.util.Locale;
+
+import javax.swing.JTable;
+import javax.swing.table.TableColumnModel;
+
+import junit.framework.TestCase;
+
+import org.springframework.context.support.MessageSourceAccessor;
+import org.springframework.context.support.StaticMessageSource;
+
+/**
+ * @author Xavier Breton
+ */
+public class TigerEnumTableCellRendererTests extends TestCase {
+    
+       public enum TigerEnum {
+           
+               ONE, 
+               TWO, 
+               THREE,
+               FOUR, 
+               FIVE, 
+               SIX, 
+               SEVEN, 
+               EIGHT, 
+               NINE, 
+               TEN;
+               
+       }
+       
+       private TigerEnumTableCellRenderer tetcr;
+       
+       public void testGetTableCellRendererComponent() {
+               StaticMessageSource messageSource = new StaticMessageSource();
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.ONE",
 Locale.getDefault(), "one");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.TWO",
 Locale.getDefault(), "two");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.THREE",
 Locale.getDefault(), "three");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.FOUR",
 Locale.getDefault(), "four");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.FIVE",
 Locale.getDefault(), "five");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.SIX",
 Locale.getDefault(), "six");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.SEVEN",
 Locale.getDefault(), "seven");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.EIGHT",
 Locale.getDefault(), "eight");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.NINE",
 Locale.getDefault(), "nine");
+               
messageSource.addMessage("org.springframework.richclient.table.renderer.TigerEnumTableCellRendererTests$TigerEnum.TEN",
 Locale.getDefault(), "ten");
+               MessageSourceAccessor msa = new 
MessageSourceAccessor(messageSource);
+               tetcr = new TigerEnumTableCellRenderer(msa);
+               Object[][] rowData = { 
+                               { TigerEnum.ONE },
+                               { TigerEnum.TWO },
+                               { TigerEnum.THREE }, 
+                               { TigerEnum.FOUR }, 
+                               { TigerEnum.FIVE }, 
+                               { TigerEnum.SIX }, 
+                               { TigerEnum.SEVEN }, 
+                               { TigerEnum.EIGHT }, 
+                               { TigerEnum.NINE }, 
+                               { TigerEnum.TEN }
+                               };
+               Object[] columnNames = { "Numbers" };
+               JTable table = new JTable(rowData, columnNames);
+               TableColumnModel tcm = table.getColumnModel();
+               tcm.getColumn(0).setCellRenderer(tetcr);
+               tetcr.getTableCellRendererComponent(table, TigerEnum.SEVEN, 
false, false, 6, 0);
+               Component component = 
tetcr.getTableCellRendererComponent(table, TigerEnum.SEVEN, false, false, 6, 0);
+               assertTrue(component instanceof TigerEnumTableCellRenderer);
+       }
+}
\ No newline at end of file


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
spring-rich-c-cvs mailing list
spring-rich-c-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

Reply via email to