import net.sourceforge.phpeclipse.xdebug.php.launching.IXDebugConstants;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.IBreakpointManager;
import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.osgi.framework.BundleContext;
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XDebugCorePlugin extends AbstractUIPlugin {
-
- //The shared instance.
+public class XDebugCorePlugin extends Plugin {
private static XDebugCorePlugin plugin;
public static final String PLUGIN_ID = "net.sourceforge.phpeclipse.xdebug.core"; //$NON-NLS-1$
+
+ private XDebugProxy fXDebugProxy;
+
+ private ScopedPreferenceStore preferenceStore;
/**
* The constructor.
*/
public XDebugCorePlugin() {
+ super();
plugin = this;
}
*/
public void stop(BundleContext context) throws Exception {
super.stop(context);
+ if (fXDebugProxy != null)
+ fXDebugProxy.stop();
plugin = null;
}
public static IBreakpointManager getBreakpointManager() {
return DebugPlugin.getDefault().getBreakpointManager();
- }
+ }
- /**
- * Returns an image descriptor for the image file at the given
- * plug-in relative path.
- *
- * @param path the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- return AbstractUIPlugin.imageDescriptorFromPlugin("net.sourceforge.phpeclipse.xdebug.core", path);
- }
-
public static void log(int severity, String message) {
Status status = new Status(severity, PLUGIN_ID, IStatus.OK, message, null) ;
XDebugCorePlugin.log(status) ;
log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPLaunchingPlugin.internalErrorOccurred", e)); //$NON-NLS-1$
}
- /**
- * Returns the workspace instance.
- */
- public static IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
+ public static String getUniqueIdentifier() {
+ return PLUGIN_ID;
+ }
+ /*public void setProxyPort(int port) {
+ if(fXDebugProxy!=null) {
+ if (fXDebugProxy.isRunning()) {
+ fXDebugProxy.stop();
+ }
+ fXDebugProxy=null;
+ }
+ }*/
+
+ public XDebugProxy getXDebugProxy() {
+ if (fXDebugProxy == null) {
+ int debugPort=getPreferenceStore().getInt(IXDebugPreferenceConstants.DEBUGPORT_PREFERENCE);
+ if (debugPort<1024)
+ debugPort=IXDebugPreferenceConstants.DEFAULT_DEBUGPORT;
+ fXDebugProxy= new XDebugProxy(debugPort);
+ }
+ return fXDebugProxy;
+ }
-}
+ public IPreferenceStore getPreferenceStore() {
+ // Create the preference store lazily.
+ if (preferenceStore == null) {
+ preferenceStore = new ScopedPreferenceStore(new InstanceScope(),getBundle().getSymbolicName());
+
+ }
+ return preferenceStore;
+ }
+}
\ No newline at end of file