SQL Plugin copied from Quantum plugin and refactored for PHPEclipse
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.sql / src / net / sourceforge / phpdt / sql / editors / SQLEditor.java
diff --git a/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/editors/SQLEditor.java b/archive/net.sourceforge.phpeclipse.sql/src/net/sourceforge/phpdt/sql/editors/SQLEditor.java
new file mode 100644 (file)
index 0000000..a7bb715
--- /dev/null
@@ -0,0 +1,59 @@
+package net.sourceforge.phpdt.sql.editors;
+
+import net.sourceforge.phpdt.sql.PHPEclipseSQLPlugin;
+
+import org.eclipse.jface.preference.PreferenceConverter;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.editors.text.TextEditor;
+
+public class SQLEditor extends TextEditor {
+       SQLConfiguration config;
+       private ColorManager colorManager;
+       /**
+        * An editor capable of editing SQL scripts
+        */
+       public SQLEditor() {
+               super();
+               colorManager = new ColorManager();
+               config = new SQLConfiguration(colorManager);
+               config.loadPrefs();
+               
+               setPreferenceStore(PHPEclipseSQLPlugin.getDefault().getPreferenceStore());
+               IPropertyChangeListener preferenceListener = new IPropertyChangeListener() {
+                       public void propertyChange(PropertyChangeEvent event) {
+                               config.loadPrefs();
+                               config.initializeColors();
+                               getSourceViewer().invalidateTextPresentation();
+                               StyledText widget = getSourceViewer().getTextWidget();
+                               FontData font = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font");
+                               widget.setFont(new Font(Display.getCurrent(), font));
+                               Color background = colorManager.getColor(SQLColorConstants.BACKGROUND);
+                               widget.setBackground(background);
+                       }
+               };
+               getPreferenceStore().
+                       addPropertyChangeListener(preferenceListener);
+
+               setSourceViewerConfiguration(config);
+               setDocumentProvider(new SQLDocumentProvider());
+       }
+       public void dispose() {
+               colorManager.dispose();
+               super.dispose();
+       }
+       public void createPartControl(Composite arg0) {
+               super.createPartControl(arg0);
+               StyledText widget = getSourceViewer().getTextWidget();
+               FontData font = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font");
+               widget.setFont(new Font(Display.getCurrent(), font));
+               Color background = colorManager.getColor(SQLColorConstants.BACKGROUND);
+               widget.setBackground(background);
+       }
+}