Yes, I know we aren't supposed to implement IPreferencesService, but this isn't a regular circumstance; since we want to have the same functionality as the preference dialog without being the preference dialog, this seems appropriate.