codan: added filter field in the problem configuration page

tree is getting very big. Added tree filter.

Change-Id: I49a0b059c794486178b2ba35bbe42b6131c34888
This commit is contained in:
Alena Laskavaia 2015-03-18 22:54:02 -04:00 committed by Gerrit Code Review @ Eclipse.org
parent 862705bb45
commit 535f49a7db
3 changed files with 24 additions and 2 deletions

View file

@ -212,7 +212,7 @@ public abstract class CheckedTreeEditor extends FieldEditor implements ICheckSta
Tree table = (Tree) getTreeControl();
if (table == null) {
listParent = parent;
treeViewer = new CheckboxTreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
treeViewer = doCreateTreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
table = treeViewer.getTree();
table.setFont(parent.getFont());
treeViewer.setComparator(new ViewerComparator());
@ -223,6 +223,10 @@ public abstract class CheckedTreeEditor extends FieldEditor implements ICheckSta
return table;
}
protected CheckboxTreeViewer doCreateTreeViewer(Composite parent, int style) {
return new CheckboxTreeViewer(parent, style);
}
public StructuredViewer getViewer() {
return treeViewer;
}

View file

@ -153,7 +153,7 @@ public class CodanPreferencePage extends FieldEditorOverlayPage implements IWork
profile = getRegistry().getWorkspaceProfile();
}
Composite comp = (Composite) super.createContents(parent);
createInfoControl(comp);
createInfoControl(parent);
return comp;
}

View file

@ -32,6 +32,7 @@ import org.eclipse.cdt.codan.internal.ui.ImageConstants;
import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
@ -39,12 +40,15 @@ import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.ICheckStateProvider;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.ToolTip;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.dialogs.FilteredTree;
import org.eclipse.ui.dialogs.PatternFilter;
public class ProblemsTreeEditor extends CheckedTreeEditor {
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
@ -382,4 +386,18 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
}
return message;
}
@Override
protected CheckboxTreeViewer doCreateTreeViewer(Composite parent, int style) {
PatternFilter filter = new PatternFilter();
filter.setIncludeLeadingWildcard(true);
FilteredTree filteredTree = new FilteredTree(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION,
filter, true) {
@Override
protected TreeViewer doCreateTreeViewer(Composite parent, int style) {
return new CheckboxTreeViewer(parent, style);
}
};
return (CheckboxTreeViewer) filteredTree.getViewer();
}
}