mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
FinderRecursivePanel.mergeListItems: restore setMergeListItemsRunning after exceptions
This commit is contained in:
@@ -538,32 +538,35 @@ public abstract class FinderRecursivePanel<T> extends JBSplitter implements Data
|
||||
});
|
||||
}
|
||||
|
||||
protected <T> void mergeListItems(@NotNull CollectionListModel<T> listModel, @NotNull JList list, @NotNull List<T> newItems) {
|
||||
protected void mergeListItems(@NotNull CollectionListModel<T> listModel, @NotNull JList list, @NotNull List<T> newItems) {
|
||||
setMergeListItemsRunning(true);
|
||||
|
||||
if (listModel.getSize() == 0) {
|
||||
listModel.add(newItems);
|
||||
}
|
||||
else if (newItems.size() == 0) {
|
||||
listModel.removeAll();
|
||||
} else {
|
||||
|
||||
int newSelectedIndex = -1;
|
||||
|
||||
T selection = (T)list.getSelectedValue();
|
||||
if (selection != null) {
|
||||
newSelectedIndex = newItems.indexOf(selection);
|
||||
try {
|
||||
if (listModel.getSize() == 0) {
|
||||
listModel.add(newItems);
|
||||
}
|
||||
else if (newItems.size() == 0) {
|
||||
listModel.removeAll();
|
||||
}
|
||||
else {
|
||||
|
||||
int newSelectedIndex = -1;
|
||||
|
||||
T selection = (T)list.getSelectedValue();
|
||||
if (selection != null) {
|
||||
newSelectedIndex = newItems.indexOf(selection);
|
||||
}
|
||||
|
||||
|
||||
listModel.removeAll();
|
||||
listModel.add(newItems);
|
||||
listModel.removeAll();
|
||||
listModel.add(newItems);
|
||||
|
||||
list.setSelectedIndex(newSelectedIndex);
|
||||
list.setSelectedIndex(newSelectedIndex);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
setMergeListItemsRunning(false);
|
||||
}
|
||||
|
||||
|
||||
setMergeListItemsRunning(false);
|
||||
}
|
||||
|
||||
public boolean isMergeListItemsRunning() {
|
||||
|
||||
Reference in New Issue
Block a user