Package tk.eclipse.plugin.jspeditor.editors

Source Code of tk.eclipse.plugin.jspeditor.editors.JSPConfiguration

package tk.eclipse.plugin.jspeditor.editors;

import org.eclipse.jface.text.contentassist.ContentAssistant;
import org.eclipse.jface.text.contentassist.IContentAssistant;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.source.ISourceViewer;

import tk.eclipse.plugin.htmleditor.ColorProvider;
import tk.eclipse.plugin.htmleditor.HTMLHyperlinkDetector;
import tk.eclipse.plugin.htmleditor.HTMLPlugin;
import tk.eclipse.plugin.htmleditor.IHyperlinkProvider;
import tk.eclipse.plugin.htmleditor.assist.HTMLAssistProcessor;
import tk.eclipse.plugin.htmleditor.editors.HTMLAutoEditStrategy;
import tk.eclipse.plugin.htmleditor.editors.HTMLConfiguration;
import tk.eclipse.plugin.htmleditor.editors.HTMLPartitionScanner;

/**
* SourceViewerConfiguration for the JSP editor.
*/
public class JSPConfiguration extends HTMLConfiguration {
 
  private JSPScriptletScanner scriptletScanner = null;
  private JSPDirectiveScanner directiveScanner = null;
  private IContentAssistant assistant = null;
 
  private JSPDirectiveAssistProcessor directiveProcessor;
  private JSPScriptletAssistProcessor scriptletProcessor;
 
  /**
   * The constructor.
   *
   * @param colorProvider the <code>ColorProvider</code>.
   */
  public JSPConfiguration(ColorProvider colorProvider) {
    super(colorProvider);
  }
 
  /**
   * @since 2.0.3
   */
  @Override
  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>JSPAssistProcessor</code>.
   *
   * @return the <code>JSPAssistProcessor</code>
   * @see JSPAssistProcessor
   */
  @Override
  protected HTMLAssistProcessor createAssistProcessor() {
    return new JSPAssistProcessor();
  }
 
  /**
   * Returns the <code>JSPScriptletScanner</code>.
   *
   * @return the <code>JSPScriptletScanner</code>
   * @see JSPScriptletScanner
   */
  @Override
  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
   */
  @Override
  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
   */
  @Override
  protected HTMLAutoEditStrategy createAutoEditStrategy(){
    return new JSPAutoEditStrategy();
  }

  @Override
  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;
  }
}
TOP

Related Classes of tk.eclipse.plugin.jspeditor.editors.JSPConfiguration

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.