Bug 297728 [Filters] IFileInfoMatcherDescription and FileInfoMatcherDescription cleanup
Users should not be allowed to modify matcher descriptions once they are used in any resource filter. Right now IFileInfoMatcherDescription has setters what is not right, since setting new id or arguments on the matcher doesn't affect the filter. We can either create kind of a factory for creating IFileInfoMatcherDescription objects, remove setters from IFileInfoMatcherDescription and make the default implementation FileInfoMatcherDescription non-API, or get rid of IFileInfoMatcherDescription and use immutable FileInfoMatcherDescription objects (initialization in constructor and getters only).
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
/**
	 * @param font
	 * @param composite
	 * @return the group
	 */
	private Group createGroup(Font font, Composite composite, String text,
			boolean grabExcessVerticalSpace) {
		GridLayout layout;
		GridData data;
		Group modeComposite = new Group(composite, SWT.NONE);
		modeComposite.setText(text);
		layout = new GridLayout();
		layout.numColumns = 1;
		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
		modeComposite.setLayout(layout);
		data = new GridData(SWT.FILL, SWT.FILL, true, grabExcessVerticalSpace);
		modeComposite.setLayoutData(data);
		modeComposite.setFont(font);
		return modeComposite;
	}
	/**
	 * @param font
	 * @param composite
	 */
	private void createTargetArea(Font font, Composite composite) {
		GridData data;
		Group targetComposite = createGroup(font, composite, NLS.bind(