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 memento
	 */
	private void loadSettings(IMemento memento) {
		if (memento == null)
			return;
		Boolean andValue = memento.getBoolean(TAG_AND);
		if (andValue != null)
			setAndFilters(andValue.booleanValue());
		IMemento children[] = memento.getChildren(TAG_GROUP_ENTRY);
		for (int i = 0; i < children.length; i++) {
			IMemento child = children[i];
			String id = child.getString(IMemento.TAG_ID);
			if (id == null)
				continue;
			if (!loadGroupWithID(child, id))
				
				loadUserFilter(child);
		}
	}
	/**
	 * Load the group with id from the child if there is a matching system group
	 * registered.
	 * 
	 * @param child
	 * @param id
	 * @return <code>true</code> if a matching group was found
	 */
	private boolean loadGroupWithID(IMemento child, String id) {
		Iterator groups = getAllFilters().iterator();
		while (groups.hasNext()) {