Package org.freeplane.plugin.latex

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

package org.freeplane.plugin.latex;

import java.net.URL;
import java.util.Hashtable;

import org.freeplane.features.mode.Controller;
import org.freeplane.features.mode.ModeController;
import org.freeplane.features.mode.browsemode.BModeController;
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 {

  private static final String PREFERENCES_RESOURCE = "preferences.xml";

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

  private void registerMindMapModeExtension(final BundleContext context) {
    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(final ModeController modeController) {
            new LatexRegistration();
            addPreferencesToOptionPanel();
          }

        private void addPreferencesToOptionPanel() {
          final URL preferences = this.getClass().getResource(PREFERENCES_RESOURCE);
          if (preferences == null)
            throw new RuntimeException("cannot open preferences");
          final Controller controller = Controller.getCurrentController();
          MModeController modeController = (MModeController) controller.getModeController();
          modeController.getOptionPanelBuilder().load(preferences);
        }
        }, props);
  }

  private void registerBrowseModeExtension(final BundleContext context) {
    final Hashtable<String, String[]> props = new Hashtable<String, String[]>();
    props.put("mode", new String[] { BModeController.MODENAME });
    context.registerService(IModeControllerExtensionProvider.class.getName(),
        new IModeControllerExtensionProvider() {
          public void installExtension(final ModeController modeController) {
            new LatexRegistration();
          }
        }, props);
  }

  /*
   * (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.latex.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.