1 package com.quantum.editors;
 
   3 import com.quantum.QuantumPlugin;
 
   5 import org.eclipse.jface.preference.PreferenceConverter;
 
   6 import org.eclipse.jface.util.IPropertyChangeListener;
 
   7 import org.eclipse.jface.util.PropertyChangeEvent;
 
   8 import org.eclipse.swt.custom.StyledText;
 
   9 import org.eclipse.swt.graphics.Color;
 
  10 import org.eclipse.swt.graphics.Font;
 
  11 import org.eclipse.swt.graphics.FontData;
 
  12 import org.eclipse.swt.widgets.Composite;
 
  13 import org.eclipse.swt.widgets.Display;
 
  14 import org.eclipse.ui.editors.text.TextEditor;
 
  16 public class SQLEditor extends TextEditor {
 
  17         SQLConfiguration config;
 
  18         private ColorManager colorManager;
 
  20          * An editor capable of editing SQL scripts
 
  24                 colorManager = new ColorManager();
 
  25                 config = new SQLConfiguration(colorManager);
 
  28                 setPreferenceStore(QuantumPlugin.getDefault().getPreferenceStore());
 
  29                 IPropertyChangeListener preferenceListener = new IPropertyChangeListener() {
 
  30                         public void propertyChange(PropertyChangeEvent event) {
 
  32                                 config.initializeColors();
 
  33                                 getSourceViewer().invalidateTextPresentation();
 
  34                                 StyledText widget = getSourceViewer().getTextWidget();
 
  35                                 FontData font = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font"); //$NON-NLS-1$
 
  36                                 widget.setFont(new Font(Display.getCurrent(), font));
 
  37                                 Color background = colorManager.getColor(SQLColorConstants.BACKGROUND);
 
  38                                 widget.setBackground(background);
 
  42                         addPropertyChangeListener(preferenceListener);
 
  44                 setSourceViewerConfiguration(config);
 
  45                 setDocumentProvider(new SQLDocumentProvider());
 
  47         public void dispose() {
 
  48                 colorManager.dispose();
 
  51         public void createPartControl(Composite arg0) {
 
  52                 super.createPartControl(arg0);
 
  53                 StyledText widget = getSourceViewer().getTextWidget();
 
  54                 FontData font = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font"); //$NON-NLS-1$
 
  55                 widget.setFont(new Font(Display.getCurrent(), font));
 
  56                 Color background = colorManager.getColor(SQLColorConstants.BACKGROUND);
 
  57                 widget.setBackground(background);