Importing the XDebugProxy code in the HEAD. The repo was tagged with T_BEFORE_XDEBUGP...
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.ui / src / net / sourceforge / phpeclipse / xdebug / ui / php / launching / PHPDebugModelPresentation.java
index 07b24f1..567771e 100644 (file)
@@ -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;
        }