package org.eclipse.epp.usagedata.internal.ui.preview;
import java.util.Arrays;
import org.eclipse.epp.usagedata.internal.recording.filtering.PreferencesBasedFilter;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.dialogs.ListDialog;
public class RemoveFilterDialog {
private final PreferencesBasedFilter filter;
public RemoveFilterDialog(PreferencesBasedFilter filter) {
this.filter = filter;
}
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);
}
}