package org.rubypeople.rdt.internal.ui.preferences;
import java.io.IOException;
import java.net.URL;
import java.text.MessageFormat;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.rubypeople.rdt.internal.launching.LaunchingPlugin;
import org.rubypeople.rdt.internal.ui.text.PreferencesAdapter;
public class DebuggerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public DebuggerPreferencePage() {
super(GRID);
Preferences launchingPreferences = LaunchingPlugin.getDefault().getPluginPreferences();
setPreferenceStore(new PreferencesAdapter(launchingPreferences));
setDescription(PreferencesMessages.DebuggerPreferencePage_description_label);
}
public void createFieldEditors() {
addField(new BooleanFieldEditor(org.rubypeople.rdt.internal.launching.PreferenceConstants.USE_RUBY_DEBUG, PreferencesMessages.DebuggerPreferencePage_useRubyDebug_label, getFieldEditorParent()));
addField(new BooleanFieldEditor(org.rubypeople.rdt.internal.launching.PreferenceConstants.VERBOSE_DEBUGGER, PreferencesMessages.DebuggerPreferencePage_verboseDebugger_label, getFieldEditorParent()));
}
protected Control createContents(Composite parent) {
Control result = super.createContents(parent);
Label label = new Label(parent, SWT.WRAP);
URL entry = LaunchingPlugin.getDefault().getBundle().getEntry("/");
String installLocation;
try {
installLocation = FileLocator.resolve(entry).toString();
} catch (IOException e) {
installLocation = "<eclipseInstallation>/plugins/org.rubypeople.rdt.launching_<version>";
}
String message = MessageFormat.format(PreferencesMessages.DebuggerPreferencePage_useRubyDebug_comment, new Object[] { installLocation });
label.setText(message);
FontData[] fontData = getFont().getFontData();
if (fontData.length > 0) {
FontData italicFont = new FontData(fontData[0].getName(), fontData[0].getHeight(), SWT.ITALIC);
label.setFont(new Font(null, italicFont));
}
return result;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {}
}