X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/PHPDebugModelPresentation.java b/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/PHPDebugModelPresentation.java index 6a1dfbb..2aea900 100644 --- a/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/PHPDebugModelPresentation.java +++ b/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/PHPDebugModelPresentation.java @@ -11,6 +11,7 @@ **********************************************************************/ package net.sourceforge.phpeclipse.xdebug.ui.php.launching; +import java.io.File; import java.util.HashMap; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugLineBreakpoint; @@ -21,6 +22,7 @@ import net.sourceforge.phpeclipse.xdebug.php.model.XDebugStackFrame; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugVariable; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugValue; import net.sourceforge.phpeclipse.xdebug.ui.XDebugUIPlugin; +import net.sourceforge.phpeclipse.xdebug.ui.php.launching.CopyOfPHPDebugModelPresentation.StorageEditorInput; //import net.sourceforge.phpdt.internal.debug.core.model.IPHPDebugTarget; @@ -30,19 +32,26 @@ import net.sourceforge.phpeclipse.xdebug.ui.XDebugUIPlugin; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.PlatformObject; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.model.IBreakpoint; +import org.eclipse.debug.core.model.ILineBreakpoint; import org.eclipse.debug.core.model.IValue; +import org.eclipse.debug.core.sourcelookup.containers.LocalFileStorage; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.IDebugModelPresentation; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.debug.ui.IValueDetailListener; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorRegistry; +import org.eclipse.ui.IPersistableElement; +import org.eclipse.ui.IStorageEditorInput; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.FileEditorInput; @@ -85,7 +94,7 @@ public class PHPDebugModelPresentation extends LabelProvider implements /** * @see IDebugModelPresentation#getEditorInput(Object) */ - public IEditorInput getEditorInput(Object item) { + public IEditorInput getEditorInputA(Object item) { if (item instanceof XDebugLineBreakpoint) { IBreakpoint bp = (IBreakpoint) item; @@ -103,6 +112,21 @@ public class PHPDebugModelPresentation extends LabelProvider implements return null; } + public IEditorInput getEditorInput(Object element) { + + if (element instanceof IFile) { + return new FileEditorInput((IFile)element); + } + if( element instanceof LocalFileStorage) { + LocalFileStorage lfc= (LocalFileStorage)element; + return new StorageEditorInput(lfc,lfc.getFile()); + } + if (element instanceof ILineBreakpoint) { + return new FileEditorInput((IFile)((ILineBreakpoint)element).getMarker().getResource()); + } + return null; + } + /** * @see IDebugModelPresentation#getImage(Object) */ @@ -236,4 +260,51 @@ public class PHPDebugModelPresentation extends LabelProvider implements } return image; } + + class StorageEditorInput extends PlatformObject implements + IStorageEditorInput { +private File fFile; + +private IStorage fStorage; + +public StorageEditorInput(IStorage storage, File file) { + super(); + fStorage = storage; + fFile = file; +} + +public IStorage getStorage() { + return fStorage; +} + +public ImageDescriptor getImageDescriptor() { + return null; +} + +public String getName() { + return getStorage().getName(); +} + +public IPersistableElement getPersistable() { + return null; +} + +public String getToolTipText() { + return getStorage().getFullPath().toOSString(); +} + +public boolean equals(Object object) { + return object instanceof StorageEditorInput + && getStorage().equals( + ((StorageEditorInput) object).getStorage()); +} + +public int hashCode() { + return getStorage().hashCode(); +} + +public boolean exists() { + return fFile.exists(); +} +} } \ No newline at end of file