mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
[scaleablity] don't involve filter when testing for expandablity.
This commit is contained in:
parent
0209657630
commit
34f6b89386
1 changed files with 20 additions and 5 deletions
|
@ -7,17 +7,19 @@ package org.eclipse.cdt.internal.ui.util;
|
|||
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
import org.eclipse.jface.viewers.ILabelProvider;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
|
||||
import org.eclipse.jface.viewers.StructuredViewer;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Item;
|
||||
import org.eclipse.swt.widgets.Tree;
|
||||
import org.eclipse.swt.widgets.Widget;
|
||||
|
||||
import org.eclipse.jface.viewers.ILabelProvider;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
|
||||
|
||||
/**
|
||||
* Extends a TreeViewer to allow more performance when showing error ticks.
|
||||
|
@ -133,5 +135,18 @@ public class ProblemTreeViewer extends TreeViewer implements IProblemChangedList
|
|||
super.handleInvalidSelection(invalidSelection, newSelection);
|
||||
}
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.AbstractTreeViewer#isExpandable(java.lang.Object)
|
||||
*/
|
||||
public boolean isExpandable(Object element) {
|
||||
ITreeContentProvider cp = (ITreeContentProvider) getContentProvider();
|
||||
if (cp == null)
|
||||
return false;
|
||||
// since AbstractTreeViewer will run filteres here on element children this will cause binary search threads and TU parsering
|
||||
// to be started for each project/file tested for expandablity, this can be expensive if lots of project exists in workspace
|
||||
// or lots of TUs exist in one folder so lets skip it....
|
||||
return cp.hasChildren(element);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue