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 07b24f1..567771e 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 @@ -1,5 +1,9 @@ package net.sourceforge.phpeclipse.xdebug.ui.php.launching; + + +import java.io.File; + import net.sourceforge.phpeclipse.xdebug.php.model.XDebugLineBreakpoint; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugStackFrame; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugTarget; @@ -9,21 +13,75 @@ import net.sourceforge.phpeclipse.xdebug.php.model.XDebugVariable; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IStorage; +import org.eclipse.core.runtime.PlatformObject; 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.ILabelProviderListener; 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; public class PHPDebugModelPresentation implements IDebugModelPresentation { + + 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(); + } + } + public void setAttribute(String attribute, Object value) { // TODO Auto-generated method stub @@ -38,28 +96,26 @@ public class PHPDebugModelPresentation implements IDebugModelPresentation { return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT); } else if (element instanceof IMarker) { return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT); - } else if (element instanceof XDebugStackFrame - || element instanceof XDebugThread - || element instanceof XDebugTarget) { + } else if (element instanceof XDebugStackFrame || element instanceof XDebugThread || element instanceof XDebugTarget) { return null; } else if (element instanceof XDebugVariable) { - return getVariableImage((XDebugVariable) element); + return getVariableImage((XDebugVariable)element); } else if (element instanceof XDebugValue) { - return getValueImage((XDebugValue) element); + return getValueImage((XDebugValue)element); } return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT); } - private Image getVariableImage(XDebugVariable phpVar) { - /* - * if (phpVar != null) { if (phpVar.isLocal()) return - * DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); if - * (phpVar.isHashValue()) return - * DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); } + /* if (phpVar != null) { + if (phpVar.isLocal()) + return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); + if (phpVar.isHashValue()) + return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); + } */ return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); } - + private Image getValueImage(XDebugValue phpVar) { if (phpVar != null) { return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); @@ -67,6 +123,7 @@ public class PHPDebugModelPresentation implements IDebugModelPresentation { return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE); } + public String getText(Object element) { // TODO Auto-generated method stub return null; @@ -100,23 +157,24 @@ public class PHPDebugModelPresentation implements IDebugModelPresentation { public IEditorInput getEditorInput(Object element) { if (element instanceof IFile) { - return new FileEditorInput((IFile) element); + 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 new FileEditorInput((IFile)((ILineBreakpoint)element).getMarker().getResource()); } return null; } public String getEditorId(IEditorInput input, Object element) { - IEditorRegistry registry = PlatformUI.getWorkbench() - .getEditorRegistry(); - IEditorDescriptor descriptor = registry.getDefaultEditor(input - .getName()); + IEditorRegistry registry= PlatformUI.getWorkbench().getEditorRegistry(); + IEditorDescriptor descriptor= registry.getDefaultEditor(input.getName()); if (descriptor != null) return descriptor.getId(); - + return null; }