Bug 56957 [Encoding] Reusable EncodingFieldEditor
I have added the ability to set an encoding for a repository so that commit messages and file names can be properly translated between a client and server whose encodings differ. I have extracted much of the code from IDEEditorsPreferencePage into an EncodingFieldEditor class so I could us it. I was planning on providing a patch to the UI with the hope that this class could be API but there is a roadblock that prevents this. Basically, the encoding preference is in a org.eclipse.core.Preferences node but a field editor requires an IPreferenceStore. There are already two adapters for this is the platform but one is a private inner class of AbstractUIPlugin and the other lives in the text plugin. Instead of creating a patch, I'm just attaching the EncodingFieldEditor class for future consideration.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
* 
	 * @return String
	 * @param IResource -
	 *            the resource to query
	 */
	private String getDateStringValue(IResource resource) {
		if (!resource.isLocal(IResource.DEPTH_ZERO))
			return NOT_LOCAL_TEXT;
		IPath location = resource.getLocation();
		if (location == null) {
			if (resource.isLinked())
				return MISSING_PATH_VARIABLE_TEXT;
			return NOT_EXIST_TEXT;
		} else {
			File localFile = location.toFile();
			if (localFile.exists()) {
				DateFormat format = DateFormat.getDateTimeInstance(
						DateFormat.LONG, DateFormat.MEDIUM);
				return format.format(new Date(localFile.lastModified()));
			}
			return NOT_EXIST_TEXT;
		}
	}
	/**
	 * Get the location of a resource
	 */
	private String getLocationText(IResource resource) {
		if (!resource.isLocal(IResource.DEPTH_ZERO))
			return NOT_LOCAL_TEXT;
		IPath resolvedLocation = resource.getLocation();