Bug 307163 DBCS3.6: Resource Filter UI didn't restore grouped filters
Build Identifier: I20100313-1044 When reopening Resource Filters property editor after adding several filters under either of top-level AND/OR/NOT group, none of children in such top-level group filter is shown while settings are actually persisted in .project. Reproducible: Always Steps to Reproduce: 1. Create a project and add some files and folders. 2. Add resource filters to the project or the folder just created, and filters are grouped by AND/OR/NOT. 3. Ensure filters are active for exiting resources under the project. 4. Reopen "Resource Fileters" property editor 5. Verify the filters added in Step 2 are restored. Problem: None of child filters under top-level AND/OR/NOT group is shown Expected: All nested child filters under top-level AND/OR/NOT group are totally shown. Note that persistent entries for all filters are actually existing in a .project file.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
if (((Boolean) value).booleanValue())
				filter.setType(type | IResourceFilterDescription.INHERITABLE);
			else
				filter.setType(type);
		}
		if (property.equals(FilterTypeUtil.ARGUMENTS)) {
			filter.setArguments(value.equals("") ? null : value); 
		}
	}
	static IFilterMatcherDescriptor getDescriptor(String id) {
		IFilterMatcherDescriptor[] descriptors = ResourcesPlugin.getWorkspace()
				.getFilterMatcherDescriptors();
		for (int i = 0; i < descriptors.length; i++) {
			if (descriptors[i].getId().equals(id))
				return descriptors[i];
		}
		return null;
	}
	static int getDescriptorIndex(String id) {
		IFilterMatcherDescriptor descriptors[] = ResourcesPlugin.getWorkspace()
				.getFilterMatcherDescriptors();
		for (int i = 0; i < descriptors.length; i++) {
			if (descriptors[i].getId().equals(id))
				return i;
		}
		return -1;
	}
	static Object getValue(UIResourceFilterDescription filter, String property) {
		if (property.equals(ID)) {
			String id = filter.getFileInfoMatcherDescription().getId();