0

我有 ElementListSelectionDialog 的基本实现,如下所示。

ElementListSelectionDialog dialog = 
  new ElementListSelectionDialog(shell, new LabelProvider());
dialog.setElements(new String[] { "Linux", "Mac", "Windows" });
dialog.setTitle("Which operating system are you using");
dialog.open();

对话框打开得很好,但列表是空的,当我们在搜索字段中输入内容时,什么也没有发生。

我没有任何例外,我在 Eclipse Kepeler 4.3 下

我在某处读到选择对话框在 4.2 版 Eclipse 后可直接重用。

我深入检查了ElementListSelectionDialog类,发现问题出在FiltredList没有绘制通过LabelProvider提供的元素。

FilteredList list = new FilteredList(workArea,SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL,new LabelProvider(),false,true,true);
     list.setLayoutData(new GridData(GridData.FILL,
            GridData.BEGINNING, true, false, 1, 1));
list.setFilter(""); //$NON-NLS-1$       
list.setElements( new Object[] {"Item 1","Item 2","Item 3","Item"});

我不知道为什么它对我不起作用,但我确信它在 Eclipse IDE 中可以正常工作。

我想我别无选择,我必须基于一个TableViewer定义我自己的Dialog

有没有人成功在 Eclipse 4 中运行 ElementListSelectionDialog 因为不使用它会很可惜,它是一个用作标准的对话框

4

1 回答 1

0

我有同样的问题。对话框通过 TableUpdateJob 更新它的内容。方法schedule包含对PlatformUI.isWorkbenchRunning(). 因此,如果您有自定义 RCP 应用程序,则无论如何都必须启动 Workbench 或模拟此行为。

于 2014-03-09T15:29:42.343 回答