/**
* Copyright (c) 2014 by Brainwy Software LTDA. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.editor.preferences;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.ColorFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.python.pydev.plugin.PydevPlugin;
public class PydevVerticalIndentGuidePreferencesPage extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
private ColorFieldEditor selectionColorFieldEditor;
private BooleanFieldEditor useEditorForegroundAsColorFieldEditor;
private BooleanFieldEditor showVerticalindentGuideFieldEditor;
private IntegerFieldEditor transparencyFieldEditor;
public PydevVerticalIndentGuidePreferencesPage() {
super(GRID);
setDescription("Vertical Indent Guide");
setPreferenceStore(PydevPlugin.getDefault().getPreferenceStore());
}
@Override
public void init(IWorkbench workbench) {
}
@Override
protected void createFieldEditors() {
Composite p = getFieldEditorParent();
showVerticalindentGuideFieldEditor = new BooleanFieldEditor(PydevEditorPrefs.USE_VERTICAL_INDENT_GUIDE,
"Show vertical indent guide?", p);
addField(showVerticalindentGuideFieldEditor);
useEditorForegroundAsColorFieldEditor = new BooleanFieldEditor(
PydevEditorPrefs.USE_VERTICAL_INDENT_COLOR_EDITOR_FOREGROUND,
"Use the editor foreground as the color?", p);
addField(useEditorForegroundAsColorFieldEditor);
selectionColorFieldEditor = new ColorFieldEditor(PydevEditorPrefs.VERTICAL_INDENT_COLOR,
"Vertical indent guide color.", p);
addField(selectionColorFieldEditor);
transparencyFieldEditor = new IntegerFieldEditor(PydevEditorPrefs.VERTICAL_INDENT_TRANSPARENCY,
"Vertical indent guide transparency\n(0 = transparent, 255 = opaque).", p);
transparencyFieldEditor.setValidRange(0, 255);
addField(transparencyFieldEditor);
updateInitialState();
}
private void updateInitialState() {
IPreferenceStore preferenceStore = PydevPlugin.getDefault().getPreferenceStore();
boolean show = preferenceStore.getBoolean(PydevEditorPrefs.USE_VERTICAL_INDENT_GUIDE);
update(show,
show && !preferenceStore.getBoolean(PydevEditorPrefs.USE_VERTICAL_INDENT_COLOR_EDITOR_FOREGROUND));
}
@Override
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
updateCurrentState();
}
private void updateCurrentState() {
boolean show = showVerticalindentGuideFieldEditor.getBooleanValue();
update(show, show && !useEditorForegroundAsColorFieldEditor.getBooleanValue());
}
@Override
protected void performDefaults() {
super.performDefaults();
updateCurrentState();
}
private void update(boolean enableSelectEditorColor, boolean enableSelectionColor) {
Composite p = getFieldEditorParent();
useEditorForegroundAsColorFieldEditor.setEnabled(enableSelectEditorColor, p);
selectionColorFieldEditor.setEnabled(enableSelectionColor, p);
transparencyFieldEditor.setEnabled(enableSelectEditorColor, p);
}
}