mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[FinderRecursivePanel] restore "updateSelectedPathModeActive" on exceptions
This commit is contained in:
@@ -438,20 +438,24 @@ public abstract class FinderRecursivePanel<T> extends OnePixelSplitter implement
|
||||
*/
|
||||
public void updateSelectedPath(Object... pathToSelect) {
|
||||
if (!myUpdateSelectedPathModeActive.compareAndSet(false, true)) return;
|
||||
FinderRecursivePanel panel = this;
|
||||
for (int i = 0; i < pathToSelect.length; i++) {
|
||||
Object selectedValue = pathToSelect[i];
|
||||
panel.setSelectedValue(selectedValue);
|
||||
if (i < pathToSelect.length - 1) {
|
||||
final JComponent component = panel.getSecondComponent();
|
||||
assert component instanceof FinderRecursivePanel : Arrays.toString(pathToSelect);
|
||||
panel = (FinderRecursivePanel)component;
|
||||
|
||||
try {
|
||||
FinderRecursivePanel panel = this;
|
||||
for (int i = 0; i < pathToSelect.length; i++) {
|
||||
Object selectedValue = pathToSelect[i];
|
||||
panel.setSelectedValue(selectedValue);
|
||||
if (i < pathToSelect.length - 1) {
|
||||
final JComponent component = panel.getSecondComponent();
|
||||
assert component instanceof FinderRecursivePanel : Arrays.toString(pathToSelect);
|
||||
panel = (FinderRecursivePanel)component;
|
||||
}
|
||||
}
|
||||
|
||||
IdeFocusManager.getInstance(myProject).requestFocus(panel.myList, true);
|
||||
}
|
||||
finally {
|
||||
myUpdateSelectedPathModeActive.set(false);
|
||||
}
|
||||
|
||||
IdeFocusManager.getInstance(myProject).requestFocus(panel.myList, true);
|
||||
|
||||
myUpdateSelectedPathModeActive.set(false);
|
||||
}
|
||||
|
||||
private void setSelectedValue(final Object value) {
|
||||
|
||||
Reference in New Issue
Block a user