/******************************************************************************* * Copyright (c) 2005, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * *******************************************************************************/ package org.eclipse.dltk.ruby.activestatedebugger.preferences; import org.eclipse.core.resources.IProject; import org.eclipse.dltk.debug.ui.preferences.ExternalDebuggingEngineOptionsBlock; import org.eclipse.dltk.ruby.activestatedebugger.RubyActiveStateDebuggerConstants; import org.eclipse.dltk.ruby.activestatedebugger.RubyActiveStateDebuggerPlugin; import org.eclipse.dltk.ruby.core.RubyNature; 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.swt.widgets.Composite; import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; public class RubyActiveStateDebuggerPreferencePage extends AbstractConfigurationBlockPropertyAndPreferencePage { static PreferenceKey ENGINE_PATH = new PreferenceKey( RubyActiveStateDebuggerPlugin.PLUGIN_ID, RubyActiveStateDebuggerConstants.DEBUGGING_ENGINE_PATH_KEY); static PreferenceKey ENABLE_LOGGING = new PreferenceKey( RubyActiveStateDebuggerPlugin.PLUGIN_ID, RubyActiveStateDebuggerConstants.ENABLE_LOGGING); static PreferenceKey LOG_FILE_PATH = new PreferenceKey( RubyActiveStateDebuggerPlugin.PLUGIN_ID, RubyActiveStateDebuggerConstants.LOG_FILE_PATH); static PreferenceKey LOG_FILE_NAME = new PreferenceKey( RubyActiveStateDebuggerPlugin.PLUGIN_ID, RubyActiveStateDebuggerConstants.LOG_FILE_NAME); private static final String PREFERENCE_PAGE_ID = "org.eclipse.dltk.ruby.preferences.debug.engines.activestatedebugger"; //$NON-NLS-1$ private static final String PROPERTY_PAGE_ID = "org.eclipse.dltk.ruby.propertyPage.debug.engines.activestatedebugger"; //$NON-NLS-1$ @Override protected AbstractOptionsBlock createOptionsBlock( IStatusChangeListener newStatusChangedListener, IProject project, IWorkbenchPreferenceContainer container) { return new ExternalDebuggingEngineOptionsBlock( newStatusChangedListener, project, new PreferenceKey[] { ENGINE_PATH, ENABLE_LOGGING, LOG_FILE_PATH, LOG_FILE_NAME }, container) { @Override protected void createLoggingBlock(Composite composite) { /* * remove once the python active state debug runner supports * setting up the log file */ } @Override protected PreferenceKey getDebuggingEnginePathKey() { return ENGINE_PATH; } @Override protected PreferenceKey getEnableLoggingPreferenceKey() { return ENABLE_LOGGING; } @Override protected PreferenceKey getLogFileNamePreferenceKey() { return LOG_FILE_NAME; } @Override protected PreferenceKey getLogFilePathPreferenceKey() { return LOG_FILE_PATH; } }; } @Override protected String getHelpId() { // TODO Auto-generated method stub return null; } @Override protected String getNatureId() { return RubyNature.NATURE_ID; } @Override protected String getProjectHelpId() { // TODO Auto-generated method stub return null; } @Override protected void setDescription() { setDescription(PreferenceMessages.PreferencesDescription); } @Override protected void setPreferenceStore() { setPreferenceStore(RubyActiveStateDebuggerPlugin.getDefault() .getPreferenceStore()); } @Override protected String getPreferencePageId() { return PREFERENCE_PAGE_ID; } @Override protected String getPropertyPageId() { return PROPERTY_PAGE_ID; } }