KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > $packageName$ > XMLConfiguration


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 JavaDoc[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
23         return new String JavaDoc[] {
24             IDocument.DEFAULT_CONTENT_TYPE,
25             XMLPartitionScanner.XML_COMMENT,
26             XMLPartitionScanner.XML_TAG };
27     }
28     public ITextDoubleClickStrategy getDoubleClickStrategy(
29         ISourceViewer sourceViewer,
30         String JavaDoc 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