Package org.freeplane.plugin.script

Source Code of org.freeplane.plugin.script.Activator

package org.freeplane.plugin.script;

import java.util.Hashtable;

import jsyntaxpane.DefaultSyntaxKit;
import jsyntaxpane.syntaxkits.GroovySyntaxKit;

import org.freeplane.features.mode.ModeController;
import org.freeplane.features.mode.mindmapmode.MModeController;
import org.freeplane.main.osgi.IModeControllerExtensionProvider;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {
  /*
   * (non-Javadoc)
   * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
   */
  public void start(final BundleContext context) throws Exception {
    final Hashtable<String, String[]> props = new Hashtable<String, String[]>();
    props.put("mode", new String[] { MModeController.MODENAME });
    context.registerService(IModeControllerExtensionProvider.class.getName(),
        new IModeControllerExtensionProvider() {
          public void installExtension(ModeController modeController) {
            if(! modeController.getController().getViewController().isHeadless())
              initJSyntaxPane(context);
            new ScriptingRegistration(modeController);
          }
        }, props);
  }
 
  private void initJSyntaxPane(BundleContext context) {
      final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
      try {
            Thread.currentThread().setContextClassLoader(DefaultSyntaxKit.class.getClassLoader());
            DefaultSyntaxKit.initKit();
            final String components = "jsyntaxpane.components.PairsMarker" //
                + ", jsyntaxpane.components.LineNumbersRuler" //
                + ", jsyntaxpane.components.TokenMarker" //
                + ", org.freeplane.plugin.script.NodeIdHighLighter";
              new GroovySyntaxKit().setProperty("Components", components);
        }
        finally {
          Thread.currentThread().setContextClassLoader(contextClassLoader);
        }
}

  /*
   * (non-Javadoc)
   * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
   */
  public void stop(final BundleContext context) throws Exception {
  }
}
TOP

Related Classes of org.freeplane.plugin.script.Activator

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.