*/
@Override
public void performAction() {
FileTable fileTable;
FileTableModel tableModel;
FilenameFilter filter;
int rowCount;
boolean mark;
// Initialization. Aborts if there is no selected file.
fileTable = mainFrame.getActiveTable();
if((filter = getFilter(fileTable.getSelectedFile(false, true))) == null)
return;
tableModel = fileTable.getFileTableModel();
rowCount = tableModel.getRowCount();
mark = !tableModel.isRowMarked(fileTable.getSelectedRow());
// Goes through all files in the active table, marking all that match 'filter'.
for(int i = tableModel.getFirstMarkableRow(); i < rowCount; i++)
if(filter.accept(tableModel.getCachedFileAtRow(i)))
tableModel.setRowMarked(i, mark);
fileTable.repaint();
// Notify registered listeners that currently marked files have changed on the FileTable
fileTable.fireMarkedFilesChangedEvent();