我FilteredTree
在我的 Eclipse 插件视图中使用 a SashForm
,如下所示:
public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout(2, false));
{
SashForm sashForm = new SashForm(container, SWT.NONE);
GridData gd = new GridData(SWT.LEFT, SWT.FILL, false, true, 1, 1);
gd.widthHint = 300;
sashForm.setLayoutData(gd);
{
PatternFilter filter = new PatternFilter();
FilteredTree tree = new FilteredTree(sashForm, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL, filter, true);
treeViewer = tree.getViewer();
}
}
{
browser = new Browser(container, SWT.NONE);
browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
}
getSite().setSelectionProvider(treeViewer);
getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(listener);
createActions();
initializeToolBar();
initializeMenu();
}
现在每当我使用FilteredTree
过滤树的内容时 - 它都会抛出一个StackOverFlowError
. 我无法弄清楚我的实施有什么问题?
例外 :
!MESSAGE An internal error has occurred.
!STACK 0
java.lang.StackOverflowError
at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3402)
at org.eclipse.swt.widgets.Tree.getItems(Tree.java:3304)
at org.eclipse.swt.widgets.TreeItem.getItems(TreeItem.java:789)
at org.eclipse.jface.viewers.TreeViewer.getChildren(TreeViewer.java:161)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem(AbstractTreeViewer.java:1823)
at org.eclipse.jface.viewers.AbstractTreeViewer.doFindItem(AbstractTreeViewer.java:903)
at org.eclipse.jface.viewers.StructuredViewer.findItems(StructuredViewer.java:810)
at org.eclipse.jface.viewers.StructuredViewer.findItem(StructuredViewer.java:765)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalGetWidgetToSelect(AbstractTreeViewer.java:1742)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1630)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1638)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1638)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1638)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1638)