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 index daf8164..ec0c7e1 100644 --- 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 @@ -1,93 +1,74 @@ package com.quantum.preferences; - import com.quantum.Messages; +import com.quantum.PluginPreferences; 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.jface.resource.JFaceResources; 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.Group; 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; + +/** + * A preference page for font and colour preferences for the SQL + * Editor. + * + * @author Tom Schneider + */ +public class SQLEditorPreferences extends PreferencePage + implements IWorkbenchPreferencePage { + + private FontDialog fontDialog; + + private ColorFieldEditor backgroundColorEditor; + private ColorFieldEditor textColorEditor; + private ColorFieldEditor keywordColorEditor; + private ColorFieldEditor stringColorEditor; + private ColorFieldEditor numericColorEditor; + private ColorFieldEditor commentColorEditor; + + private boolean textFlag; + private boolean keywordFlag; + private boolean stringFlag; + private boolean numericFlag; + private boolean commentFlag; - ColorFieldEditor textColorEditor; - boolean textFlag; - ColorFieldEditor keywordColorEditor; - boolean keywordFlag; - ColorFieldEditor stringColorEditor; - boolean stringFlag; - ColorFieldEditor numericColorEditor; - boolean numericFlag; - ColorFieldEditor commentColorEditor; - boolean commentFlag; + private Button boldText; + private Button boldKeyword; + private Button boldString; + private Button boldNumeric; + private Button boldComment; - Button boldText; - Button boldKeyword; - Button boldString; - Button boldNumeric; - Button boldComment; + private FontData fontData; + private Label fontDisplay; - 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; + fontData = PluginPreferences.getDefaultFont(); updateFontDisplay(); - textFlag = false; - keywordFlag = true; - stringFlag = false; - numericFlag = false; - commentFlag = false; + this.textFlag = false; + this.keywordFlag = true; + this.stringFlag = false; + this.numericFlag = false; + this.commentFlag = false; updateFlags(); backgroundColorEditor.loadDefault(); textColorEditor.loadDefault(); @@ -114,87 +95,62 @@ public class SQLEditorPreferences extends PreferencePage numericColorEditor.store(); return super.performOk(); } + protected Control createContents(Composite parent) { Composite main = new Composite(parent, SWT.NULL); + main.setLayout(new GridLayout()); - GridLayout innerLayout = new GridLayout(); - innerLayout.numColumns = 4; - main.setLayout(innerLayout); + createFontSelectionArea(main); + Label label = new Label(main, SWT.NONE); + label.setText(""); + + createColorSelectionArea(main); - 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[] temp = JFaceResources.getTextFont().getFontData(); - fontData = temp == null || temp.length == 0 ? null : temp[0]; - 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(); + return main; + } + /** + * @param main + * @return + */ + private void createColorSelectionArea(Composite parent) { + Composite main = new Composite(parent, SWT.NULL); - Composite comp = new Composite(main, SWT.NULL); - GridData layoutData = new GridData(); - layoutData.horizontalSpan = 2; - comp.setLayoutData(layoutData); + this.textFlag = getPreferenceStore().getBoolean("quantum.text.bold"); //$NON-NLS-1$ + this.keywordFlag = getPreferenceStore().getBoolean("quantum.keyword.bold"); //$NON-NLS-1$ + this.stringFlag = getPreferenceStore().getBoolean("quantum.string.bold"); //$NON-NLS-1$ + this.commentFlag = getPreferenceStore().getBoolean("quantum.comment.bold"); //$NON-NLS-1$ + this.numericFlag = getPreferenceStore().getBoolean("quantum.numeric.bold"); //$NON-NLS-1$ + + + GridLayout layout = new GridLayout(); + + // the colour preference chooser really, really wants to take up a whole + // row, so we need to pretend that our row is only two cells wide, then + // pull a switcheroo later... + layout.numColumns = 2; + main.setLayout(layout); - manager.getColor(SQLColorConstants.DEFAULT); backgroundColorEditor = new ColorFieldEditor( - "quantum.background.color", //$NON-NLS-1$ - Messages.getString("PreferencesPage.BackgroundColor"), //$NON-NLS-1$ - comp); + PluginPreferences.BACKGROUND_COLOR, + Messages.getString(getClass(), "backgroundColor"), //$NON-NLS-1$ + main); - Composite temp = new Composite(main, SWT.NULL); - temp.setSize(0, 0); + Label emptyLabel = new Label(main, SWT.NULL); + emptyLabel.setText(""); - comp = new Composite(main, SWT.NULL); - layoutData = new GridData(); - layoutData.horizontalSpan = 2; - comp.setLayoutData(layoutData); + createEmptyRow(main); - textColorEditor = + this.textColorEditor = new ColorFieldEditor( - "quantum.text.color", //$NON-NLS-1$ - Messages.getString("PreferencesPage.DefaultTextColor"), //$NON-NLS-1$ - comp); + PluginPreferences.TEXT_COLOR, + Messages.getString(getClass(), "defaultTextColor"), //$NON-NLS-1$ + main); - boldText = new Button(main, SWT.CHECK); - boldText.setSelection(textFlag); - boldText.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ - boldText.addSelectionListener(new SelectionListener() { + this.boldText = new Button(main, SWT.CHECK); + this.boldText.setSelection(textFlag); + this.boldText.setText(Messages.getString(getClass(), "bold")); //$NON-NLS-1$ + this.boldText.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { @@ -202,20 +158,15 @@ public class SQLEditorPreferences extends PreferencePage } }); - 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); + PluginPreferences.KEYWORD_COLOR, + Messages.getString(getClass(), "keywordTextColor"), //$NON-NLS-1$ + main); boldKeyword = new Button(main, SWT.CHECK); boldKeyword.setSelection(keywordFlag); - boldKeyword.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldKeyword.setText(Messages.getString(getClass(), "bold")); //$NON-NLS-1$ boldKeyword.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } @@ -224,20 +175,15 @@ public class SQLEditorPreferences extends PreferencePage } }); - 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); + PluginPreferences.COMMENT_COLOR, + Messages.getString(getClass(), "commentTextColor"), //$NON-NLS-1$ + main); boldComment = new Button(main, SWT.CHECK); boldComment.setSelection(commentFlag); - boldComment.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldComment.setText(Messages.getString(getClass(), "bold")); //$NON-NLS-1$ boldComment.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } @@ -246,20 +192,15 @@ public class SQLEditorPreferences extends PreferencePage } }); - 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); + PluginPreferences.STRING_COLOR, + Messages.getString(getClass(), "stringTextColor"), //$NON-NLS-1$ + main); boldString = new Button(main, SWT.CHECK); boldString.setSelection(stringFlag); - boldString.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldString.setText(Messages.getString(getClass(), "bold")); //$NON-NLS-1$ boldString.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } @@ -268,20 +209,15 @@ public class SQLEditorPreferences extends PreferencePage } }); - 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); + PluginPreferences.NUMERIC_COLOR, + Messages.getString(getClass(), "numericTextColor"), //$NON-NLS-1$ + main); boldNumeric = new Button(main, SWT.CHECK); boldNumeric.setSelection(numericFlag); - boldNumeric.setText(Messages.getString("PreferencesPage.Bold")); //$NON-NLS-1$ + boldNumeric.setText(Messages.getString(getClass(), "bold")); //$NON-NLS-1$ boldNumeric.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } @@ -313,29 +249,95 @@ public class SQLEditorPreferences extends PreferencePage numericColorEditor.setPreferencePage(this); numericColorEditor.setPreferenceStore(getPreferenceStore()); numericColorEditor.load(); + + // now for the switcheroo... + // reset the number of columns to 3 + GridLayout innerLayout = new GridLayout(); + innerLayout.numColumns = 3; + main.setLayout(innerLayout); + } - return main; - } - public void updateFontDisplay() { + /** + * @param main + */ + private void createFontSelectionArea(Composite main) { + Group group = new Group(main, SWT.NONE); + group.setText(Messages.getString(getClass(), "font")); + GridLayout innerLayout = new GridLayout(); + innerLayout.numColumns = 2; + group.setLayout(innerLayout); + group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + fontDisplay = new Label(group, SWT.NULL); + GridData data = new GridData(GridData.FILL_HORIZONTAL); + data.horizontalSpan = 2; + fontDisplay.setLayoutData(data); + + fontData = PreferenceConverter.getFontData(getPreferenceStore(), "quantum.font"); //$NON-NLS-1$ + fontDialog = new FontDialog(getShell()); + Button fontButton = new Button(group, SWT.PUSH); + fontButton.setText(Messages.getString(getClass(), "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(group, SWT.PUSH); + defaultButton.setText(Messages.getString(getClass(), "defaultFont")); //$NON-NLS-1$ + defaultButton.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + fontData = PluginPreferences.getDefaultFont(); + updateFontDisplay(); + } + }); + + updateFontDisplay(); + } + + /** + * @param main + */ + private void createEmptyRow(Composite main) { + Label emptyLabel = new Label(main, SWT.NULL); + emptyLabel.setText(""); + GridData gridData = new GridData(); + gridData.horizontalSpan = 3; + emptyLabel.setLayoutData(gridData); + } + + protected void updateFontDisplay() { if (fontData == null) { - fontDisplay.setText(Messages.getString("PreferencesPage.Font_Default")); //$NON-NLS-1$ + fontDisplay.setText(Messages.getString(getClass(), "default")); //$NON-NLS-1$ } else { - String style = Messages.getString("PreferencesPage.regular"); //$NON-NLS-1$ + Object[] parameters = new Object[] { + fontData.getName(), new Integer(fontData.getHeight()) }; + String style = Messages.getString(getClass(), "regularFont", parameters); //$NON-NLS-1$ if (fontData.getStyle() == SWT.BOLD) { - style = Messages.getString("PreferencesPage.bold"); //$NON-NLS-1$ + style = Messages.getString(getClass(), "boldFont", parameters); //$NON-NLS-1$ } else if (fontData.getStyle() == SWT.ITALIC) { - style = Messages.getString("PreferencesPage.italic"); //$NON-NLS-1$ + style = Messages.getString(getClass(), "italicFont", parameters); //$NON-NLS-1$ } else if (fontData.getStyle() == (SWT.BOLD | SWT.ITALIC)) { - style = Messages.getString("PreferencesPage.boldItalic"); //$NON-NLS-1$ + style = Messages.getString(getClass(), "boldItalicFont", parameters); //$NON-NLS-1$ } - fontDisplay.setText(Messages.getString("PreferencesPage.FontPrompt") + fontData.getName() + '-' + style + '-' + fontData.getHeight()); //$NON-NLS-1$ + fontDisplay.setText(style); //$NON-NLS-1$ } } - public void updateFlags() { - boldText.setSelection(textFlag); - boldKeyword.setSelection(keywordFlag); - boldString.setSelection(stringFlag); - boldNumeric.setSelection(numericFlag); - boldComment.setSelection(commentFlag); + protected void updateFlags() { + this.boldText.setSelection(this.textFlag); + this.boldKeyword.setSelection(this.keywordFlag); + this.boldString.setSelection(this.stringFlag); + this.boldNumeric.setSelection(this.numericFlag); + this.boldComment.setSelection(this.commentFlag); } }