package org.objectstyle.wolips.wooeditor.plisteditor; import org.eclipse.jdt.ui.text.IColorManager; 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; public class PlistConfiguration extends SourceViewerConfiguration { private PlistDoubleClickStrategy doubleClickStrategy; private PlistTokenScanner tokenScanner; private PlistScanner scanner; private IColorManager colorManager; public PlistConfiguration(IColorManager colorManager2) { this.colorManager = colorManager2; } @Override public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { return new String[] { IDocument.DEFAULT_CONTENT_TYPE, PlistPartitionScanner.PROPERTY, PlistPartitionScanner.VALUE }; } @Override public ITextDoubleClickStrategy getDoubleClickStrategy( ISourceViewer sourceViewer, String contentType) { if (doubleClickStrategy == null) doubleClickStrategy = new PlistDoubleClickStrategy(); return doubleClickStrategy; } protected PlistScanner getPlistScanner() { if (scanner == null) { scanner = new PlistScanner(colorManager); scanner.setDefaultReturnToken( new Token( new TextAttribute( colorManager.getColor(IPlistColorConstants.DEFAULT)))); } return scanner; } protected PlistTokenScanner getPlistTokenScanner() { if (tokenScanner == null) { tokenScanner = new PlistTokenScanner(colorManager); tokenScanner.setDefaultReturnToken( new Token( new TextAttribute( colorManager.getColor(IPlistColorConstants.VALUE)))); } return tokenScanner; } @Override public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { PresentationReconciler reconciler = new PresentationReconciler(); DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getPlistTokenScanner()); reconciler.setDamager(dr, PlistPartitionScanner.PROPERTY); reconciler.setRepairer(dr, PlistPartitionScanner.PROPERTY); dr = new DefaultDamagerRepairer(getPlistScanner()); reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); // dr = new DefaultDamagerRepairer(getPlistScanner()); // reconciler.setDamager(dr, PlistPartitionScanner.VALUE); return reconciler; } }