sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/editors/xmleditor/XMLConfiguration.java
changeset 0 522a326673b6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/editors/xmleditor/XMLConfiguration.java	Thu Mar 11 19:08:43 2010 +0200
@@ -0,0 +1,96 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+package com.symbian.smt.gui.editors.xmleditor;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextDoubleClickStrategy;
+import org.eclipse.jface.text.TextAttribute;
+import org.eclipse.jface.text.presentation.IPresentationReconciler;
+import org.eclipse.jface.text.presentation.PresentationReconciler;
+import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
+import org.eclipse.jface.text.rules.Token;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.jface.text.source.SourceViewerConfiguration;
+
+/**
+ * @author barbararosi-schwartz
+ * 
+ */
+public class XMLConfiguration extends SourceViewerConfiguration {
+	private XMLDoubleClickStrategy doubleClickStrategy;
+	private XMLTagScanner tagScanner;
+	private XMLScanner scanner;
+	private ColorManager colorManager;
+
+	public XMLConfiguration(ColorManager colorManager) {
+		this.colorManager = colorManager;
+	}
+
+	public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
+		return new String[] { IDocument.DEFAULT_CONTENT_TYPE,
+				XMLPartitionScanner.XML_COMMENT, XMLPartitionScanner.XML_TAG };
+	}
+
+	public ITextDoubleClickStrategy getDoubleClickStrategy(
+			ISourceViewer sourceViewer, String contentType) {
+		if (doubleClickStrategy == null)
+			doubleClickStrategy = new XMLDoubleClickStrategy();
+		return doubleClickStrategy;
+	}
+
+	public IPresentationReconciler getPresentationReconciler(
+			ISourceViewer sourceViewer) {
+		PresentationReconciler reconciler = new PresentationReconciler();
+
+		DefaultDamagerRepairer dr = new DefaultDamagerRepairer(
+				getXMLTagScanner());
+		reconciler.setDamager(dr, XMLPartitionScanner.XML_TAG);
+		reconciler.setRepairer(dr, XMLPartitionScanner.XML_TAG);
+
+		dr = new DefaultDamagerRepairer(getXMLScanner());
+		reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
+		reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
+
+		NonRuleBasedDamagerRepairer ndr = new NonRuleBasedDamagerRepairer(
+				new TextAttribute(colorManager
+						.getColor(IXMLColorConstants.XML_COMMENT)));
+		reconciler.setDamager(ndr, XMLPartitionScanner.XML_COMMENT);
+		reconciler.setRepairer(ndr, XMLPartitionScanner.XML_COMMENT);
+
+		return reconciler;
+	}
+
+	protected XMLScanner getXMLScanner() {
+		if (scanner == null) {
+			scanner = new XMLScanner(colorManager);
+			scanner.setDefaultReturnToken(new Token(new TextAttribute(
+					colorManager.getColor(IXMLColorConstants.DEFAULT))));
+		}
+		return scanner;
+	}
+
+	protected XMLTagScanner getXMLTagScanner() {
+		if (tagScanner == null) {
+			tagScanner = new XMLTagScanner(colorManager);
+			tagScanner.setDefaultReturnToken(new Token(new TextAttribute(
+					colorManager.getColor(IXMLColorConstants.TAG))));
+		}
+		return tagScanner;
+	}
+
+}
\ No newline at end of file