Source:
public void createItemSetTable() { if (viewer == null && !set.getItems().isEmpty()) { boolean fixedViewerSize = set.getItems().size() > MAXIMUM_ITEMS_SHOWN; int heightHint = fixedViewerSize ? 300 : SWT.DEFAULT; int style = SWT.SINGLE | SWT.BORDER | SWT.VIRTUAL; if (fixedViewerSize) { style |= SWT.V_SCROLL; } else { style |= SWT.NO_SCROLL; } viewer = new TreeViewer(treeContainer, style); GridDataFactory.fillDefaults() .span(2, 1) .grab(true, true) .hint(500, heightHint) .applyTo(viewer.getControl()); viewer.setContentProvider(new ReviewSetContentProvider()); ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); final DelegatingStyledCellLabelProvider styledLabelProvider = new DelegatingStyledCellLabelProvider( new ReviewsLabelProvider.TreeWithAuthors()) { @Override public String getToolTipText(Object element) { return ReviewsLabelProvider.ITEMS_COLUMN.getToolTipText(element); }; }; viewer.setLabelProvider(styledLabelProvider); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { ITreeSelection selection = (ITreeSelection) event.getSelection(); TreePath[] paths = selection.getPaths(); for (TreePath path : paths) { for (int i = 0; i < path.getSegmentCount(); i++) { Object o = path.getSegment(i); if (o instanceof IFileItem) { IFileItem item = (IFileItem) o; getParentSection().getUiFactoryProvider() .getOpenFileFactory(ReviewSetContentSection.this.getParentSection(), set, item) .execute(); } } } } }); EditorUtil.addScrollListener(viewer.getTree()); viewer.setInput(set); viewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { reflowAsync(); } @Override public void treeCollapsed(TreeExpansionEvent event) { reflowAsync(); } }); } }

Target:
public void createItemSetTable() { if (viewer == null && !set.getItems().isEmpty()) { boolean fixedViewerSize = set.getItems().size() > MAXIMUM_ITEMS_SHOWN; int heightHint = fixedViewerSize ? 300 : SWT.DEFAULT; int style = SWT.SINGLE | SWT.BORDER | SWT.VIRTUAL; if (fixedViewerSize) { style |= SWT.V_SCROLL; } else { style |= SWT.NO_SCROLL; } viewer = new TreeViewer(treeContainer, style); GridDataFactory.fillDefaults() .span(2, 1) .grab(true, true) .hint(500, heightHint) .applyTo(viewer.getControl()); viewer.setContentProvider(new ReviewSetContentProvider()); ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); final DelegatingStyledCellLabelProvider styledLabelProvider = new DelegatingStyledCellLabelProvider( new ReviewsLabelProvider.Tree(true)) { @Override public String getToolTipText(Object element) { return ReviewsLabelProvider.ITEMS_COLUMN.getToolTipText(element); }; }; viewer.setLabelProvider(styledLabelProvider); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { ITreeSelection selection = (ITreeSelection) event.getSelection(); TreePath[] paths = selection.getPaths(); for (TreePath path : paths) { for (int i = 0; i < path.getSegmentCount(); i++) { Object o = path.getSegment(i); if (o instanceof IFileItem) { IFileItem item = (IFileItem) o; getParentSection().getUiFactoryProvider() .getOpenFileFactory(ReviewSetContentSection.this.getParentSection(), set, item) .execute(); } } } } }); EditorUtil.addScrollListener(viewer.getTree()); viewer.setInput(set); viewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { reflowAsync(); } @Override public void treeCollapsed(TreeExpansionEvent event) { reflowAsync(); } }); } }