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
MarkerFieldFilterGroup filter = (MarkerFieldFilterGroup) filters
					.next();
			int scope = filter.getScope();
			if (scope == MarkerFieldFilterGroup.ON_ANY
					|| scope == MarkerFieldFilterGroup.ON_WORKING_SET)
				continue;
			if (newElements == null || newElements.length < 1)
				continue;
			if (focusResources.length == 0)
				return true; 
			if (Arrays.equals(focusResources, newElements))
				continue;
			if (scope == MarkerFieldFilterGroup.ON_ANY_IN_SAME_CONTAINER) {
				Collection oldProjects = MarkerFieldFilterGroup
						.getProjectsAsCollection(focusResources);
				Collection newProjects = MarkerFieldFilterGroup
						.getProjectsAsCollection(newElements);
				if (oldProjects.size() == newProjects.size()
						&& newProjects.containsAll(oldProjects))
					continue;
				return true;
			}
			return true;
		}
		return false;
	}
	/**
	 * Write the settings for the filters to the memento.
	 * 
	 * @param memento