Author: tchemit Date: 2009-10-29 15:55:21 +0100 (Thu, 29 Oct 2009) New Revision: 1616 Added: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java Log: add a DecoratorProviderTableCellRenderer Added: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java 2009-10-29 14:55:21 UTC (rev 1616) @@ -0,0 +1,56 @@ +package jaxx.runtime.swing.renderer; + +import jaxx.runtime.decorator.Decorator; +import jaxx.runtime.decorator.DecoratorProvider; + +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellRenderer; +import java.awt.*; + +/** + * A {@link TableCellRenderer} which use decorators from the {@link #provider} to obtain the text to display. + * <p/> + * The interest of this renderer is to define a unique renderer for your application (put it in JAXXContext) + * and then use it simply :) + * <p/> + * User: chemit + * Date: 29 oct. 2009 + * Time: 03:00:53 + * + * @see DecoratorProvider + * @since 2.0.0 + */ +public class DecoratorProviderTableCellRenderer implements TableCellRenderer { + + /** + * Delegate cell renderer + */ + protected TableCellRenderer delegate; + + /** + * provider of decorators + */ + protected DecoratorProvider provider; + + public DecoratorProviderTableCellRenderer(DecoratorProvider provider) { + this(new DefaultTableCellRenderer(), provider); + } + + public DecoratorProviderTableCellRenderer(TableCellRenderer delegate, DecoratorProvider provider) { + this.delegate = delegate; + this.provider = provider; + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasfocus, int row, int column) { + if (value != null) { + Decorator<?> decorator = provider.getDecorator(value); + + if (decorator != null) { + value = decorator.toString(value); + } + } + return delegate.getTableCellRendererComponent(table, value, isSelected, hasfocus, row, column); + } +} \ No newline at end of file Property changes on: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/DecoratorProviderTableCellRenderer.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL