Merged xdebug from 1.3.x
authorincastrix <incastrix>
Wed, 30 Jan 2008 00:45:10 +0000 (00:45 +0000)
committerincastrix <incastrix>
Wed, 30 Jan 2008 00:45:10 +0000 (00:45 +0000)
net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/CopyOfPHPDebugModelPresentation.java [new file with mode: 0644]

diff --git a/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/CopyOfPHPDebugModelPresentation.java b/net.sourceforge.phpeclipse.xdebug.ui/src/net/sourceforge/phpeclipse/xdebug/ui/php/launching/CopyOfPHPDebugModelPresentation.java
new file mode 100644 (file)
index 0000000..dedaaad
--- /dev/null
@@ -0,0 +1,181 @@
+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;
+import net.sourceforge.phpeclipse.xdebug.php.model.XDebugThread;
+import net.sourceforge.phpeclipse.xdebug.php.model.XDebugValue;
+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 CopyOfPHPDebugModelPresentation 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
+
+       }
+
+       /**
+        * @see IDebugModelPresentation#getImage(Object)
+        */
+       public Image getImage(Object element) {
+               if (element instanceof XDebugLineBreakpoint) {
+                       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) {
+                       return null;
+               } else if (element instanceof XDebugVariable) {
+                       return getVariableImage((XDebugVariable)element);
+               } else if (element instanceof XDebugValue) {
+                       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);
+                }
+                */
+               return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE);
+       }
+       
+       private Image getValueImage(XDebugValue phpVar) {
+               if (phpVar != null) {
+                       return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE);
+               }
+               return DebugUITools.getImage(IDebugUIConstants.IMG_OBJS_VARIABLE);
+       }
+
+
+       public String getText(Object element) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       public void computeDetail(IValue value, IValueDetailListener listener) {
+               // TODO Auto-generated method stub
+
+       }
+
+       public void addListener(ILabelProviderListener listener) {
+               // TODO Auto-generated method stub
+
+       }
+
+       public void dispose() {
+               // TODO Auto-generated method stub
+
+       }
+
+       public boolean isLabelProperty(Object element, String property) {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       public void removeListener(ILabelProviderListener listener) {
+               // TODO Auto-generated method stub
+
+       }
+
+       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;
+       }
+
+       public String getEditorId(IEditorInput input, Object element) {
+               IEditorRegistry registry= PlatformUI.getWorkbench().getEditorRegistry();
+               IEditorDescriptor descriptor= registry.getDefaultEditor(input.getName());
+               if (descriptor != null)
+                       return descriptor.getId();
+               
+               return null;
+       }
+
+}