--- /dev/null
+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;
+ }
+
+}