package org.eclipse.dltk.ruby.fastdebugger.preferences; import org.eclipse.core.resources.IProject; import org.eclipse.dltk.debug.ui.preferences.DebuggingEngineConfigOptionsBlock; import org.eclipse.dltk.ruby.fastdebugger.FastDebuggerConstants; import org.eclipse.dltk.ruby.fastdebugger.FastDebuggerPlugin; import org.eclipse.dltk.ui.preferences.PreferenceKey; import org.eclipse.dltk.ui.util.IStatusChangeListener; import org.eclipse.dltk.ui.util.SWTFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; public class FastDebuggerConfigurationBlock extends DebuggingEngineConfigOptionsBlock { private static final PreferenceKey ENABLE_LOGGING = new PreferenceKey( FastDebuggerPlugin.PLUGIN_ID, FastDebuggerConstants.ENABLE_LOGGING); private static final PreferenceKey LOG_FILE_PATH = new PreferenceKey( FastDebuggerPlugin.PLUGIN_ID, FastDebuggerConstants.LOG_FILE_PATH); private static final PreferenceKey LOG_FILE_NAME = new PreferenceKey( FastDebuggerPlugin.PLUGIN_ID, FastDebuggerConstants.LOG_FILE_NAME); private static final PreferenceKey CHECK_RUBY_DEBUG = new PreferenceKey( FastDebuggerPlugin.PLUGIN_ID, FastDebuggerConstants.CHECK_RUBY_DEBUG); public FastDebuggerConfigurationBlock(IStatusChangeListener context, IProject project, IWorkbenchPreferenceContainer container) { super(context, project, getKeys(), container); } private static PreferenceKey[] getKeys() { return new PreferenceKey[] { ENABLE_LOGGING, LOG_FILE_PATH, LOG_FILE_NAME, CHECK_RUBY_DEBUG }; } @Override protected void createEngineBlock(Composite composite) { // no engine preferences, yet... } @Override protected void createOtherBlock(Composite parent) { final Label noteLabel = new Label(parent, SWT.WRAP); noteLabel .setText(FastDebuggerPreferenceMessages.FastDebuggerConfigurationBlock_rubyDebugGemMustBeInstalled); GridData data = new GridData(SWT.FILL, GridData.BEGINNING, true, false); data.widthHint = 100; noteLabel.setLayoutData(data); Button checkRubyDebug = SWTFactory .createCheckButton( parent, FastDebuggerPreferenceMessages.FastDebuggerConfigurationBlock_rubyDebugCheckInstalled, null, false, 1); bindControl(checkRubyDebug, CHECK_RUBY_DEBUG, null); } @Override protected PreferenceKey getEnableLoggingPreferenceKey() { return ENABLE_LOGGING; } @Override protected PreferenceKey getLogFileNamePreferenceKey() { return LOG_FILE_NAME; } @Override protected PreferenceKey getLogFilePathPreferenceKey() { return LOG_FILE_PATH; } }