X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/preferences/SQLEditorPreferences.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/preferences/SQLEditorPreferences.java new file mode 100644 index 0000000..b1697ba --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/preferences/SQLEditorPreferences.java @@ -0,0 +1,339 @@ +package com.quantum.preferences; + + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +import com.quantum.editors.ColorManager; +import com.quantum.editors.SQLColorConstants; +import com.quantum.util.versioning.VersioningHelper; + +import org.eclipse.jface.preference.ColorFieldEditor; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.FontDialog; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + +public class SQLEditorPreferences extends PreferencePage + implements IWorkbenchPreferencePage { + FontDialog fontDialog; + ColorFieldEditor backgroundColorEditor; + + ColorFieldEditor textColorEditor; + boolean textFlag; + ColorFieldEditor keywordColorEditor; + boolean keywordFlag; + ColorFieldEditor stringColorEditor; + boolean stringFlag; + ColorFieldEditor numericColorEditor; + boolean numericFlag; + ColorFieldEditor commentColorEditor; + boolean commentFlag; + + Button boldText; + Button boldKeyword; + Button boldString; + Button boldNumeric; + Button boldComment; + + IWorkbench workbench; + FontData fontData; + Label fontDisplay; + public void init(IWorkbench workbench) { + //Initialize the preference store + this.workbench = workbench; + setPreferenceStore(QuantumPlugin.getDefault().getPreferenceStore()); + initializeColorDefaults(getPreferenceStore()); + } + + private void initializeColorDefaults(IPreferenceStore store) { + RGB BACKGROUND = new RGB(255, 255, 255); + RGB COMMENT = new RGB(88, 148, 64); + RGB KEYWORD = new RGB(126, 0, 75); + RGB STRING = new RGB(0, 0, 255); + RGB NUMERIC = new RGB(255, 0, 0); + RGB DEFAULT = new RGB(0, 0, 0); + PreferenceConverter.setDefault(store, + "quantum.background.color", BACKGROUND); //$NON-NLS-1$ + PreferenceConverter.setDefault(store, + "quantum.text.color", DEFAULT); //$NON-NLS-1$ + PreferenceConverter.setDefault(store, + "quantum.keyword.color", KEYWORD); //$NON-NLS-1$ + PreferenceConverter.setDefault(store, + "quantum.comment.color", COMMENT); //$NON-NLS-1$ + PreferenceConverter.setDefault(store, + "quantum.string.color", STRING); //$NON-NLS-1$ + PreferenceConverter.setDefault(store, + "quantum.numeric.color", NUMERIC); //$NON-NLS-1$ + } + + protected void performDefaults() { + fontData = null; + updateFontDisplay(); + textFlag = false; + keywordFlag = true; + stringFlag = false; + numericFlag = false; + commentFlag = false; + updateFlags(); + backgroundColorEditor.loadDefault(); + textColorEditor.loadDefault(); + keywordColorEditor.loadDefault(); + stringColorEditor.loadDefault(); + commentColorEditor.loadDefault(); + numericColorEditor.loadDefault(); + } + /** + * Save the preferences to the preference store. + */ + public boolean performOk() { + PreferenceConverter.setValue(getPreferenceStore(), "quantum.font", fontData); //$NON-NLS-1$ + getPreferenceStore().setValue("quantum.text.bold", textFlag); //$NON-NLS-1$ + getPreferenceStore().setValue("quantum.keyword.bold", keywordFlag); //$NON-NLS-1$ + getPreferenceStore().setValue("quantum.string.bold", stringFlag); //$NON-NLS-1$ + getPreferenceStore().setValue("quantum.comment.bold", commentFlag); //$NON-NLS-1$ + getPreferenceStore().setValue("quantum.numeric.bold", numericFlag); //$NON-NLS-1$ + backgroundColorEditor.store(); + textColorEditor.store(); + keywordColorEditor.store(); + stringColorEditor.store(); + commentColorEditor.store(); + numericColorEditor.store(); + return super.performOk(); + } + protected Control createContents(Composite parent) { + Composite main = new Composite(parent, SWT.NULL); + + GridLayout innerLayout = new GridLayout(); + innerLayout.numColumns = 4; + main.setLayout(innerLayout); + + fontData = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font"); //$NON-NLS-1$ + textFlag = getPreferenceStore().getBoolean("quantum.text.bold"); //$NON-NLS-1$ + keywordFlag = getPreferenceStore().getBoolean("quantum.keyword.bold"); //$NON-NLS-1$ + stringFlag = getPreferenceStore().getBoolean("quantum.string.bold"); //$NON-NLS-1$ + commentFlag = getPreferenceStore().getBoolean("quantum.comment.bold"); //$NON-NLS-1$ + numericFlag = getPreferenceStore().getBoolean("quantum.numeric.bold"); //$NON-NLS-1$ + + fontDialog = new FontDialog(workbench.getActiveWorkbenchWindow().getShell()); + Button fontButton = new Button(main, SWT.PUSH); + fontButton.setText(Messages.getString("PreferencesPage.PickFont")); //$NON-NLS-1$ + fontButton.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + if (fontData != null) { + VersioningHelper.setFont(fontDialog, new FontData[] { fontData} ); + } + FontData data = fontDialog.open(); + if (data != null) { + fontData = data; + updateFontDisplay(); + } + } + }); + Button defaultButton = new Button(main, SWT.PUSH); + defaultButton.setText(Messages.getString("PreferencesPage.DefaultFont")); //$NON-NLS-1$ + defaultButton.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + fontData = null; + updateFontDisplay(); + } + }); + + fontDisplay = new Label(main, SWT.NULL); + GridData data = new GridData(GridData.FILL_HORIZONTAL); + data.grabExcessHorizontalSpace = true; + fontDisplay.setLayoutData(data); + updateFontDisplay(); + + ColorManager manager = new ColorManager(); + + Composite comp = new Composite(main, SWT.NULL); + GridData layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + manager.getColor(SQLColorConstants.DEFAULT); + backgroundColorEditor = + new ColorFieldEditor( + "quantum.background.color", //$NON-NLS-1$ + Messages.getString("PreferencesPage.BackgroundColor"), //$NON-NLS-1$ + comp); + + Composite temp = new Composite(main, SWT.NULL); + temp.setSize(0, 0); + + comp = new Composite(main, SWT.NULL); + layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + textColorEditor = + new ColorFieldEditor( + "quantum.text.color", //$NON-NLS-1$ + Messages.getString("PreferencesPage.DefaultTextColor"), //$NON-NLS-1$ + comp); + + boldText = new Button(main, SWT.CHECK); + boldText.setSelection(textFlag); + boldText.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldText.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + textFlag = boldText.getSelection(); + } + }); + + comp = new Composite(main, SWT.NULL); + layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + keywordColorEditor = + new ColorFieldEditor( + Messages.getString("PreferencesPage.quantum.keyword.color_26"), //$NON-NLS-1$ + Messages.getString("PreferencesPage.KeywordTextColor"), //$NON-NLS-1$ + comp); + + boldKeyword = new Button(main, SWT.CHECK); + boldKeyword.setSelection(keywordFlag); + boldKeyword.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldKeyword.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + keywordFlag = boldKeyword.getSelection(); + } + }); + + comp = new Composite(main, SWT.NULL); + layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + commentColorEditor = + new ColorFieldEditor( + "quantum.comment.color", //$NON-NLS-1$ + Messages.getString("PreferencesPage.CommentTextColor"), //$NON-NLS-1$ + comp); + + boldComment = new Button(main, SWT.CHECK); + boldComment.setSelection(commentFlag); + boldComment.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldComment.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + commentFlag = boldComment.getSelection(); + } + }); + + comp = new Composite(main, SWT.NULL); + layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + stringColorEditor = + new ColorFieldEditor( + "quantum.string.color", //$NON-NLS-1$ + Messages.getString("PreferencesPage.StringTextColor"), //$NON-NLS-1$ + comp); + + boldString = new Button(main, SWT.CHECK); + boldString.setSelection(stringFlag); + boldString.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldString.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + stringFlag = boldString.getSelection(); + } + }); + + comp = new Composite(main, SWT.NULL); + layoutData = new GridData(); + layoutData.horizontalSpan = 2; + comp.setLayoutData(layoutData); + + numericColorEditor = + new ColorFieldEditor( + "quantum.numeric.color", //$NON-NLS-1$ + Messages.getString("PreferencesPage.NumericTextColor"), //$NON-NLS-1$ + comp); + + boldNumeric = new Button(main, SWT.CHECK); + boldNumeric.setSelection(numericFlag); + boldNumeric.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldNumeric.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + numericFlag = boldNumeric.getSelection(); + } + }); + + backgroundColorEditor.setPreferencePage(this); + backgroundColorEditor.setPreferenceStore(getPreferenceStore()); + backgroundColorEditor.load(); + + textColorEditor.setPreferencePage(this); + textColorEditor.setPreferenceStore(getPreferenceStore()); + textColorEditor.load(); + + keywordColorEditor.setPreferencePage(this); + keywordColorEditor.setPreferenceStore(getPreferenceStore()); + keywordColorEditor.load(); + + commentColorEditor.setPreferencePage(this); + commentColorEditor.setPreferenceStore(getPreferenceStore()); + commentColorEditor.load(); + + stringColorEditor.setPreferencePage(this); + stringColorEditor.setPreferenceStore(getPreferenceStore()); + stringColorEditor.load(); + + numericColorEditor.setPreferencePage(this); + numericColorEditor.setPreferenceStore(getPreferenceStore()); + numericColorEditor.load(); + + return main; + } + public void updateFontDisplay() { + if (fontData == null) { + fontDisplay.setText(Messages.getString("PreferencesPage.Font_Default")); //$NON-NLS-1$ + } else { + String style = Messages.getString("PreferencesPage.regular"); //$NON-NLS-1$ + if (fontData.getStyle() == SWT.BOLD) { + style = Messages.getString("PreferencesPage.bold"); //$NON-NLS-1$ + } else if (fontData.getStyle() == SWT.ITALIC) { + style = Messages.getString("PreferencesPage.italic"); //$NON-NLS-1$ + } else if (fontData.getStyle() == (SWT.BOLD | SWT.ITALIC)) { + style = Messages.getString("PreferencesPage.boldItalic"); //$NON-NLS-1$ + } + fontDisplay.setText(Messages.getString("PreferencesPage.FontPrompt") + fontData.getName() + '-' + style + '-' + fontData.getHeight()); //$NON-NLS-1$ + } + } + public void updateFlags() { + boldText.setSelection(textFlag); + boldKeyword.setSelection(keywordFlag); + boldString.setSelection(stringFlag); + boldNumeric.setSelection(numericFlag); + boldComment.setSelection(commentFlag); + } +}