void () { stopEditing(); int selectedIndex = myFiltersTable.getSelectedRow(); if (selectedIndex < 0 || selectedIndex >= myFiltersModel.getRowCount()) { return; } TodoFilter sourceFilter = myFilters.get(selectedIndex); TodoFilter filter = sourceFilter.clone(); FilterDialog dialog = new FilterDialog(myPanel, filter, selectedIndex, myFilters, myPatterns); dialog.setTitle(IdeBundle.message("title.edit.todo.filter")); dialog.show(); int exitCode = dialog.getExitCode(); if (DialogWrapper.OK_EXIT_CODE == exitCode) { myFilters.set(selectedIndex, filter); myFiltersModel.fireTableRowsUpdated(selectedIndex, selectedIndex); myFiltersTable.getSelectionModel().setSelectionInterval(selectedIndex, selectedIndex); } }