1

ユーザーが TreeViewer で特定のノードを展開すると、1 つではなく 2 つのレベルを展開する必要があります。そこで、次のコードを追加しました。

viewer.addTreeListener(new ITreeViewerListener() {
            public void treeCollapsed(TreeExpansionEvent event) {
            }

            public void treeExpanded(TreeExpansionEvent event) {
                if (event.getElement() instanceof Feature) {
                    Feature feature = (Feature) event.getElement();
                    viewer.expandToLevel(feature, 2);
                }
            }
        });

しかし、機能ノードを展開するときにのみ、このエラー メッセージが表示されます。

!MESSAGE Ignored reentrant call while viewer is busy. This is only logged once per viewer instance, but similar calls will still be ignored.
!STACK 0
java.lang.RuntimeException
    at org.eclipse.jface.viewers.ColumnViewer.checkBusy(ColumnViewer.java:781)
    at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:1071)
...

私が間違っていること、または別の方法で解決する方法はありますか?

乾杯、フィル

4

1 に答える 1