1   package org.springframework.richclient.table.renderer;
2   
3   import java.awt.Component;
4   import java.util.Locale;
5   
6   import javax.swing.JTable;
7   import javax.swing.table.TableColumnModel;
8   
9   import junit.framework.TestCase;
10  
11  import org.springframework.context.support.MessageSourceAccessor;
12  import org.springframework.context.support.StaticMessageSource;
13  
14  /**
15   * @author Xavier Breton
16   */
17  public class EnumTableCellRendererTests extends TestCase {
18      
19  	public enum Numbers {
20  	    
21  		ONE, 
22  		TWO, 
23  		THREE,
24  		FOUR, 
25  		FIVE, 
26  		SIX, 
27  		SEVEN, 
28  		EIGHT, 
29  		NINE, 
30  		TEN;
31  		
32  	}
33  	
34  	private EnumTableCellRenderer tetcr;
35  	
36  	public void testGetTableCellRendererComponent() {
37  		StaticMessageSource messageSource = new StaticMessageSource();
38  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.ONE", Locale.getDefault(), "one");
39  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TWO", Locale.getDefault(), "two");
40  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.THREE", Locale.getDefault(), "three");
41  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FOUR", Locale.getDefault(), "four");
42  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.FIVE", Locale.getDefault(), "five");
43  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SIX", Locale.getDefault(), "six");
44  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.SEVEN", Locale.getDefault(), "seven");
45  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.EIGHT", Locale.getDefault(), "eight");
46  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.NINE", Locale.getDefault(), "nine");
47  		messageSource.addMessage("org.springframework.richclient.table.renderer.EnumTableCellRendererTests$Numbers.TEN", Locale.getDefault(), "ten");
48  		MessageSourceAccessor msa = new MessageSourceAccessor(messageSource);
49  		tetcr = new EnumTableCellRenderer(msa);
50  		Object[][] rowData = { 
51  				{ Numbers.ONE },
52  				{ Numbers.TWO },
53  				{ Numbers.THREE },
54  				{ Numbers.FOUR },
55  				{ Numbers.FIVE },
56  				{ Numbers.SIX },
57  				{ Numbers.SEVEN },
58  				{ Numbers.EIGHT },
59  				{ Numbers.NINE },
60  				{ Numbers.TEN }
61  				};
62  		Object[] columnNames = { "Numbers" };
63  		JTable table = new JTable(rowData, columnNames);
64  		TableColumnModel tcm = table.getColumnModel();
65  		tcm.getColumn(0).setCellRenderer(tetcr);
66  		tetcr.getTableCellRendererComponent(table, Numbers.SEVEN, false, false, 6, 0);
67  		Component component = tetcr.getTableCellRendererComponent(table, Numbers.SEVEN, false, false, 6, 0);
68  		assertTrue(component instanceof EnumTableCellRenderer);
69  	}
70  }