1 package $packageName$; 2 3 import org.eclipse.jface.text.IDocument; 4 import org.eclipse.jface.text.ITextDoubleClickStrategy; 5 import org.eclipse.jface.text.TextAttribute; 6 import org.eclipse.jface.text.presentation.IPresentationReconciler; 7 import org.eclipse.jface.text.presentation.PresentationReconciler; 8 import org.eclipse.jface.text.rules.DefaultDamagerRepairer; 9 import org.eclipse.jface.text.rules.Token; 10 import org.eclipse.jface.text.source.ISourceViewer; 11 import org.eclipse.jface.text.source.SourceViewerConfiguration; 12 13 public class XMLConfiguration extends SourceViewerConfiguration { 14 private XMLDoubleClickStrategy doubleClickStrategy; 15 private XMLTagScanner tagScanner; 16 private XMLScanner scanner; 17 private ColorManager colorManager; 18 19 public XMLConfiguration(ColorManager colorManager) { 20 this.colorManager = colorManager; 21 } 22 public String [] getConfiguredContentTypes(ISourceViewer sourceViewer) { 23 return new String [] { 24 IDocument.DEFAULT_CONTENT_TYPE, 25 XMLPartitionScanner.XML_COMMENT, 26 XMLPartitionScanner.XML_TAG }; 27 } 28 public ITextDoubleClickStrategy getDoubleClickStrategy( 29 ISourceViewer sourceViewer, 30 String contentType) { 31 if (doubleClickStrategy == null) 32 doubleClickStrategy = new XMLDoubleClickStrategy(); 33 return doubleClickStrategy; 34 } 35 36 protected XMLScanner getXMLScanner() { 37 if (scanner == null) { 38 scanner = new XMLScanner(colorManager); 39 scanner.setDefaultReturnToken( 40 new Token( 41 new TextAttribute( 42 colorManager.getColor(IXMLColorConstants.DEFAULT)))); 43 } 44 return scanner; 45 } 46 protected XMLTagScanner getXMLTagScanner() { 47 if (tagScanner == null) { 48 tagScanner = new XMLTagScanner(colorManager); 49 tagScanner.setDefaultReturnToken( 50 new Token( 51 new TextAttribute( 52 colorManager.getColor(IXMLColorConstants.TAG)))); 53 } 54 return tagScanner; 55 } 56 57 public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { 58 PresentationReconciler reconciler = new PresentationReconciler(); 59 60 DefaultDamagerRepairer dr = 61 new DefaultDamagerRepairer(getXMLTagScanner()); 62 reconciler.setDamager(dr, XMLPartitionScanner.XML_TAG); 63 reconciler.setRepairer(dr, XMLPartitionScanner.XML_TAG); 64 65 dr = new DefaultDamagerRepairer(getXMLScanner()); 66 reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); 67 reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); 68 69 NonRuleBasedDamagerRepairer ndr = 70 new NonRuleBasedDamagerRepairer( 71 new TextAttribute( 72 colorManager.getColor(IXMLColorConstants.XML_COMMENT))); 73 reconciler.setDamager(ndr, XMLPartitionScanner.XML_COMMENT); 74 reconciler.setRepairer(ndr, XMLPartitionScanner.XML_COMMENT); 75 76 return reconciler; 77 } 78 79 } | Popular Tags |