Установка предпочтения, перезапуск приложения, определение предпочтения при запуске и добавление системного свойства clearPersistedState - единственный способ сделать это хитрым способом. Работает, но хотелось бы сбросить без перезагрузки.
Плохо то, что он сбросит всю модель.
Используйте этот код в обработчике сброса перспективы:
@Execute
public void restart(IWorkbench application, @Preference IEclipsePreferences preferences) {
preferences.putBoolean("PLEASE_RESET_ON_STARTUP", true);
preferences.flush();
application.restart();
}
и что-то подобное в вашем классе менеджера жизненного цикла:
@PostContextCreate
public void doTheTrick(@Preference IEclipsePreferences preferences) {
if (preferences.get("PLEASE_RESET_ON_STARTUP", "false").equals("true") {
System.setProperty(IWorkbench.CLEAR_PERSISTED_STATE, "true");
preferences.remove("PLEASE_RESET_ON_STARTUP");
preferences.flush();
}
}
Может быть, вам нужно добавить также обработку исключений.