package org.objectstyle.wolips.templateeditor; import org.eclipse.core.resources.IFile; import org.eclipse.jface.text.contentassist.IContentAssistant; import org.eclipse.ui.part.FileEditorInput; import org.objectstyle.wolips.bindings.Activator; import org.objectstyle.wolips.variables.BuildProperties; import org.objectstyle.wolips.wodclipse.core.completion.WodParserCache; import tk.eclipse.plugin.htmleditor.ColorProvider; import tk.eclipse.plugin.htmleditor.HTMLHyperlinkDetector; import tk.eclipse.plugin.htmleditor.assist.HTMLAssistProcessor; import tk.eclipse.plugin.htmleditor.editors.HTMLConfiguration; public class TemplateConfiguration extends HTMLConfiguration { //private JSPScriptletScanner scriptletScanner = null; //private JSPDirectiveScanner directiveScanner = null; private IContentAssistant _assistant; //private JSPDirectiveAssistProcessor directiveProcessor; //private JSPScriptletAssistProcessor scriptletProcessor; /** * The constructor. * * @param colorProvider the <code>ColorProvider</code>. */ public TemplateConfiguration(ColorProvider colorProvider) { super(colorProvider); } @Override protected HTMLHyperlinkDetector createHyperlinkDetector() { HTMLHyperlinkDetector hyperlinkDetector = super.createHyperlinkDetector(); hyperlinkDetector.addHyperlinkProvider(new InlineWodElementHyperlinkProvider()); return hyperlinkDetector; } // @Override // public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) { // IHyperlinkDetector[] hyperlinkDetectors = super.getHyperlinkDetectors(sourceViewer); // if (hyperlinkDetectors != null) { // IHyperlinkDetector[] moreHyperlinkDetectors = new IHyperlinkDetector[hyperlinkDetectors.length + 1]; // System.arraycopy(hyperlinkDetectors, 0, moreHyperlinkDetectors, 1, hyperlinkDetectors.length); // moreHyperlinkDetectors[0] = new InlineWodEle // } // TODO Auto-generated method stub // return super.getHyperlinkDetectors(sourceViewer); // } // /** // * @since 2.0.3 // */ // protected HTMLHyperlinkDetector createHyperlinkDetector() { // HTMLHyperlinkDetector hyperlink = super.createHyperlinkDetector(); // hyperlink.addHyperlinkProvider(new JSPHyperlinkProvider()); // // IHyperlinkProvider[] providers = HTMLPlugin.getDefault().getHyperlinkProviders(); // for(int i=0;i<providers.length;i++){ // hyperlink.addHyperlinkProvider(providers[i]); // } // // return hyperlink; // } /** * Creates and returns the <code>TemplateAssistProcessor</code>. * * @return the <code>TemplateAssistProcessor</code> * @see TemplateAssistProcessor */ @Override protected HTMLAssistProcessor createAssistProcessor() { try { IFile file = ((FileEditorInput) getEditorPart().getEditorInput()).getFile(); WodParserCache parserCache = WodParserCache.parser(file); BuildProperties buildProperties = (BuildProperties)parserCache.getProject().getAdapter(BuildProperties.class); return new TemplateAssistProcessor(getEditorPart(), parserCache, buildProperties); } catch (Exception e) { throw new RuntimeException("Failed to create assist processor.", e); } } // /** // * Returns the <code>JSPScriptletScanner</code>. // * // * @return the <code>JSPScriptletScanner</code> // * @see JSPScriptletScanner // */ // protected RuleBasedScanner getScriptScanner() { // if (scriptletScanner == null) { // scriptletScanner = new JSPScriptletScanner(getColorProvider()); // scriptletScanner.setDefaultReturnToken( // getColorProvider().getToken(HTMLPlugin.PREF_COLOR_FG)); // } // return scriptletScanner; // } // // /** // * Returns the <code>JSPDirectiveScanner</code>. // * // * @return the <code>JSPDirectiveScanner</code> // * @see JSPDirectiveScanner // */ // protected RuleBasedScanner getDirectiveScanner() { // if (directiveScanner == null) { // directiveScanner = new JSPDirectiveScanner(getColorProvider()); // directiveScanner.setDefaultReturnToken( // getColorProvider().getToken(HTMLPlugin.PREF_COLOR_TAG)); // } // return directiveScanner; // } // // /** // * Returns the <code>JSPAutoEditStrategy</code>. // * // * @return the <code>JSPAutoEditStrategy</code> // * @since 2.0.3 // * @see JSPAutoEditStrategy // */ // protected HTMLAutoEditStrategy createAutoEditStrategy(){ // return new JSPAutoEditStrategy(); // } // // public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) { // if(assistant==null){ // assistant = super.getContentAssistant(sourceViewer); // // directiveProcessor = new JSPDirectiveAssistProcessor(); // ((ContentAssistant)assistant).setContentAssistProcessor( // directiveProcessor,HTMLPartitionScanner.HTML_DIRECTIVE); // // scriptletProcessor = new JSPScriptletAssistProcessor(); // ((ContentAssistant)assistant).setContentAssistProcessor( // scriptletProcessor,HTMLPartitionScanner.HTML_SCRIPT); // } // return assistant; // } // // /** // * Returns the <code>JSPDirectiveAssistProcessor</code>. // * // * @return the <code>JSPDirectiveAssistProcessor</code>. // * @see JSPDirectiveAssistProcessor // */ // public JSPDirectiveAssistProcessor getDirectiveAssistProcessor(){ // return directiveProcessor; // } // // /** // * Returns the <code>JSPScriptletAssistProcessor</code>. // * // * @return the <code>JSPScriptletAssistProcessor</code>. // * @see JSPScriptletAssistProcessor // */ // public JSPScriptletAssistProcessor getScriptletAssistProcessor(){ // return scriptletProcessor; // } }