我有 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 因为不使用它会很可惜,它是一个用作标准的对话框