Bug 301820 Resource Filters UI is not intuitive
Build ID: Eclipse SDK 3.6m5 As a user, I want to hide all backup and object files from my Eclipse resource tree, such that I can concentrate on what's relevant. I want to do this with a simple UI that I can understand intuitively. The resource filters are a great new concept, and the UI is extremely powerful. But I am afraid that as of Eclipse 3.6m5, the most common, simple tasks are too hard to do. I'm sorry for bringing this up late -- Only now, after this feature is sure to go into our commercial product, I have a much stronger interest in making the feature really usable beyond being a preview of technology. Here is a concrete suggestion: 1.) For grouping filters (AND,OR,NOT), have a separate dialog ("Add Group...") rather than managing this through the single "Add..." dialog. Rationale: - I expect that groups will be needed much less than "normal" filters - Groups are conceptionally different than "normal" filters 2.) For search patterns, use the same concept as used in many other places at Eclipse, like the Search dialog for instance: - Use glob patterns by default - Have a checkbox for "Regular Expression" beside. - For glob patterns, allow listing multiple patterns separated by , This is the same as "search" does for file names. Users will intuitively understand and appreciate this metaphor used elsewhere. Plus, I guess that the most common use for filters is hiding stuff like *.o, *.obj, *~, *.bak --> This most common use case should be most easy to use. My 3rd and 4th suggestions are less important: 3.) Instead of the "Include" and "Exclude" icons, which not really fit too well into the iconset used elsewhere at Eclipse, have a checkbox for "hide matching" beside the filter patterns to flip the meaning of the patterns from "include only" to "hide specified". 4.) Instead of the "Inheritable" option, call this option (X) Apply recursively to folder structure and put it below the filter patterns to enter. Again, sorry for bringing this up late, but I am very confident that these suggestions would greatly improve usability of the feature for casual or beginning users.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
try {
			gc.setFont(button.getFont());
			fontMetrics = gc.getFontMetrics();
		} finally {
			gc.dispose();
		}
		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
				IDialogConstants.BUTTON_WIDTH);
		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
				true).x);
	}
	/**
	 * Apply the default state of the resource.
	 */
	public void performDefaults() {
		if (resource == null)
			return;
		filters = new Filters(resource);
		filters.removeAll();
		filterView.setInput(filters);
		filterView.refresh();
	}
	/**
	 * @return the filters that were configured on this resource
	 */
	public UIResourceFilterDescription[] getFilters() {
		FilterCopy[] newFilters = filters.getChildren();
		UIResourceFilterDescription[] result = new UIResourceFilterDescription[newFilters.length];
		for (int i = 0; i < newFilters.length; i++) {
			result[i] = newFilters[i];