Source:
private void updateComponents() { boolean hasPhysicalColumns = false; for (final InputColumn<?> column : _columns.keySet()) { if (column.isPhysicalColumn()) { hasPhysicalColumns = true; break; } } final String[] headers; if ((hasPhysicalColumns) && (_editable)) { headers = HEADERS_WITH_ACTION_COLUMN; } else { headers = HEADERS_WITHOUT_ACTIONS; } TableModel model = new DefaultTableModel(headers, _columns.size()); int i = 0; for (final Entry<InputColumn<?>, JComponent> entry : _columns.entrySet()) { final InputColumn<?> column = entry.getKey(); final JComponent panel = entry.getValue(); model.setValueAt(panel, i, 0); final Class<?> dataType = column.getDataType(); final String dataTypeString = LabelUtils.getDataTypeLabel(dataType); model.setValueAt(dataTypeString, i, 1); if (column.isPhysicalColumn() && (_editable)) { final DCPanel buttonPanel = new DCPanel(); buttonPanel.setLayout(new GridBagLayout()); final JButton removeButton = WidgetFactory.createSmallButton(IconUtils.ACTION_REMOVE); removeButton.setToolTipText("Remove column from source"); removeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { _analysisJobBuilder.removeSourceColumn(column.getPhysicalColumn()); } }); WidgetUtils.addToGridBag(removeButton, buttonPanel, 0, 0); model.setValueAt(buttonPanel, i, 2); } i++; } _columnTable.setModel(model); if ((hasPhysicalColumns) && (_editable)) { final TableColumnExt columnExt = _columnTable.getColumnExt(2); columnExt.setMinWidth(26); columnExt.setMaxWidth(80); columnExt.setPreferredWidth(30); } _columnTable.setRowHeight(DCTable.EDITABLE_TABLE_ROW_HEIGHT); DCPanel tablePanel = _columnTable.toPanel(); if (_addShadowBorder) { tablePanel.setBorder(new CompoundBorder(WidgetUtils.BORDER_SHADOW, WidgetUtils.BORDER_THIN)); } add(tablePanel, BorderLayout.CENTER); }

Target:
private void updateComponents() { boolean hasPhysicalColumns = false; for (final InputColumn<?> column : _columns.keySet()) { if (column.isPhysicalColumn()) { hasPhysicalColumns = true; break; } } final String[] headers; if (hasPhysicalColumns && _editable) { headers = HEADERS_WITH_ACTION_COLUMN; } else { headers = HEADERS_WITHOUT_ACTIONS; } TableModel model = new DefaultTableModel(headers, _columns.size()); int i = 0; for (final Entry<InputColumn<?>, JComponent> entry : _columns.entrySet()) { final InputColumn<?> column = entry.getKey(); final JComponent panel = entry.getValue(); model.setValueAt(panel, i, 0); final Class<?> dataType = column.getDataType(); final String dataTypeString = LabelUtils.getDataTypeLabel(dataType); model.setValueAt(dataTypeString, i, 1); if (column.isPhysicalColumn() && _editable) { final DCPanel buttonPanel = new DCPanel(); buttonPanel.setLayout(new GridBagLayout()); final JButton removeButton = WidgetFactory.createSmallButton(IconUtils.ACTION_REMOVE); removeButton.setToolTipText("Remove column from source"); removeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { _analysisJobBuilder.removeSourceColumn(column.getPhysicalColumn()); } }); WidgetUtils.addToGridBag(removeButton, buttonPanel, 0, 0); model.setValueAt(buttonPanel, i, 2); } i++; } _columnTable.setModel(model); if (hasPhysicalColumns && _editable) { final TableColumnExt columnExt = _columnTable.getColumnExt(2); columnExt.setMinWidth(26); columnExt.setMaxWidth(80); columnExt.setPreferredWidth(30); } _columnTable.setRowHeight(DCTable.EDITABLE_TABLE_ROW_HEIGHT); DCPanel tablePanel = _columnTable.toPanel(); if (_addShadowBorder) { tablePanel.setBorder(new CompoundBorder(WidgetUtils.BORDER_SHADOW, WidgetUtils.BORDER_THIN)); } add(tablePanel, BorderLayout.CENTER); }