1. IEclipsePreferences pref = new DefaultScope().getNode(Application.PLUGIN_ID);
String fontString = pref.get(preferenceName, null);
기본값만 읽어오는 코드 (org.eclipse.core.runtime.preferences 확장점의 PreferenceInitializer.initializeDefaultPreferences 에서 초기화한 것)
-> 변경 사항 저장이 안된다!
2. IEclipsePreferences pref = new ConfigurationScope().getNode(Application.PLUGIN_ID);
String fontString = pref.get(preferenceName, null);
설정값을 저장/읽기가능한 Scope
-> PreferencePage를 한번 띄우기 전엔 값이 NULL 이다.
위 두가지 문제가 있어 아래와 같이 해결하였다.
3. IPreferencesService service = Platform.getPreferencesService();
String fontString = service.getString(Application.PLUGIN_ID, preferenceName, Config.DEFAULT_GRID_FONT, null);
바뀐 값도 잘 읽어오고, 저장도 잘 된다.
(2번의 경우 원래 안되는 것은 아니고 lifecycle이나 구조에 대한 이해의 부족일 듯...)