kg.apc.jmeter.gui.DeleteRowAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jmeter-plugins-cmn-jmeter Show documentation
Show all versions of jmeter-plugins-cmn-jmeter Show documentation
Various utility classes to ease development of plugins
package kg.apc.jmeter.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import org.apache.jmeter.gui.util.PowerTableModel;
public class DeleteRowAction
implements ActionListener {
private JTable grid;
private PowerTableModel tableModel;
private JButton deleteRowButton;
private final JComponent sender;
public DeleteRowAction(JComponent aSender, JTable grid, PowerTableModel tableModel, JButton deleteRowButton) {
this.grid = grid;
this.tableModel = tableModel;
this.deleteRowButton = deleteRowButton;
this.sender=aSender;
}
public void actionPerformed(ActionEvent e) {
if (grid.isEditing()) {
TableCellEditor cellEditor = grid.getCellEditor(grid.getEditingRow(), grid.getEditingColumn());
cellEditor.cancelCellEditing();
}
int rowSelected = grid.getSelectedRow();
if (rowSelected >= 0) {
tableModel.removeRow(rowSelected);
tableModel.fireTableDataChanged();
// Disable DELETE if there are no rows in the table to delete.
if (tableModel.getRowCount() == 0) {
deleteRowButton.setEnabled(false);
} // Table still contains one or more rows, so highlight (select)
// the appropriate one.
else {
int rowToSelect = rowSelected;
if (rowSelected >= tableModel.getRowCount()) {
rowToSelect = rowSelected - 1;
}
grid.setRowSelectionInterval(rowToSelect, rowToSelect);
}
sender.updateUI();
}
}
}