package org.eclipse.dltk.ruby.internal.debug.ui.preferences;
import org.eclipse.core.resources.IProject;
import org.eclipse.dltk.debug.ui.preferences.AbstractDebuggingEngineOptionsBlock;
import org.eclipse.dltk.ruby.core.RubyNature;
import org.eclipse.dltk.ruby.debug.RubyDebugConstants;
import org.eclipse.dltk.ruby.debug.RubyDebugPlugin;
import org.eclipse.dltk.ui.PreferencesAdapter;
import org.eclipse.dltk.ui.preferences.AbstractConfigurationBlockPropertyAndPreferencePage;
import org.eclipse.dltk.ui.preferences.AbstractOptionsBlock;
import org.eclipse.dltk.ui.preferences.PreferenceKey;
import org.eclipse.dltk.ui.util.IStatusChangeListener;
import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
/**
* Preference page for Ruby debugging engines
*/
public class RubyDebuggingEnginePreferencePage extends
AbstractConfigurationBlockPropertyAndPreferencePage {
static PreferenceKey DEBUGGING_ENGINE = new PreferenceKey(
RubyDebugPlugin.PLUGIN_ID,
RubyDebugConstants.DEBUGGING_ENGINE_ID_KEY);
private static final String PREFERENCE_PAGE_ID = "org.eclipse.dltk.ruby.preferences.debug.engines"; //$NON-NLS-1$
private static final String PROPERTY_PAGE_ID = "org.eclipse.dltk.ruby.propertyPage.debug.engines"; //$NON-NLS-1$
@Override
protected AbstractOptionsBlock createOptionsBlock(
IStatusChangeListener newStatusChangedListener, IProject project,
IWorkbenchPreferenceContainer container) {
return new AbstractDebuggingEngineOptionsBlock(
newStatusChangedListener, project, getKeys(), container) {
@Override
protected String getNatureId() {
return RubyNature.NATURE_ID;
}
@Override
protected PreferenceKey getSavedContributionKey() {
return DEBUGGING_ENGINE;
}
};
}
@Override
protected String getHelpId() {
// TODO Auto-generated method stub
return null;
}
@Override
protected String getNatureId() {
return RubyNature.NATURE_ID;
}
@Override
protected String getPreferencePageId() {
return PREFERENCE_PAGE_ID;
}
@Override
protected String getProjectHelpId() {
// TODO Auto-generated method stub
return null;
}
@Override
protected String getPropertyPageId() {
return PROPERTY_PAGE_ID;
}
@Override
protected void setDescription() {
setDescription(RubyDebugPreferencesMessages.RubyDebugEnginePreferencePage_description);
}
@Override
protected void setPreferenceStore() {
setPreferenceStore(new PreferencesAdapter(RubyDebugPlugin.getDefault()
.getPluginPreferences()));
}
private PreferenceKey[] getKeys() {
return new PreferenceKey[] { DEBUGGING_ENGINE };
}
}