NPE fixes

This commit is contained in:
Konstantin Bulenkov
2011-04-19 15:22:26 +04:00
parent 0991a4fbe4
commit fd3c65d970
2 changed files with 11 additions and 3 deletions
@@ -85,6 +85,7 @@ public class DirDiffPanel {
}
else {
final DirDiffElement element = myModel.getElementAt(myTable.getSelectedRow());
if (element == null) return;
final Project project = myModel.getProject();
clearDiffPanel();
if (element.getType() == DType.CHANGED) {
@@ -120,18 +121,24 @@ public class DirDiffPanel {
int row = myTable.getSelectedRow();
if (keyCode == KeyEvent.VK_DOWN && row != rows - 1) {
row++;
if (myModel.getElementAt(row).isSeparator()) {
final DirDiffElement element = myModel.getElementAt(row);
if (element == null) return;
if (element.isSeparator()) {
row++;
}
} else if (keyCode == KeyEvent.VK_UP && row != 0) {
row--;
if (myModel.getElementAt(row).isSeparator()) {
final DirDiffElement element = myModel.getElementAt(row);
if (element == null) return;
if (element.isSeparator()) {
row--;
}
} else {
return;
}
if (0 <= row && row < rows && !myModel.getElementAt(row).isSeparator()) {
final DirDiffElement element = myModel.getElementAt(row);
if (element == null) return;
if (!element.isSeparator()) {
e.consume();
myTable.changeSelection(row, (myModel.getColumnCount() - 1) / 2, false, false);
}
@@ -120,6 +120,7 @@ public class DirDiffTableModel extends AbstractTableModel {
return "Diff for " + mySrc.getPath() + " and " + myTrg.getPath();
}
@Nullable
public DirDiffElement getElementAt(int index) {
return 0 <= index && index < myElements.size() ? myElements.get(index) : null;
}