Skip to content

Commit

Permalink
Used limit based viewers API eclipse-jdt#631
Browse files Browse the repository at this point in the history
Adopt Package Explorer, Outline view contribution and editor breadcrumb
for Java editor to use new JFace API that allows viewers display huge
number of elements without freezing UI.

See eclipse-platform/eclipse.platform.ui#818
and eclipse-platform/eclipse.platform.ui#810.

Fixes eclipse-jdt#631
  • Loading branch information
raghucssit authored and fedejeanne committed Aug 23, 2023
1 parent 86d67ee commit afe043f
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,8 @@ else if (status.isOK())
else
throw new IllegalStateException(element.toString());

} else {
throw new IllegalArgumentException(String.valueOf(element));
}
return null;
}

public void setShowTime(boolean showTime) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@

import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.views.WorkbenchViewerSetup;

import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
Expand Down Expand Up @@ -243,6 +244,7 @@ private void createTestViewers(Composite parent) {

fTreeViewer= new TreeViewer(fViewerbook, SWT.V_SCROLL | SWT.SINGLE);
fTreeViewer.setUseHashlookup(true);
WorkbenchViewerSetup.setupViewer(fTreeViewer);
fTreeContentProvider= new TestSessionTreeContentProvider();
fTreeViewer.setContentProvider(fTreeContentProvider);
fTreeLabelProvider= new TestSessionLabelProvider(fTestRunnerPart, TestRunnerViewPart.LAYOUT_HIERARCHICAL);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.views.WorkbenchViewerSetup;

import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IClasspathEntry;
Expand Down Expand Up @@ -205,6 +206,7 @@ public void configureDropDownViewer(TreeViewer viewer, Object input) {
viewer.setLabelProvider(createDropDownLabelProvider());
viewer.setComparator(new JavaElementComparator());
viewer.addFilter(new SyntheticMembersFilter());
WorkbenchViewerSetup.setupViewer(viewer);
viewer.addFilter(new ViewerFilter() {
@Override
public boolean select(Viewer viewer1, Object parentElement, Object element) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@
import org.eclipse.ui.part.IShowInTargetList;
import org.eclipse.ui.part.Page;
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.views.WorkbenchViewerSetup;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;

import org.eclipse.ui.texteditor.ITextEditorActionConstants;
Expand Down Expand Up @@ -423,6 +424,9 @@ protected void internalExpandToLevel(Widget node, int level) {
*/
@Override
public boolean isExpandable(Object element) {
if (isExpandableNode(element)) {
return false;
}
if (hasFilters()) {
return getFilteredChildren(element).length > 0;
}
Expand Down Expand Up @@ -938,6 +942,7 @@ public void createControl(Composite parent) {
);

fOutlineViewer= new JavaOutlineViewer(tree);
WorkbenchViewerSetup.setupViewer(fOutlineViewer);
initDragAndDrop();
fOutlineViewer.setContentProvider(new ChildrenProvider());
fOutlineViewer.setLabelProvider(new DecoratingJavaLabelProvider(lprovider));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
import org.eclipse.ui.part.IShowInTarget;
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.views.WorkbenchViewerSetup;
import org.eclipse.ui.views.framelist.Frame;
import org.eclipse.ui.views.framelist.FrameAction;
import org.eclipse.ui.views.framelist.FrameList;
Expand Down Expand Up @@ -284,6 +285,9 @@ protected boolean evaluateExpandableWithFilters(Object parent) {
if (parent instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) parent).isArchive()) {
return false;
}
if(isExpandableNode(parent)) {
return false;
}
return true;
}

Expand Down Expand Up @@ -492,6 +496,7 @@ public void createPartControl(Composite parent) {

fViewer= createViewer(fDisplayArea);
fViewer.setUseHashlookup(true);
WorkbenchViewerSetup.setupViewer(fViewer);

fEmptyWorkspaceHelper.setNonEmptyControl(fViewer.getControl());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.WorkbenchViewerSetup;

import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
Expand Down Expand Up @@ -575,6 +576,7 @@ protected TreeViewer createTreeViewer(Composite parent, int style) {
tree.setLayoutData(gd);

final TreeViewer treeViewer= new OutlineTreeViewer(tree);
WorkbenchViewerSetup.setupViewer(treeViewer);

// Hard-coded filters
treeViewer.addFilter(new NamePatternFilter());
Expand Down

0 comments on commit afe043f

Please sign in to comment.