package org.eclipse.dltk.debug.ui.preferences; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.dltk.core.IDLTKLanguageToolkit; import org.eclipse.dltk.debug.core.DLTKDebugPluginPreferenceInitializer; import org.eclipse.dltk.debug.ui.DLTKDebugUILanguageManager; import org.eclipse.dltk.debug.ui.IDLTKDebugUILanguageToolkit; import org.eclipse.dltk.ui.DLTKExecuteExtensionHelper; import org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; /** * Abstract base class for script debug preference pages. * * <p> * Preferenece pages that extend from this class will have their preference * values stored in the <code>IPreferenceStore</code> returned from the plugin's * {@link IDLTKDebugUILanguageToolkit} implementation. * </p> * * <p> * These pages will also need to be configured with the specific nature id for * the plugin in the <code>plugin.xml</code> file. ie: * </p> * * <pre> * <page * category="..." * class="class:nature_id" * id="..." * name="..." /> * </pre> * * @see DLTKDebugPluginPreferenceInitializer */ public abstract class AbstractScriptDebugPreferencePage extends AbstractConfigurationBlockPreferencePage implements IExecutableExtension { private IDLTKLanguageToolkit fToolkit; /* * @see * org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org * .eclipse.core.runtime.IConfigurationElement, java.lang.String, * java.lang.Object) */ public final void setInitializationData(IConfigurationElement config, String propertyName, Object data) { fToolkit = DLTKExecuteExtensionHelper.getLanguageToolkit(config, propertyName, data); Assert.isNotNull(fToolkit); } /* * @see * org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPreferencePage * #getHelpId() */ protected String getHelpId() { return null; } /* * @see * org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPreferencePage * #setPreferenceStore() */ protected final void setPreferenceStore() { IDLTKDebugUILanguageToolkit uiToolkit = DLTKDebugUILanguageManager .getLanguageToolkit(fToolkit.getNatureId()); Assert.isNotNull(uiToolkit); IPreferenceStore store = uiToolkit.getPreferenceStore(); Assert.isNotNull(store); setPreferenceStore(store); } protected final IDLTKLanguageToolkit getToolkit() { return fToolkit; } }