У меня есть загадка. Когда я вызываю метод refresh()
для обновления TreeViewer
после сохранения файла каждый раз, например, treeViewer.refresh()
,, он всегда показывает только корневой элемент.
Перед обновлением

После обновления

Я думаю, что необходимо написать метод, который обновляет и расширяет узел в прошлый раз.

Код, который я пытался реализовать этим методом, выглядит следующим образом:
Object[] expanded = treeViewer.getExpandedElements();
treeViewer.getControl().setRedraw(false);
treeViewer.refresh();
treeViewer.setExpandedElements(expanded);
treeViewer.getControl().setRedraw(true);
Но этот метод не достиг желаемого эффекта , И содержимое переменной expanded
получает правильно. Я хочу знать, правильный ли мой метод? Как правильный метод должен достичь этой функции? Или как модифицировать?