Bug 44443 [Tasks] Problems View should 'filter' more efficiently
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/DialogMarkerFilter.java
typesViewer.getControl().setLayoutData(gridData);
		typesViewer.setContentProvider(getContentProvider());
		typesViewer.setLabelProvider(getLabelProvider());
		typesViewer.setSorter(getSorter());
		typesViewer.addCheckStateListener(checkStateListener);
		typesViewer.setInput(filter.getRootTypes().toArray());
		
		Composite buttonComposite = new Composite(composite, SWT.NONE);
		GridLayout buttonLayout = new GridLayout();
		buttonLayout.marginWidth = 0;
		buttonComposite.setLayout(buttonLayout);
		selectAllButton = createButton(buttonComposite, 
									   SELECT_ALL_ID, 
									   Messages.getString("filtersDialog.selectAll"),  
									   false);
		deselectAllButton = createButton(buttonComposite, 
										 DESELECT_ALL_ID, 
										 Messages.getString("filtersDialog.deselectAll"),  
										 false);
	}
	private IStructuredContentProvider getContentProvider() {
		return new IStructuredContentProvider() {
			public Object[] getElements(Object inputElement) {
				List roots = filter.getRootTypes();
				List elements = new ArrayList();
				for (int i = 0; i < roots.size(); i++) {
					Object obj = roots.get(i);
					if (obj instanceof MarkerType) {
						elements.add(obj);
						MarkerType[] subTypes = ((MarkerType) obj).getAllSubTypes();