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