private int addValue( final Object extraData, final int row, final DefaultTableModel model, final String desc, final int count, final AnnotatedRowsResult sampleResult) { model.setValueAt(desc, row, 0); if (sampleResult == null || count == 0) { model.setValueAt(count, row, 1); } else { final DCPanel panel = new DCPanel(); panel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); final JLabel label = new JLabel(count + ""); final JButton button = WidgetFactory.createSmallButton(IconUtils.ACTION_DRILL_TO_DETAIL); button.addActionListener( new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { drillToGroup(desc, sampleResult); } }); panel.add(label); panel.add(Box.createHorizontalStrut(4)); panel.add(button); model.setValueAt(panel, row, 1); } addExtraValue(extraData, row, model, desc, count, sampleResult); return row + 1; }