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
IDEWorkbenchMessages.getString("ResourceInfoPage.ResourceInfoMessage"), e.getStatus()); 
					return false;
				}
			}
			IDEEncoding.addIDEEncoding(newEncoding);
		}
		
		if (this.editableBox != null) {
			boolean localReadOnlyValue = editableBox.getSelection();
			if (previousReadOnlyValue != localReadOnlyValue) {
				resource.setReadOnly(localReadOnlyValue);
			}
		}
		
		if (this.derivedBox != null) {
			try {
				boolean localDerivedValue = derivedBox.getSelection();
				if (previousDerivedValue != localDerivedValue) {
					resource.setDerived(localDerivedValue);
				}
			} catch (CoreException exception) {
				ErrorDialog.openError(getShell(), IDEWorkbenchMessages
						.getString("InternalError"), 
						exception.getLocalizedMessage(), exception.getStatus());
				return false;
			}
		}
		return true;
	}
}