/** * Save the values specified in the pages. * * <p>The default implementation of this framework method saves all pages of type <code> * PreferencePage</code> (if their store needs saving and is a <code>PreferenceStore</code>). * * <p>Subclasses may override. */ protected void handleSave() { Iterator<IPreferenceNode> nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER).iterator(); while (nodes.hasNext()) { IPreferenceNode node = nodes.next(); IPreferencePage page = node.getPage(); if (page instanceof PreferencePage) { // Save now in case tbe workbench does not shutdown cleanly IPreferenceStore store = ((PreferencePage) page).getPreferenceStore(); if (store != null && store.needsSaving() && store instanceof IPersistentPreferenceStore) { try { ((IPersistentPreferenceStore) store).save(); } catch (IOException e) { String message = JFaceResources.format( "PreferenceDialog.saveErrorMessage", page.getTitle(), // $NON-NLS-1$ e.getMessage()); Policy.getStatusHandler() .show( new Status(IStatus.ERROR, Policy.JFACE, message, e), JFaceResources.getString("PreferenceDialog.saveErrorTitle")); // $NON-NLS-1$ } } } } }
@Override public void updateTitle() { if (currentPage == null) { return; } messageArea.showTitle(currentPage.getTitle(), currentPage.getImage()); }