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
* post processing step.
	 * 
	 * @param registry
	 *            the MarkerSupportRegistry being used to initialise the
	 *            receiver.
	 */
	public void initializeFromConfigurationElement(
			MarkerSupportRegistry registry) {
		String categoryName = configurationElement
				.getAttribute(ATTRIBUTE_DEFAULT_MARKER_GROUPING);
		if (categoryName != null) {
			MarkerGroup group = registry.getMarkerGroup(categoryName);
			if (group != null)
				categoryGroup = group;
		}
		IConfigurationElement[] elements = configurationElement
				.getChildren(MARKER_FIELD_REFERENCE);
		Collection allFieldList = new ArrayList();
		Collection visibleFieldList = new ArrayList();
		for (int i = 0; i < elements.length; i++) {
			MarkerField field = registry.getField(elements[i]
					.getAttribute(MarkerSupportConstants.ATTRIBUTE_ID));
			if (field == null)
				continue;
			allFieldList.add(field);
			if (!VALUE_FALSE
					.equals(elements[i].getAttribute(ATTRIBUTE_VISIBLE)))
				visibleFieldList.add(field);
		}
		allFields = new MarkerField[allFieldList.size()];