Package com.dubture.symfony.core

Source Code of com.dubture.symfony.core.SymfonyCorePlugin

/*******************************************************************************
* This file is part of the Symfony eclipse plugin.
*
* (c) Robert Gruendler <r.gruendler@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
******************************************************************************/
package com.dubture.symfony.core;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.osgi.framework.BundleContext;

import com.dubture.symfony.core.log.Logger;
import com.dubture.symfony.index.SymfonyIndexer;

public class SymfonyCorePlugin extends Plugin {

  public static String ID = "com.dubture.symfony.core";
  private static SymfonyCorePlugin plugin;
 
  protected ScopedPreferenceStore prefStore = null;

  public void start(BundleContext bundleContext) throws Exception {
    super.start(bundleContext);
    plugin = this;
   
    try {
      final IWorkspace workspace = ResourcesPlugin.getWorkspace();
      IResourceChangeListener listener = new IResourceChangeListener() {
              @Override
              public void resourceChanged(IResourceChangeEvent event)
              {
                  final IWorkspace workspace = ResourcesPlugin.getWorkspace();
                  SymfonyIndexer indexer;
                      try {
              indexer = SymfonyIndexer.getInstance();
              for (IProject project : workspace.getRoot().getProjects()) {
                indexer.deleteServices(project.getFullPath().toString());   
              }
            } catch (Exception e) {
              Logger.logException(e);
            }
              }
          };
         
          workspace.addResourceChangeListener(listener, IResourceChangeEvent.PRE_BUILD);
    } catch (Exception e) {
      Logger.logException(e);
    }
  }

  /*
   * (non-Javadoc)
   * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
   */
  public void stop(BundleContext bundleContext) throws Exception {
    super.stop(bundleContext);
    plugin = null;
  }

  public static SymfonyCorePlugin getDefault() {

    return plugin;
  }


  private static final String isDebugMode = "com.dubture.symfony.core/debug";

  public static boolean debug() {
    String debugOption = Platform.getDebugOption(isDebugMode); //$NON-NLS-1$
    return getDefault().isDebugging() && "true".equalsIgnoreCase(debugOption);
  }
 
  public IPreferenceStore getPreferenceStore() {
   
    if (prefStore == null) {
      prefStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, SymfonyCorePlugin.ID);
    }
   
    return prefStore;
  }
}
TOP

Related Classes of com.dubture.symfony.core.SymfonyCorePlugin

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.