plugins/org.symbian.tools.tmw.debug/src/org/symbian/tools/wrttools/debug/internal/model/SymbianDebugModelPresentation.java
--- a/plugins/org.symbian.tools.tmw.debug/src/org/symbian/tools/wrttools/debug/internal/model/SymbianDebugModelPresentation.java Thu Aug 19 17:48:04 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-package org.symbian.tools.wrttools.debug.internal.model;
-
-import java.util.Collection;
-
-import org.chromium.debug.core.model.Value;
-import org.chromium.sdk.JsValue;
-import org.chromium.sdk.JsVariable;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IStorage;
-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.ui.IDebugModelPresentation;
-import org.eclipse.debug.ui.IValueDetailListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.FileStoreEditorInput;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.ui.javaeditor.JarEntryEditorInput;
-import org.eclipse.wst.jsdt.ui.JavaScriptUI;
-
-@SuppressWarnings("restriction")
-public class SymbianDebugModelPresentation extends LabelProvider implements
- IDebugModelPresentation {
- private static final int DETAILS_DEPTH = 2;
-
- public void setAttribute(String attribute, Object value) {
- }
-
- @Override
- public Image getImage(Object element) {
- // use default image
- return null;
- }
-
- @Override
- public String getText(Object element) {
- // use default label text
- return null;
- }
-
- public void computeDetail(IValue value, IValueDetailListener listener) {
- String detail = ""; //$NON-NLS-1$
- if (value instanceof Value) {
- // Avoid quoting string JavaScript values by getting the value
- // string
- // from the underlying JsValue.
- final JsValue jsValue = ((Value) value).getJsValue();
- detail = printJSON(jsValue, 0);
- }
-
- listener.detailComputed(value, detail);
- }
-
- private String printJSON(final JsValue value, int depth) {
- if (depth < DETAILS_DEPTH) {
- switch (value.getType()) {
- case TYPE_OBJECT:
- return printObject(value, depth);
- case TYPE_ARRAY:
- return printArray(value, depth);
- }
- }
- if (depth > 0) {
- if (value.getType() == JsValue.Type.TYPE_STRING) {
- return "\"" + value.getValueString() + "\"";
- }
- }
- return value.getValueString();
- }
-
- private String printArray(JsValue value, int depth) {
- final StringBuilder builder = new StringBuilder("{ ");
- String sep = "";
-
- Collection<? extends JsVariable> properties = value.asObject().asArray().toSparseArray().values();
-
- for (JsVariable jsVariable : properties) {
- builder.append(sep).append(printJSON(jsVariable.getValue(), depth + 1));
- sep = ", ";
- }
-
- builder.append(" }");
- return builder.toString();
- }
-
- private String printObject(final JsValue value, final int depth) {
- final StringBuilder builder = new StringBuilder("{ ");
-
- String sep = "";
-
- Collection<? extends JsVariable> properties = value.asObject().getProperties();
- for (JsVariable jsVariable : properties) {
- builder.append(sep).append(jsVariable.getName()).append(" : ");
- builder.append(printJSON(jsVariable.getValue(), depth + 1));
- sep = ", ";
- }
-
- builder.append(" }");
- return builder.toString();
- }
-
- public IEditorInput getEditorInput(Object element) {
- return toEditorInput(element);
- }
-
- public static IEditorInput toEditorInput(Object element) {
- if (element instanceof IFile) {
- return new FileEditorInput((IFile) element);
- }
- if (element instanceof IFileStore) {
- return new FileStoreEditorInput((IFileStore) element);
- }
- if (element instanceof IStorage) {
- return new JarEntryEditorInput((IStorage) element);
- }
-
- if (element instanceof ILineBreakpoint) {
- return new FileEditorInput((IFile) ((ILineBreakpoint) element)
- .getMarker().getResource());
- }
-
- return null;
- }
-
- public String getEditorId(IEditorInput input, Object element) {
- if (input instanceof IFileEditorInput) {
- IFile file;
- if (element instanceof IFile) {
- file = (IFile) element;
- } else if (element instanceof IBreakpoint) {
- IBreakpoint breakpoint = (IBreakpoint) element;
- IResource resource = breakpoint.getMarker().getResource();
- // Can the breakpoint resource be folder or project? Better
- // check for it.
- if (resource instanceof IFile == false) {
- return null;
- }
- file = (IFile) resource;
- } else {
- return null;
- }
-
- // Pick the editor based on the file extension, taking user
- // preferences into account.
- try {
- return IDE.getEditorDescriptor(file).getId();
- } catch (PartInitException e) {
- // TODO(peter.rybin): should it really be the default case?
- // There might be no virtual project.
- return null;
- }
- } else {
- if (element instanceof IStorage) {
- IStorage store = (IStorage) element;
- if (JavaScriptCore.isJavaScriptLikeFileName(store.getName())) {
- return JavaScriptUI.ID_CU_EDITOR;
- } else {
- return "org.eclipse.wst.html.core.htmlsource.source";
- }
- }
- }
- return null;
- }
-}