X-Git-Url: http://git.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLSyntaxPreferencePage.java b/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLSyntaxPreferencePage.java
index a0f8a5b..e855df2 100644
--- a/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLSyntaxPreferencePage.java
+++ b/net.sourceforge.phpeclipse.xml.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLSyntaxPreferencePage.java
@@ -9,7 +9,7 @@
* Roberto Gonzalez Rocha - Initial version
* Igor Malinin - refactoring, minor changes
*
- * $Id: XMLSyntaxPreferencePage.java,v 1.2 2005-05-06 00:55:41 stefanbjarni Exp $
+ * $Id: XMLSyntaxPreferencePage.java,v 1.3 2006-10-21 23:14:13 pombredanne Exp $
*/
package net.sourceforge.phpeclipse.xml.ui.internal.preferences;
@@ -59,440 +59,529 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.texteditor.AbstractTextEditor;
/**
- * The XMLSyntaxPreferencePage is a preference page that handles setting the colors used by the XML editors.
+ * The XMLSyntaxPreferencePage is a preference page that handles setting the
+ * colors used by the XML editors.
*/
-public class XMLSyntaxPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+public class XMLSyntaxPreferencePage extends PreferencePage implements
+ IWorkbenchPreferencePage {
+
+ public final PreferenceDescriptor[] fKeys = new PreferenceDescriptor[] {
+ new PreferenceDescriptor(
+ PreferenceDescriptor.BOOLEAN,
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_DEFAULT
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_DEFAULT
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_TAG
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_TAG
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ATT_NAME
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ATT_NAME
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ATT_VALUE
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ATT_VALUE
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ENTITY
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_ENTITY
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_CDATA
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_CDATA
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_PI
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_PI
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_COMMENT
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_COMMENT
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_DECL
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_DECL
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_SMARTY
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.XML_SMARTY
+ + ITextStylePreferences.SUFFIX_STYLE),
+
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.DTD_CONDITIONAL
+ + ITextStylePreferences.SUFFIX_FOREGROUND),
+ new PreferenceDescriptor(PreferenceDescriptor.STRING,
+ IXMLSyntaxConstants.DTD_CONDITIONAL
+ + ITextStylePreferences.SUFFIX_STYLE), };
+
+ OverlayPreferenceStore overlay;
+
+ final String[][] fSyntaxColorListModel = new String[][] {
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.others"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_DEFAULT },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Tag"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_TAG },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.AttName"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_ATT_NAME },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.AttValue"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_ATT_VALUE },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Entity"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_ENTITY },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.CDATA"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_CDATA },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.PI"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_PI },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Comment"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_COMMENT },
+ {
+ XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.Declaration"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_DECL },
+ {
+ XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.Conditional"), //$NON-NLS-1$
+ IXMLSyntaxConstants.XML_SMARTY },
+ { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.SmartyTag"), //$NON-NLS-1$
+ IXMLSyntaxConstants.DTD_CONDITIONAL }, };
+
+ private XMLTextTools xmlTextTools;
+
+ private Color bgColor;
+
+ Button bgDefault;
+
+ Button bgCustom;
+
+ ColorEditor bgColorEditor;
+
+ List colors;
+
+ ColorEditor fgColorEditor;
+
+ Button fgBold;
+
+ SourceViewer preview;
+
+ /**
+ * Constructor for XMLSyntaxPreferencePage.
+ */
+ public XMLSyntaxPreferencePage() {
+ setDescription(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.description")); //$NON-NLS-1$
+
+ setPreferenceStore(XMLPlugin.getDefault().getPreferenceStore());
+
+ overlay = new OverlayPreferenceStore(getPreferenceStore(), fKeys);
+ }
+
+ protected Control createContents(Composite parent) {
+ overlay.load();
+ overlay.start();
+
+ Composite colorComposite = new Composite(parent, SWT.NULL);
+ colorComposite.setLayout(new GridLayout());
+
+ Group backgroundComposite = new Group(colorComposite,
+ SWT.SHADOW_ETCHED_IN);
+
+ backgroundComposite.setLayout(new RowLayout());
+ backgroundComposite.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.backgroundColor")); //$NON-NLS-1$
+
+ SelectionListener backgroundSelectionListener = new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ boolean custom = bgCustom.getSelection();
+ bgColorEditor.getButton().setEnabled(custom);
+ overlay
+ .setValue(
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT,
+ !custom);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ };
+
+ bgDefault = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
+ bgDefault.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.systemDefault")); //$NON-NLS-1$
+ bgDefault.addSelectionListener(backgroundSelectionListener);
+
+ bgCustom = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
+ bgCustom.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.custom")); //$NON-NLS-1$
+ bgCustom.addSelectionListener(backgroundSelectionListener);
+
+ bgColorEditor = new ColorEditor(backgroundComposite);
+
+ Label label = new Label(colorComposite, SWT.LEFT);
+ label.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.foreground")); //$NON-NLS-1$
+ label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Composite editorComposite = new Composite(colorComposite, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ editorComposite.setLayout(layout);
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ editorComposite.setLayoutData(gd);
+
+ colors = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL
+ | SWT.BORDER);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = convertHeightInCharsToPixels(5);
+ colors.setLayoutData(gd);
+
+ Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
+ layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
+ stylesComposite.setLayout(layout);
+ stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- public final PreferenceDescriptor[] fKeys = new PreferenceDescriptor[] {
- new PreferenceDescriptor(PreferenceDescriptor.BOOLEAN, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_DEFAULT
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_DEFAULT + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_TAG + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_TAG + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ATT_NAME
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ATT_NAME + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ATT_VALUE
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ATT_VALUE + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ENTITY
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_ENTITY + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_CDATA + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_CDATA + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_PI + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_PI + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_COMMENT
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_COMMENT + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_DECL + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_DECL + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_SMARTY + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.XML_SMARTY + ITextStylePreferences.SUFFIX_STYLE),
-
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.DTD_CONDITIONAL
- + ITextStylePreferences.SUFFIX_FOREGROUND),
- new PreferenceDescriptor(PreferenceDescriptor.STRING, IXMLSyntaxConstants.DTD_CONDITIONAL
- + ITextStylePreferences.SUFFIX_STYLE),};
-
- OverlayPreferenceStore overlay;
-
- final String[][] fSyntaxColorListModel = new String[][] { {
- XMLPlugin.getResourceString("XmlSyntaxPreferencePage.others"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_DEFAULT }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Tag"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_TAG }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.AttName"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_ATT_NAME }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.AttValue"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_ATT_VALUE }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Entity"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_ENTITY }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.CDATA"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_CDATA }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.PI"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_PI }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Comment"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_COMMENT }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Declaration"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_DECL }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.Conditional"), //$NON-NLS-1$
- IXMLSyntaxConstants.XML_SMARTY }, { XMLPlugin.getResourceString("XmlSyntaxPreferencePage.SmartyTag"), //$NON-NLS-1$
- IXMLSyntaxConstants.DTD_CONDITIONAL },
- };
-
- private XMLTextTools xmlTextTools;
-
- private Color bgColor;
-
- Button bgDefault;
-
- Button bgCustom;
-
- ColorEditor bgColorEditor;
-
- List colors;
-
- ColorEditor fgColorEditor;
-
- Button fgBold;
-
- SourceViewer preview;
-
- /**
- * Constructor for XMLSyntaxPreferencePage.
- */
- public XMLSyntaxPreferencePage() {
- setDescription(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.description")); //$NON-NLS-1$
-
- setPreferenceStore(XMLPlugin.getDefault().getPreferenceStore());
-
- overlay = new OverlayPreferenceStore(getPreferenceStore(), fKeys);
- }
-
- protected Control createContents(Composite parent) {
- overlay.load();
- overlay.start();
-
- Composite colorComposite = new Composite(parent, SWT.NULL);
- colorComposite.setLayout(new GridLayout());
-
- Group backgroundComposite = new Group(colorComposite, SWT.SHADOW_ETCHED_IN);
-
- backgroundComposite.setLayout(new RowLayout());
- backgroundComposite.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.backgroundColor")); //$NON-NLS-1$
-
- SelectionListener backgroundSelectionListener = new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- boolean custom = bgCustom.getSelection();
- bgColorEditor.getButton().setEnabled(custom);
- overlay.setValue(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, !custom);
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
- };
-
- bgDefault = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
- bgDefault.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.systemDefault")); //$NON-NLS-1$
- bgDefault.addSelectionListener(backgroundSelectionListener);
-
- bgCustom = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
- bgCustom.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.custom")); //$NON-NLS-1$
- bgCustom.addSelectionListener(backgroundSelectionListener);
-
- bgColorEditor = new ColorEditor(backgroundComposite);
-
- Label label = new Label(colorComposite, SWT.LEFT);
- label.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.foreground")); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Composite editorComposite = new Composite(colorComposite, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- editorComposite.setLayout(layout);
- GridData gd = new GridData(GridData.FILL_BOTH);
- editorComposite.setLayoutData(gd);
-
- colors = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
- gd = new GridData(GridData.FILL_BOTH);
- gd.heightHint = convertHeightInCharsToPixels(5);
- colors.setLayoutData(gd);
-
- Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
- layout = new GridLayout();
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.numColumns = 2;
- stylesComposite.setLayout(layout);
- stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- label = new Label(stylesComposite, SWT.LEFT);
- label.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.color")); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.BEGINNING;
- label.setLayoutData(gd);
-
- fgColorEditor = new ColorEditor(stylesComposite);
-
- Button fgColorButton = fgColorEditor.getButton();
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment = GridData.BEGINNING;
- fgColorButton.setLayoutData(gd);
-
- label = new Label(stylesComposite, SWT.LEFT);
- label.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.bold")); //$NON-NLS-1$
- gd = new GridData();
- gd.horizontalAlignment = GridData.BEGINNING;
- label.setLayoutData(gd);
-
- fgBold = new Button(stylesComposite, SWT.CHECK);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment = GridData.BEGINNING;
- fgBold.setLayoutData(gd);
-
- label = new Label(colorComposite, SWT.LEFT);
- label.setText(XMLPlugin.getResourceString("XmlSyntaxPreferencePage.preview")); //$NON-NLS-1$
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Control previewer = createPreviewer(colorComposite);
- gd = new GridData(GridData.FILL_BOTH);
- gd.widthHint = convertWidthInCharsToPixels(20);
- gd.heightHint = convertHeightInCharsToPixels(5);
- previewer.setLayoutData(gd);
-
- colors.addSelectionListener(new SelectionListener() {
-
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- handleSyntaxColorListSelection();
- }
- });
-
- bgColorEditor.getButton().addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- PreferenceConverter.setValue(overlay, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND, bgColorEditor.getColorValue());
- }
- });
-
- fgColorButton.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- int i = colors.getSelectionIndex();
-
- String key = fSyntaxColorListModel[i][1];
-
- PreferenceConverter.setValue(overlay, key + ITextStylePreferences.SUFFIX_FOREGROUND, fgColorEditor.getColorValue());
- }
- });
-
- fgBold.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void widgetSelected(SelectionEvent e) {
- int i = colors.getSelectionIndex();
-
- String key = fSyntaxColorListModel[i][1];
-
- String value = (fgBold.getSelection()) ? ITextStylePreferences.STYLE_BOLD : ITextStylePreferences.STYLE_NORMAL;
-
- overlay.setValue(key + ITextStylePreferences.SUFFIX_STYLE, value);
- }
- });
-
- initialize();
-
- return colorComposite;
- }
-
- private Control createPreviewer(Composite parent) {
- xmlTextTools = new XMLTextTools(overlay); // REVISIT: DTD
-
- preview = new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-
- preview.configure(new XMLConfiguration(xmlTextTools));
- preview.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
- preview.setEditable(false);
-
- initializeViewerColors(preview);
-
- String content = loadPreviewContentFromFile("preview.xml"); //$NON-NLS-1$
- IDocument document = new Document(content);
-
- // REVISIT: DTD
- IDocumentPartitioner partitioner = xmlTextTools.createXMLPartitioner();
-
- partitioner.connect(document);
- document.setDocumentPartitioner(partitioner);
-
- preview.setDocument(document);
-
- overlay.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- String p = event.getProperty();
- if (p.equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND)
- || p.equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
- initializeViewerColors(preview);
- }
-
- preview.invalidateTextPresentation();
- }
- });
-
- return preview.getControl();
- }
-
- /**
- * Initializes the given viewer's colors.
- *
- * @param viewer
- * the viewer to be initialized
- */
- void initializeViewerColors(ISourceViewer viewer) {
- if (overlay != null) {
- StyledText styledText = viewer.getTextWidget();
-
- // ---------- background color ----------------------
- Color color = null;
- if (!overlay.getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
- color = createColor(overlay, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND, styledText.getDisplay());
- }
-
- styledText.setBackground(color);
-
- if (bgColor != null) {
- bgColor.dispose();
- }
-
- bgColor = color;
- }
- }
-
- /**
- * Creates a color from the information stored in the given preference store. Returns null
if there is no such
- * information available.
- */
- private Color createColor(IPreferenceStore store, String key, Display display) {
- RGB rgb = null;
-
- if (store.contains(key)) {
- if (store.isDefault(key)) {
- rgb = PreferenceConverter.getDefaultColor(store, key);
- } else {
- rgb = PreferenceConverter.getColor(store, key);
- }
-
- if (rgb != null) {
- return new Color(display, rgb);
- }
- }
-
- return null;
- }
-
- void handleSyntaxColorListSelection() {
- int i = colors.getSelectionIndex();
-
- String key = fSyntaxColorListModel[i][1];
-
- RGB rgb = PreferenceConverter.getColor(overlay, key + ITextStylePreferences.SUFFIX_FOREGROUND);
-
- fgColorEditor.setColorValue(rgb);
-
- // REVISIT
- fgBold.setSelection(overlay.getString(key + ITextStylePreferences.SUFFIX_STYLE).indexOf(ITextStylePreferences.STYLE_BOLD) >= 0);
- }
-
- private String loadPreviewContentFromFile(String filename) {
- StringBuffer string = new StringBuffer(512);
-
- try {
- char[] buf = new char[512];
- BufferedReader reader = new BufferedReader(new InputStreamReader(XMLSyntaxPreferencePage.class.getResourceAsStream(filename)));
-
- try {
- while (true) {
- int n = reader.read(buf);
- if (n < 0) {
- break;
- }
-
- string.append(buf, 0, n);
- }
- } finally {
- reader.close();
- }
- } catch (IOException e) {
- }
-
- return string.toString();
- }
-
- /**
- *
- */
- private void initialize() {
- initializeFields();
-
- for (int i = 0; i < fSyntaxColorListModel.length; i++) {
- colors.add(fSyntaxColorListModel[i][0]);
- }
-
- colors.getDisplay().asyncExec(new Runnable() {
-
- public void run() {
- colors.select(0);
- handleSyntaxColorListSelection();
- }
- });
- }
-
- private void initializeFields() {
- RGB rgb = PreferenceConverter.getColor(overlay, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND);
- bgColorEditor.setColorValue(rgb);
-
- boolean def = overlay.getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
- bgDefault.setSelection(def);
- bgCustom.setSelection(!def);
- bgColorEditor.getButton().setEnabled(!def);
- }
-
- /*
- * @see IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /*
- * @see PreferencePage#performDefaults()
- */
- protected void performDefaults() {
- overlay.loadDefaults();
- //initializeFields();
- handleSyntaxColorListSelection();
-
- super.performDefaults();
-
- preview.invalidateTextPresentation();
- }
-
- /*
- * @see org.eclipse.jface.preference.IPreferencePage#performOk()
- */
- public boolean performOk() {
- overlay.propagate();
- XMLPlugin.getDefault().savePluginPreferences();
-
- return true;
- }
-
- /*
- * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
- */
- public void dispose() {
- if (xmlTextTools != null) {
- xmlTextTools.dispose();
- xmlTextTools = null;
- }
-
- if (overlay != null) {
- overlay.stop();
- overlay = null;
- }
-
- super.dispose();
- }
+ label = new Label(stylesComposite, SWT.LEFT);
+ label.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.color")); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
+ label.setLayoutData(gd);
+
+ fgColorEditor = new ColorEditor(stylesComposite);
+
+ Button fgColorButton = fgColorEditor.getButton();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
+ fgColorButton.setLayoutData(gd);
+
+ label = new Label(stylesComposite, SWT.LEFT);
+ label.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.bold")); //$NON-NLS-1$
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
+ label.setLayoutData(gd);
+
+ fgBold = new Button(stylesComposite, SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
+ fgBold.setLayoutData(gd);
+
+ label = new Label(colorComposite, SWT.LEFT);
+ label.setText(XMLPlugin
+ .getResourceString("XmlSyntaxPreferencePage.preview")); //$NON-NLS-1$
+ label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Control previewer = createPreviewer(colorComposite);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.widthHint = convertWidthInCharsToPixels(20);
+ gd.heightHint = convertHeightInCharsToPixels(5);
+ previewer.setLayoutData(gd);
+
+ colors.addSelectionListener(new SelectionListener() {
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ handleSyntaxColorListSelection();
+ }
+ });
+
+ bgColorEditor.getButton().addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ PreferenceConverter.setValue(overlay,
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND,
+ bgColorEditor.getColorValue());
+ }
+ });
+
+ fgColorButton.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ int i = colors.getSelectionIndex();
+
+ String key = fSyntaxColorListModel[i][1];
+
+ PreferenceConverter.setValue(overlay, key
+ + ITextStylePreferences.SUFFIX_FOREGROUND,
+ fgColorEditor.getColorValue());
+ }
+ });
+
+ fgBold.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ int i = colors.getSelectionIndex();
+
+ String key = fSyntaxColorListModel[i][1];
+
+ String value = (fgBold.getSelection()) ? ITextStylePreferences.STYLE_BOLD
+ : ITextStylePreferences.STYLE_NORMAL;
+
+ overlay.setValue(key + ITextStylePreferences.SUFFIX_STYLE,
+ value);
+ }
+ });
+
+ initialize();
+
+ return colorComposite;
+ }
+
+ private Control createPreviewer(Composite parent) {
+ xmlTextTools = new XMLTextTools(overlay); // REVISIT: DTD
+
+ preview = new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL
+ | SWT.BORDER);
+
+ preview.configure(new XMLConfiguration(xmlTextTools));
+ preview.getTextWidget().setFont(
+ JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
+ preview.setEditable(false);
+
+ initializeViewerColors(preview);
+
+ String content = loadPreviewContentFromFile("preview.xml"); //$NON-NLS-1$
+ IDocument document = new Document(content);
+
+ // REVISIT: DTD
+ IDocumentPartitioner partitioner = xmlTextTools.createXMLPartitioner();
+
+ partitioner.connect(document);
+ document.setDocumentPartitioner(partitioner);
+
+ preview.setDocument(document);
+
+ overlay.addPropertyChangeListener(new IPropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent event) {
+ String p = event.getProperty();
+ if (p.equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND)
+ || p
+ .equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
+ initializeViewerColors(preview);
+ }
+
+ preview.invalidateTextPresentation();
+ }
+ });
+
+ return preview.getControl();
+ }
+
+ /**
+ * Initializes the given viewer's colors.
+ *
+ * @param viewer
+ * the viewer to be initialized
+ */
+ void initializeViewerColors(ISourceViewer viewer) {
+ if (overlay != null) {
+ StyledText styledText = viewer.getTextWidget();
+
+ // ---------- background color ----------------------
+ Color color = null;
+ if (!overlay
+ .getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
+ color = createColor(overlay,
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND,
+ styledText.getDisplay());
+ }
+
+ styledText.setBackground(color);
+
+ if (bgColor != null) {
+ bgColor.dispose();
+ }
+
+ bgColor = color;
+ }
+ }
+
+ /**
+ * Creates a color from the information stored in the given preference
+ * store. Returns null
if there is no such information
+ * available.
+ */
+ private Color createColor(IPreferenceStore store, String key,
+ Display display) {
+ RGB rgb = null;
+
+ if (store.contains(key)) {
+ if (store.isDefault(key)) {
+ rgb = PreferenceConverter.getDefaultColor(store, key);
+ } else {
+ rgb = PreferenceConverter.getColor(store, key);
+ }
+
+ if (rgb != null) {
+ return new Color(display, rgb);
+ }
+ }
+
+ return null;
+ }
+
+ void handleSyntaxColorListSelection() {
+ int i = colors.getSelectionIndex();
+
+ String key = fSyntaxColorListModel[i][1];
+
+ RGB rgb = PreferenceConverter.getColor(overlay, key
+ + ITextStylePreferences.SUFFIX_FOREGROUND);
+
+ fgColorEditor.setColorValue(rgb);
+
+ // REVISIT
+ fgBold.setSelection(overlay.getString(
+ key + ITextStylePreferences.SUFFIX_STYLE).indexOf(
+ ITextStylePreferences.STYLE_BOLD) >= 0);
+ }
+
+ private String loadPreviewContentFromFile(String filename) {
+ StringBuffer string = new StringBuffer(512);
+
+ try {
+ char[] buf = new char[512];
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(XMLSyntaxPreferencePage.class
+ .getResourceAsStream(filename)));
+
+ try {
+ while (true) {
+ int n = reader.read(buf);
+ if (n < 0) {
+ break;
+ }
+
+ string.append(buf, 0, n);
+ }
+ } finally {
+ reader.close();
+ }
+ } catch (IOException e) {
+ }
+
+ return string.toString();
+ }
+
+ /**
+ *
+ */
+ private void initialize() {
+ initializeFields();
+
+ for (int i = 0; i < fSyntaxColorListModel.length; i++) {
+ colors.add(fSyntaxColorListModel[i][0]);
+ }
+
+ colors.getDisplay().asyncExec(new Runnable() {
+
+ public void run() {
+ colors.select(0);
+ handleSyntaxColorListSelection();
+ }
+ });
+ }
+
+ private void initializeFields() {
+ RGB rgb = PreferenceConverter.getColor(overlay,
+ AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND);
+ bgColorEditor.setColorValue(rgb);
+
+ boolean def = overlay
+ .getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
+ bgDefault.setSelection(def);
+ bgCustom.setSelection(!def);
+ bgColorEditor.getButton().setEnabled(!def);
+ }
+
+ /*
+ * @see IWorkbenchPreferencePage#init(IWorkbench)
+ */
+ public void init(IWorkbench workbench) {
+ }
+
+ /*
+ * @see PreferencePage#performDefaults()
+ */
+ protected void performDefaults() {
+ overlay.loadDefaults();
+ // initializeFields();
+ handleSyntaxColorListSelection();
+
+ super.performDefaults();
+
+ preview.invalidateTextPresentation();
+ }
+
+ /*
+ * @see org.eclipse.jface.preference.IPreferencePage#performOk()
+ */
+ public boolean performOk() {
+ overlay.propagate();
+ XMLPlugin.getDefault().savePluginPreferences();
+
+ return true;
+ }
+
+ /*
+ * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
+ */
+ public void dispose() {
+ if (xmlTextTools != null) {
+ xmlTextTools.dispose();
+ xmlTextTools = null;
+ }
+
+ if (overlay != null) {
+ overlay.stop();
+ overlay = null;
+ }
+
+ super.dispose();
+ }
}
\ No newline at end of file