mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-59420: use view indices in TableSpeedSearch
This commit is contained in:
@@ -20,7 +20,6 @@ import com.intellij.util.PairFunction;
|
||||
import com.intellij.util.containers.Convertor;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.TableModel;
|
||||
import java.util.ListIterator;
|
||||
|
||||
public class TableSpeedSearch extends SpeedSearchBase<JTable> {
|
||||
@@ -55,9 +54,8 @@ public class TableSpeedSearch extends SpeedSearchBase<JTable> {
|
||||
|
||||
@Override
|
||||
protected boolean isSpeedSearchEnabled() {
|
||||
JTable table = getComponent();
|
||||
boolean tableIsNotEmpty = table.getRowCount() != 0 && table.getColumnCount() != 0;
|
||||
return tableIsNotEmpty && !table.isEditing() && super.isSpeedSearchEnabled();
|
||||
boolean tableIsNotEmpty = myComponent.getRowCount() != 0 && myComponent.getColumnCount() != 0;
|
||||
return tableIsNotEmpty && !myComponent.isEditing() && super.isSpeedSearchEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,16 +65,14 @@ public class TableSpeedSearch extends SpeedSearchBase<JTable> {
|
||||
|
||||
@Override
|
||||
protected int getElementCount() {
|
||||
final TableModel tableModel = myComponent.getModel();
|
||||
return tableModel.getRowCount() * tableModel.getColumnCount();
|
||||
return myComponent.getRowCount() * myComponent.getColumnCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void selectElement(Object element, String selectedText) {
|
||||
final int index = ((Integer)element).intValue();
|
||||
final TableModel model = myComponent.getModel();
|
||||
final int row = index / model.getColumnCount();
|
||||
final int col = index % model.getColumnCount();
|
||||
final int row = index / myComponent.getColumnCount();
|
||||
final int col = index % myComponent.getColumnCount();
|
||||
myComponent.getSelectionModel().setSelectionInterval(row, row);
|
||||
myComponent.getColumnModel().getSelectionModel().setSelectionInterval(col, col);
|
||||
TableUtil.scrollSelectionToVisible(myComponent);
|
||||
@@ -87,7 +83,7 @@ public class TableSpeedSearch extends SpeedSearchBase<JTable> {
|
||||
final int row = myComponent.getSelectedRow();
|
||||
final int col = myComponent.getSelectedColumn();
|
||||
// selected row is not enough as we want to select specific cell in a large multi-column table
|
||||
return row > -1 && col > -1 ? row * myComponent.getModel().getColumnCount() + col : -1;
|
||||
return row > -1 && col > -1 ? row * myComponent.getColumnCount() + col : -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,10 +94,9 @@ public class TableSpeedSearch extends SpeedSearchBase<JTable> {
|
||||
@Override
|
||||
protected String getElementText(Object element) {
|
||||
final int index = ((Integer)element).intValue();
|
||||
final TableModel model = myComponent.getModel();
|
||||
int row = myComponent.convertRowIndexToModel(index / model.getColumnCount());
|
||||
int col = myComponent.convertColumnIndexToModel(index % model.getColumnCount());
|
||||
Object value = model.getValueAt(row, col);
|
||||
int row = index / myComponent.getColumnCount();
|
||||
int col = index % myComponent.getColumnCount();
|
||||
Object value = myComponent.getValueAt(row, col);
|
||||
return myToStringConvertor.fun(value, new Cell(row, col));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user