Revision 41830 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/dal/feature/swing/FeatureTablePanel.java

View differences:

FeatureTablePanel.java
299 299
                };
300 300
                final JList rowHeader = new JList(lm);
301 301
                rowHeader.setBackground(table.getTableHeader().getBackground());
302
                rowHeader.setCellRenderer(new RowHeaderRenderer(table));
302
                rowHeader.setCellRenderer(new RowHeaderRenderer(table,rowHeader));
303 303
                jScrollPane.setRowHeaderView(rowHeader);
304 304
            }
305 305
        });
306 306
    }
307 307

  
308 308
    private static class RowHeaderRenderer extends JButton implements ListCellRenderer {
309

  
310 309
        private JTable table = null;
311 310
        private final Dimension dimension = new Dimension();
312

  
313
        RowHeaderRenderer(JTable table) {
311
        private JList rowHeader;
312
        
313
        RowHeaderRenderer(JTable table,JList rowHeader) {
314 314
            JTableHeader header = table.getTableHeader();
315 315
            setOpaque(true);
316 316
            setBorder(UIManager.getBorder("TableHeader.cellBorder"));
......
319 319
            setBackground(header.getBackground());
320 320
            setFont(header.getFont());
321 321
            this.table = table;
322
            //                                               1234567
323
            Rectangle2D r = this.getFont().getStringBounds( "_______", new FontRenderContext(null,true,true));
324
            this.dimension.width = (int) r.getWidth();
322
            this.rowHeader = rowHeader;
325 323
        }
326 324

  
327 325
        public Component getListCellRendererComponent(JList list, Object value,
328 326
                int index, boolean isSelected, boolean cellHasFocus) {
329 327
            setText((value == null) ? "" : value.toString());
328
            this.setPreferredSize(null); // Fuerza recalcular el tama?o del boton
330 329
            this.dimension.height = this.table.getRowHeight(index);
330
            this.dimension.width = this.getPreferredSize().width+10;
331 331
            this.setPreferredSize(this.dimension);
332 332
            return this;
333 333
        }

Also available in: Unified diff