001    package org.springframework.richclient.widget.table;
002    
003    import javax.swing.table.TableCellEditor;
004    import javax.swing.table.TableCellRenderer;
005    import java.util.Comparator;
006    
007    
008    /**
009     * TableDescription
010     */
011    public interface TableDescription
012    {
013        /**
014         * @return Type van row objects
015         */
016        Class getDataType();
017    
018        /**
019         * De properties to be included in the text filter
020         */
021        String[] getPropertiesInTextFilter();
022    
023        /**
024         * Datatype for a column
025         */
026        Class getType(int propertyIndex);
027    
028        /**
029         * Column header.
030         */
031        String getHeader(int propertyIndex);
032    
033        /**
034         * Value of a columnn for a certain row object
035         */
036        Object getValue(Object rowObject, int propertyIndex);
037    
038        /**
039         * Sets the value of a column of a certain row object
040         */
041        void setValue(Object rowObject, int propertyIndex, Object newValue);
042    
043        /**
044         * Maximum width for a column
045         */
046        int getMaxColumnWidth(int propertyIndex);
047    
048        /**
049         * Minimum width for a column
050         */
051        int getMinColumnWidth(int propertyIndex);
052    
053        /**
054         * If the column is resizable
055         */
056        boolean isResizable(int propertyIndex);
057    
058        /**
059         * The column renderer for a column
060         */
061        TableCellRenderer getColumnRenderer(int propertyIndex);
062    
063        /**
064         * The cell editorr for a column
065         */
066        TableCellEditor getColumnEditor(int propertyIndex);
067    
068        /**
069         * Whether this column is a selection column
070         */
071        boolean isSelectColumn(int propertyIndex);
072    
073        /**
074         * The comparator for a column
075         */
076        Comparator getColumnComparator(int propertyIndex);
077    
078        /**
079         * The default comparator
080         */
081        Comparator getDefaultComparator();
082    
083        /**
084         * Returns the column count
085         */
086        int getColumnCount();
087    
088        /**
089         * @return TRUE if the table has a selection column
090         */
091        boolean hasSelectColumn();
092    
093        /**
094         * Whether the column is initially visible or not
095         */
096        boolean isVisible(int propertyIndex);
097    
098    }