Bug 137893 [Markers] Filtering ion Problems view should allow "ANDing" filter conditions
I am trying to make use of the filter settings in ProblemView, but apparently the misc. filters are OR-ed. I want to filter away several types of warnings but can't do so, because conditions are apparently OR'ed instead of AND-ed. Usecase: I don't want to see warnings that contain the substring "(The field <foo>).COPYRIGHT is never read locally" nor warnings containing "(The field <foo>).COPYRIGHT is hiding a field from type (<bar>)" (note: the parts in bracket I only included for clarity. My filters of course only specify the parts outside the brackets). I realize that I could specify a single filter just using ".COPYRIGHT is" but that might inadvertedly also hide other warnings that I might be interested in. And occasionally I also would like to enable additional filters like "<foo> should be tagged with @Override since ..." or "... is emulated by a synthetic aceessor method. Increasing its visibility will improve ...". Changing filters is easier and quicker for such temporary adaptations than changing compilation pref's and rebuilding everything. Michael
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/provisional/views/markers/MarkerContentGenerator.java
* 
	 * @param results
	 *            The Collection to add new entries to
	 * @param resources
	 * @param group
	 *            the group to filter on. May be <code>null</code>.
	 * @param depth
	 * @param monitor
	 */
	private void findMarkers(Collection results, IResource[] resources,
			MarkerFieldFilterGroup group, int depth, IProgressMonitor monitor) {
		if (resources == null) {
			return;
		}
		
		
		Collection selectedTypes = getMarkerTypes();
		
		HashSet typesToSearch = new HashSet(selectedTypes.size());
		
		
		HashSet includeAllSubtypes = new HashSet(selectedTypes.size());
		typesToSearch.addAll(selectedTypes);
		Iterator iter = selectedTypes.iterator();
		while (iter.hasNext()) {
			MarkerType type = (MarkerType) iter.next();
			Collection subtypes = Arrays.asList(type.getAllSubTypes());
			if (selectedTypes.containsAll(subtypes)) {
				typesToSearch.removeAll(subtypes);
				includeAllSubtypes.add(type);