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
.getString("ResourceInfo.linkedFile"); 
	private static String LINKED_FOLDER_LABEL = IDEWorkbenchMessages
			.getString("ResourceInfo.linkedFolder"); 
	private static String UNKNOWN_LABEL = IDEWorkbenchMessages
			.getString("ResourceInfo.unknown"); 
	private static String NOT_LOCAL_TEXT = IDEWorkbenchMessages
			.getString("ResourceInfo.notLocal"); 
	private static String MISSING_PATH_VARIABLE_TEXT = IDEWorkbenchMessages
			.getString("ResourceInfo.undefinedPathVariable"); 
	private static String NOT_EXIST_TEXT = IDEWorkbenchMessages
			.getString("ResourceInfo.notExist"); 
	private static String PATH_TITLE = IDEWorkbenchMessages
			.getString("ResourceInfo.path"); 
	private static String TIMESTAMP_TITLE = IDEWorkbenchMessages
			.getString("ResourceInfo.lastModified"); 
	private static String FILE_NOT_EXIST_TEXT = IDEWorkbenchMessages
			.getString("ResourceInfo.fileNotExist"); 
	private static String FILE_ENCODING_TITLE = IDEWorkbenchMessages
			.getString("WorkbenchPreference.encoding"); 
	private static String CONTAINER_ENCODING_TITLE = IDEWorkbenchMessages
			.getString("ResourceInfo.fileEncodingTitle"); 
	private static String FILE_CONTENT_ENCODING_FORMAT = IDEWorkbenchMessages
			.getString("ResourceInfo.fileContentEncodingFormat"); 
	private static String FILE_CONTAINER_ENCODING_FORMAT = IDEWorkbenchMessages
			.getString("ResourceInfo.fileContainerEncodingFormat"); 
	private static String CONTAINER_ENCODING_FORMAT = IDEWorkbenchMessages
			.getString("ResourceInfo.containerEncodingFormat"); 
	
	private static final int MAX_VALUE_WIDTH = 80;
	/**