public void prompt(Shell shell) { ListDialog dialog = new ListDialog(shell) { @Override protected int getTableStyle() { return super.getTableStyle() - SWT.SINGLE + SWT.MULTI; } }; dialog.setTitle(Messages.RemoveFilterDialog_0); dialog.setMessage(Messages.RemoveFilterDialog_1); dialog.setAddCancelButton(true); dialog.setLabelProvider( new LabelProvider() { @Override public String getText(Object element) { return (String) element; } }); dialog.setContentProvider( new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return (Object[]) inputElement; } public void dispose() {} public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} }); String[] filterPatterns = filter.getFilterPatterns(); Arrays.sort(filterPatterns); dialog.setInput(filterPatterns); dialog.open(); Object[] selected = dialog.getResult(); if (selected == null) return; filter.removeFilterPatterns(selected); }