Package org.springframework.ide.eclipse.beans.ui.editor

Source Code of org.springframework.ide.eclipse.beans.ui.editor.Activator

/*******************************************************************************
* Copyright (c) 2005, 2008 Spring IDE Developers
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Spring IDE Developers - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.beans.ui.editor;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.templates.ContextTypeRegistry;
import org.eclipse.jface.text.templates.persistence.TemplateStore;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
import org.osgi.framework.BundleContext;
import org.springframework.ide.eclipse.beans.ui.editor.templates.BeansTemplateContextTypeIds;

/**
* The main plugin class.
* @author Torsten Juergeleit
* @author Christian Dupuis
*/
@SuppressWarnings("restriction")
public class Activator extends AbstractUIPlugin {

  /**
   * Plugin identifier for Spring Beans UI (value
   * <code>org.springframework.ide.eclipse.beans.ui</code>).
   */
  public static final String PLUGIN_ID = "org.springframework.ide.eclipse.beans.ui.editor";

  private static final String RESOURCE_NAME = PLUGIN_ID + ".messages";

  /** Key to store our templates. */
  private static final String TEMPLATES_KEY = PLUGIN_ID + ".templates";

  /** The shared instance. */
  private static Activator plugin;

  private ResourceBundle resourceBundle;

  private ContextTypeRegistry contextTypeRegistry;

  private TemplateStore templateStore;

  private BundleContext context;
 
  private JavaElementImageProvider javaElementLabelProvider;

  /**
   * Creates the Spring Beans Editor plug-in.
   * <p>
   * The plug-in instance is created automatically by the Eclipse platform.
   * Clients must not call.
   */
  public Activator() {
    plugin = this;

    try {
      resourceBundle = ResourceBundle.getBundle(RESOURCE_NAME);
    }
    catch (MissingResourceException e) {
      log(e);
      resourceBundle = null;
    }
  }

  /**
   * This method is called upon plug-in activation
   */
  @Override
  public void start(BundleContext context) throws Exception {
    super.start(context);
    this.context = context;
    this.javaElementLabelProvider = new JavaElementImageProvider();
  }

  /**
   * This method is called when the plug-in is stopped
   */
  @Override
  public void stop(BundleContext context) throws Exception {
    super.stop(context);
    plugin = null;
    resourceBundle = null;
    this.context = null;
    this.javaElementLabelProvider.dispose();
  }

  /**
   * Returns the shared instance.
   */
  public static Activator getDefault() {
    return plugin;
  }

  public ResourceBundle getResourceBundle() {
    return resourceBundle;
  }

  public BundleContext getBundleContext() {
    return context;
  }

  public AdapterFactoryRegistry getAdapterFactoryRegistry() {
    return AdapterFactoryRegistryImpl.getInstance();

  }

  /**
   * Returns the template context type registry for the Spring beans editor.
   *
   * @return the template context type registry for the Spring beans editor
   */
  public ContextTypeRegistry getTemplateContextRegistry() {
    if (contextTypeRegistry == null) {
      ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
      registry.addContextType(BeansTemplateContextTypeIds.ALL);
      registry.addContextType(BeansTemplateContextTypeIds.PROPERTY);
      registry.addContextType(BeansTemplateContextTypeIds.BEAN);
      contextTypeRegistry = registry;
    }
    return contextTypeRegistry;
  }

  /**
   * Returns the template store for the Spring beans editor.
   *
   * @return the template store for the Spring beans editor
   */
  public TemplateStore getTemplateStore() {
    if (templateStore == null) {
      templateStore = new ContributionTemplateStore(
          getTemplateContextRegistry(), getPreferenceStore(),
          TEMPLATES_KEY);
      try {
        templateStore.load();
      }
      catch (IOException e) {
        log(e);
      }
    }
    return templateStore;
  }
 
  public JavaElementImageProvider getJavaElementLabelProvider() {
    return javaElementLabelProvider;
  }

  /**
   * Returns an image descriptor for the image file at the given plug-in
   * relative path.
   * @param path the path of the image file
   * @return the image descriptor
   */
  public static ImageDescriptor getImageDescriptor(String path) {
    return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
  }

  public static IWorkspace getWorkspace() {
    return ResourcesPlugin.getWorkspace();
  }

  public static IWorkbenchWindow getActiveWorkbenchWindow() {
    return getDefault().getWorkbench().getActiveWorkbenchWindow();
  }

  public static Shell getActiveWorkbenchShell() {
    return getActiveWorkbenchWindow().getShell();
  }

  public static IWorkbenchPage getActiveWorkbenchPage() {
    return getActiveWorkbenchWindow().getActivePage();
  }

  /**
   * Returns the string from the plugin's resource bundle, or 'key' if not
   * found.
   */
  public static String getResourceString(String key) {
    String bundleString;
    ResourceBundle bundle = getDefault().getResourceBundle();
    if (bundle != null) {
      try {
        bundleString = bundle.getString(key);
      }
      catch (MissingResourceException e) {
        bundleString = "!" + key + "!";
      }
    }
    else {
      bundleString = "!" + key + "!";
    }
    return bundleString;
  }

  public static String getFormattedMessage(String key, String arg) {
    return getFormattedMessage(key, new String[] { arg });
  }

  public static String getFormattedMessage(String key, String[] args) {
    return MessageFormat.format(getResourceString(key), (Object[]) args);
  }

  public static boolean isDebug(String option) {
    String value = Platform.getDebugOption(option);
    return (value != null && value.equalsIgnoreCase("true") ? true : false);
  }

  public static void log(IStatus status) {
    getDefault().getLog().log(status);
  }

  /**
   * Writes the message to the plug-in's log
   *
   * @param message the text to write to the log
   */
  public static void log(String message, Throwable exception) {
    IStatus status = createErrorStatus(message, exception);
    getDefault().getLog().log(status);
  }

  public static void log(Throwable exception) {
    getDefault().getLog().log(
        createErrorStatus(getResourceString("Plugin.internal_error"),
            exception));
  }

  /**
   * Returns a new <code>IStatus</code> for this plug-in
   */
  public static IStatus createErrorStatus(String message, Throwable exception) {
    if (message == null) {
      message = "";
    }
    return new Status(IStatus.ERROR, PLUGIN_ID, 0, message, exception);
  }
}
TOP

Related Classes of org.springframework.ide.eclipse.beans.ui.editor.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.