author | Eugene Ostroukhov <eugeneo@symbian.org> |
Wed, 09 Jun 2010 11:21:51 -0700 | |
changeset 362 | f8c2079946be |
parent 361 | 08e920dda3d9 (diff) |
parent 358 | dd7d3426144c (current diff) |
child 363 | abe05ecbcd0c |
org.symbian.tools.wrttools.product/launch/WRT IDE Product (Mac OS X).launch | file | annotate | diff | comparison | revisions |
--- a/chrome-dev-tools-patches/doc Tue Jun 08 16:12:51 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -hg import [OPTION]... PATCH... - -aliases: patch - -import an ordered set of patches - - Import a list of patches and commit them individually (unless --no-commit - is specified). - - If there are outstanding changes in the working directory, import will - abort unless given the -f/--force flag. - - You can import a patch straight from a mail message. Even patches as - attachments work (to use the body part, it must have type text/plain or - text/x-patch). From and Subject headers of email message are used as - default committer and commit message. All text/plain body parts before - first diff are added to commit message. - - If the imported patch was generated by hg export, user and description - from patch override values from message headers and body. Values given on - command line with -m/--message and -u/--user override these. - - If --exact is specified, import will set the working directory to the - parent of each patch before applying it, and will abort if the resulting - changeset has a different ID than the one recorded in the patch. This may - happen due to character set problems or other deficiencies in the text - patch format. - - With -s/--similarity, hg will attempt to discover renames and copies in - the patch in the same way as 'addremove'. - - To read a patch from standard input, use "-" as the patch name. If a URL - is specified, the patch will be downloaded from it. See 'hg help dates' - for a list of formats valid for -d/--date. - -options: - - -p --strip directory strip option for patch. This has the same - meaning as the corresponding patch option (default: 1) - -b --base base path - -f --force skip check for outstanding uncommitted changes - --no-commit don't commit, just update the working directory - --exact apply patch to the nodes from which it was generated - --import-branch use any branch information in patch (implied by --exact) - -m --message use <text> as commit message - -l --logfile read commit message from <file> - -d --date record datecode as commit date - -u --user record the specified user as committer - -s --similarity guess renamed files by similarity (0<=s<=100) - -global options: - -R --repository repository root directory or name of overlay bundle file - --cwd change working directory - -y --noninteractive do not prompt, assume 'yes' for any required answers - -q --quiet suppress output - -v --verbose enable additional output - --config set/override config option - --debug enable debugging output - --debugger start debugger - --encoding set the charset encoding (default: cp1251) - --encodingmode set the charset encoding mode (default: strict) - --traceback always print a traceback on exception - --time time how long the command takes - --profile print command execution profile - --version output version information and exit - -h --help display help and exit
--- a/chrome-dev-tools-patches/stack-line-numbers-patch.txt Tue Jun 08 16:12:51 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -Index: src/org/chromium/debug/core/model/DebugTargetImpl.java -=================================================================== ---- src/org/chromium/debug/core/model/DebugTargetImpl.java (revision 307) -+++ src/org/chromium/debug/core/model/DebugTargetImpl.java (working copy) -@@ -474,6 +474,10 @@ - public WorkspaceBridge.JsLabelProvider getLabelProvider() { - return workspaceBridgeFactory.getLabelProvider(); - } -+ -+ public int getLineNumber(CallFrame stackFrame) { -+ return workspaceRelations.getLineNumber(stackFrame); -+ } - - private static class ListenerBlock { - private volatile boolean isBlocked = true; -Index: src/org/chromium/debug/core/model/StackFrame.java -=================================================================== ---- src/org/chromium/debug/core/model/StackFrame.java (revision 307) -+++ src/org/chromium/debug/core/model/StackFrame.java (working copy) -@@ -194,8 +194,7 @@ - } - - public int getLineNumber() throws DebugException { -- // convert 0-based to 1-based -- return stackFrame.getLineNumber() + 1; -+ return getDebugTarget().getLineNumber(stackFrame); - } - - public int getCharStart() throws DebugException { -Index: src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java -=================================================================== ---- src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java (revision 307) -+++ src/org/chromium/debug/core/model/VProjectWorkspaceBridge.java (working copy) -@@ -230,6 +230,11 @@ - } - }; - -+ public int getLineNumber(CallFrame stackFrame) { -+ // convert 0-based to 1-based -+ return stackFrame.getLineNumber() + 1; -+ } -+ - /** - * This very simple source locator works because we provide our own source files. - * We'll have to try harder, once we link with resource js files. -@@ -282,4 +287,5 @@ - return name; - } - }; -+ - } -Index: src/org/chromium/debug/core/model/WorkspaceBridge.java -=================================================================== ---- src/org/chromium/debug/core/model/WorkspaceBridge.java (revision 307) -+++ src/org/chromium/debug/core/model/WorkspaceBridge.java (working copy) -@@ -7,6 +7,7 @@ - import java.util.Collection; - - import org.chromium.sdk.Breakpoint; -+import org.chromium.sdk.CallFrame; - import org.chromium.sdk.JavascriptVm; - import org.chromium.sdk.Script; - import org.eclipse.core.resources.IFile; -@@ -86,6 +87,12 @@ - BreakpointHandler getBreakpointHandler(); - - /** -+ * Returns editor line number for the provided call stack frame applying all required -+ * editor-specific translations. -+ */ -+ int getLineNumber(CallFrame stackFrame); -+ -+ /** - * Breakpoint-related aspect of {@link WorkspaceBridge} interface. - */ - interface BreakpointHandler extends IBreakpointListener {
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/DebugUtil.java Tue Jun 08 16:12:51 2010 -0700 +++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/DebugUtil.java Wed Jun 09 11:21:51 2010 -0700 @@ -36,7 +36,28 @@ return new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, message, exeption)); } + public static IProject getProject(ILaunch configuration) { + try { + if (WidgetLaunchDelegate.ID.equals(configuration.getLaunchConfiguration().getType().getIdentifier())) { + String projectName = configuration.getLaunchConfiguration().getAttribute(IConstants.PROP_PROJECT_NAME, + (String) null); + if (projectName != null) { + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); + if (project.isAccessible()) { + return project; + } + } + } + } catch (CoreException e) { + Activator.log(e); + } + return null; + } + public static IProject getProject(ILaunchConfiguration configuration) throws CoreException { + if (!WidgetLaunchDelegate.ID.equals(configuration.getType().getIdentifier())) { + return null; + } String projectName = configuration.getAttribute(IConstants.PROP_PROJECT_NAME, (String) null); if (projectName == null) { throw createCoreException("Project is not selected", null);
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/ResourcesChangeListener.java Tue Jun 08 16:12:51 2010 -0700 +++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/ResourcesChangeListener.java Wed Jun 09 11:21:51 2010 -0700 @@ -85,4 +85,150 @@ return false; } + // // TODO Progress indicator - ... files updated of ... + // + // public void resourceChanged(IResourceChangeEvent event) { + // try { + // if (event.getDelta() != null) { + // + // processDelta(event.getDelta()); + // } else { + // // TODO Can't refresh + // } + // } catch (CoreException e) { + // Activator.log(e); + // } + // + // } + // + // private static final class DeltaProcessor implements IResourceDeltaVisitor { + // private final Map<IProject, DebugTargetImpl> targets; + // private final Map<IFile, Script> updateList = new HashMap<IFile, Script>(); + // private boolean hasUnupdatables = false; + // + // public DeltaProcessor(Map<IProject, DebugTargetImpl> targets) { + // this.targets = targets; + // } + // + // public boolean visit(IResourceDelta delta) throws CoreException { + // final IResource resource = delta.getResource(); + // switch (resource.getType()) { + // case IResource.PROJECT: + // return targets.containsKey(resource); + // case IResource.FILE: + // processFile((IFile) resource, targets.get(resource.getProject())); + // return false; + // default: + // return true; + // } + // } + // + // private void processFile(final IFile resource, final DebugTargetImpl debugTargetImpl) throws CoreException { + // if (!ProjectUtils.isExcluded(resource)) { + // final VmResource vmResource = debugTargetImpl.getVmResource(resource); + // if (vmResource != null) { + // updateList.put(resource, vmResource.getScript()); + // } else { + // if (!JavaScriptCore.isJavaScriptLikeFileName(resource.getName())) { + // hasUnupdatables = true; + // } + // } + // } + // } + // + // public Map<IFile, Script> getUpdateList() { + // return updateList; + // } + // + // public boolean hasUnupdatables() { + // return hasUnupdatables; + // } + // } + // + // private void processDelta(final IResourceDelta delta) throws CoreException { + // final ILaunch[] launches = DebugPlugin.getDefault().getLaunchManager().getLaunches(); + // final Map<IProject, DebugTargetImpl> targets = new HashMap<IProject, DebugTargetImpl>(); + // for (ILaunch launch : launches) { + // final IDebugTarget target = launch.getDebugTarget(); + // if (!launch.isTerminated() && target instanceof DebugTargetImpl) { + // IProject project = DebugUtil.getProject(launch); + // if (project != null) { + // targets.put(project, (DebugTargetImpl) target); + // } + // } + // } + // + // DeltaProcessor processor = new DeltaProcessor(targets); + // delta.accept(processor); + // + // if (processor.getUpdateList().size() > 0) { + // final Collection<IStatus> statuses = new LinkedList<IStatus>(); + // for (Entry<IFile, Script> entry : processor.getUpdateList().entrySet()) { + // statuses.add(updateScript(entry.getValue(), entry.getKey())); + // } + // } else if (processor.hasUnupdatables()) { + // + // } + // } + // + // private IStatus updateScript(Script script, final IFile file) { + // UpdatableScript updatableScript = LiveEditExtension.castToUpdatableScript(script); + // + // if (updatableScript == null) { + // throw new RuntimeException(); + // } + // + // byte[] fileData; + // try { + // fileData = readFileContents(file); + // } catch (IOException e) { + // throw new RuntimeException(e); + // } catch (CoreException e) { + // throw new RuntimeException(e); + // } + // final IStatus[] res = new IStatus[1]; + // // We are using default charset here like usually. + // String newSource = new String(fileData); + // + // UpdatableScript.UpdateCallback callback = new UpdatableScript.UpdateCallback() { + // public void success(Object report) { + // res[0] = new Status( + // IStatus.OK, + // ChromiumDebugPlugin.PLUGIN_ID, + // String.format( + // "Script %s was successfully updated on remote: %s", file.getProjectRelativePath().toString(), report)); //$NON-NLS-1$ + // } + // + // public void failure(String message) { + // res[0] = new Status(IStatus.ERROR, ChromiumDebugPlugin.PLUGIN_ID, String.format( + // "Script %s cannot be updated: %s", file.getProjectRelativePath().toString(), message)); //$NON-NLS-1$ + // } + // }; + // + // updatableScript.setSourceOnRemote(newSource, callback, null); + // return res[0]; + // } + // + // private static byte[] readFileContents(IFile file) throws IOException, CoreException { + // InputStream inputStream = file.getContents(); + // try { + // return readBytes(inputStream); + // } finally { + // inputStream.close(); + // } + // } + // + // private static byte[] readBytes(InputStream inputStream) throws IOException { + // ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + // byte[] array = new byte[1024]; + // while (true) { + // int len = inputStream.read(array); + // if (len == -1) { + // break; + // } + // buffer.write(array, 0, len); + // } + // return buffer.toByteArray(); + // } + }
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/WRTProjectWorkspaceBridge.java Tue Jun 08 16:12:51 2010 -0700 +++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/WRTProjectWorkspaceBridge.java Wed Jun 09 11:21:51 2010 -0700 @@ -1,6 +1,5 @@ package org.symbian.tools.wrttools.debug.internal.launch; -import java.io.File; import java.util.ArrayList; import java.util.Collection; @@ -8,14 +7,13 @@ import org.chromium.debug.core.model.BreakpointSynchronizer.Direction; import org.chromium.debug.core.model.ChromiumLineBreakpoint; import org.chromium.debug.core.model.DebugTargetImpl; -import org.chromium.debug.core.model.StackFrame; import org.chromium.debug.core.model.VmResource; +import org.chromium.debug.core.model.VmResourceId; import org.chromium.debug.core.model.WorkspaceBridge; import org.chromium.sdk.CallFrame; import org.chromium.sdk.JavascriptVm; import org.chromium.sdk.JavascriptVm.ScriptsCallback; import org.chromium.sdk.Script; -import org.eclipse.core.filesystem.EFS; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; @@ -23,158 +21,153 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; -import org.eclipse.debug.core.model.ISourceLocator; -import org.eclipse.debug.core.model.IStackFrame; +import org.eclipse.debug.core.sourcelookup.ISourceContainer; +import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector; +import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer; import org.symbian.tools.wrttools.debug.internal.Activator; import org.symbian.tools.wrttools.debug.internal.model.ResourceManager; import org.symbian.tools.wrttools.debug.internal.model.WorkspaceBreakpointHandler; -import org.symbian.tools.wrttools.previewer.PreviewerPlugin; public class WRTProjectWorkspaceBridge implements WorkspaceBridge { - public static final class Factory implements WorkspaceBridge.Factory { - private final IProject project; + public static final class Factory implements WorkspaceBridge.Factory { + private final IProject project; - public Factory(IProject project) { - this.project = project; - } + public Factory(IProject project) { + this.project = project; + } - public WorkspaceBridge attachedToVm(DebugTargetImpl debugTargetImpl, - JavascriptVm javascriptVm) { - return new WRTProjectWorkspaceBridge(debugTargetImpl, javascriptVm, - project); - } + public WorkspaceBridge attachedToVm(DebugTargetImpl debugTargetImpl, JavascriptVm javascriptVm) { + return new WRTProjectWorkspaceBridge(debugTargetImpl, javascriptVm, project); + } - public String getDebugModelIdentifier() { - return DEBUG_MODEL_ID; - } + public String getDebugModelIdentifier() { + return DEBUG_MODEL_ID; + } - public JsLabelProvider getLabelProvider() { - return new WrtLabelProvider(); - } + public JsLabelProvider getLabelProvider() { + return new WrtLabelProvider(); + } + } - } - - public final static String DEBUG_MODEL_ID = "org.symbian.debug"; + public final static String DEBUG_MODEL_ID = "org.symbian.debug"; - private final BreakpointHandler breakpointHandler; - private final JavascriptVm javascriptVm; - private final IProject project; - private final ResourceManager resourceManager; + private final BreakpointHandler breakpointHandler; + private final JavascriptVm javascriptVm; + private final IProject project; + private final ResourceManager resourceManager; - public WRTProjectWorkspaceBridge(DebugTargetImpl debugTargetImpl, - JavascriptVm javascriptVm, IProject project) { - this.javascriptVm = javascriptVm; - this.project = project; + public WRTProjectWorkspaceBridge(DebugTargetImpl debugTargetImpl, JavascriptVm javascriptVm, IProject project) { + this.javascriptVm = javascriptVm; + this.project = project; this.resourceManager = new ResourceManager(); + this.sourceLocator = new WebApplicationSourceLocator(resourceManager); breakpointHandler = new WorkspaceBreakpointHandler(debugTargetImpl, resourceManager); - ILaunch launch = debugTargetImpl.getLaunch(); - launch.setSourceLocator(sourceLocator); - } + ILaunch launch = debugTargetImpl.getLaunch(); + try { + sourceLocator.initializeDefaults(launch.getLaunchConfiguration()); + sourceLocator.setSourceContainers(new ISourceContainer[] { new ProjectSourceContainer(project, false) }); + } catch (CoreException e) { + throw new RuntimeException(e); + } + launch.setSourceLocator(sourceLocator); + } - public void beforeDetach() { - // Do nothing - } - - public BreakpointHandler getBreakpointHandler() { - return breakpointHandler; - } - - public void handleVmResetEvent() { - resourceManager.clear(); - } + public void beforeDetach() { + // Do nothing + } - public void launchRemoved() { - // Do nothing - } + public BreakpointHandler getBreakpointHandler() { + return breakpointHandler; + } + + public void handleVmResetEvent() { + resourceManager.clear(); + } - public void reloadScriptsAtStart() { - javascriptVm.getScripts(new ScriptsCallback() { - public void failure(String errorMessage) { - Activator.log(errorMessage); - } + public void launchRemoved() { + // Do nothing + } - public void success(Collection<Script> scripts) { - if (!javascriptVm.isAttached()) { - return; - } - for (Script script : scripts) { - resourceManager.addScript(script); - } + public void reloadScriptsAtStart() { + javascriptVm.getScripts(new ScriptsCallback() { + public void failure(String errorMessage) { + Activator.log(errorMessage); + } - IMarker[] markers; - try { - markers = project.findMarkers( - ChromiumLineBreakpoint.BREAKPOINT_MARKER, true, - IResource.DEPTH_INFINITE); - Collection<ChromiumLineBreakpoint> breakpoints = new ArrayList<ChromiumLineBreakpoint>( - markers.length); - for (IMarker marker : markers) { - // If it is not ChromiumLineBreakpoint - - // something's gone horribly wrong. Better get - // ClassCastException - ChromiumLineBreakpoint breakpoint = (ChromiumLineBreakpoint) DebugPlugin - .getDefault().getBreakpointManager() - .getBreakpoint(marker); - breakpointHandler.breakpointAdded(breakpoint); - breakpoints.add(breakpoint); - } - } catch (CoreException e) { - Activator.log(e); - } + public void success(Collection<Script> scripts) { + if (!javascriptVm.isAttached()) { + return; + } + for (Script script : scripts) { + resourceManager.addScript(script); + } - } - }); - } + IMarker[] markers; + try { + markers = project.findMarkers(ChromiumLineBreakpoint.BREAKPOINT_MARKER, true, + IResource.DEPTH_INFINITE); + Collection<ChromiumLineBreakpoint> breakpoints = new ArrayList<ChromiumLineBreakpoint>( + markers.length); + for (IMarker marker : markers) { + // If it is not ChromiumLineBreakpoint - + // something's gone horribly wrong. Better get + // ClassCastException + ChromiumLineBreakpoint breakpoint = (ChromiumLineBreakpoint) DebugPlugin.getDefault() + .getBreakpointManager().getBreakpoint(marker); + breakpointHandler.breakpointAdded(breakpoint); + breakpoints.add(breakpoint); + } + } catch (CoreException e) { + Activator.log(e); + } - public void scriptLoaded(Script newScript) { - resourceManager.addScript(newScript); - } + } + }); + } + + public void scriptLoaded(Script newScript) { + resourceManager.addScript(newScript); + } - public int getLineNumber(CallFrame stackFrame) { - int offset = 0; - Script script = stackFrame.getScript(); - if (script != null) { - offset = script.getStartLine(); - } - return offset + stackFrame.getLineNumber() + 1; - } + public int getLineNumber(CallFrame stackFrame) { + int offset = 0; + Script script = stackFrame.getScript(); + if (script != null) { + offset = script.getStartLine(); + } + return offset + stackFrame.getLineNumber() + 1; + } - /** - * This very simple source locator works because we provide our own source - * files. We'll have to try harder, once we link with resource js files. - */ - private final ISourceLocator sourceLocator = new ISourceLocator() { - public Object getSourceElement(IStackFrame stackFrame) { - if (stackFrame instanceof StackFrame == false) { - return null; - } - StackFrame jsStackFrame = (StackFrame) stackFrame; + private final ISourceLookupDirector sourceLocator; + + public VmResource findVmResourceFromWorkspaceFile(IFile file) throws CoreException { + return new VmResourceImpl(resourceManager.findVmResource(file), resourceManager.getScript(file), file.getName()); + } + + private static final class VmResourceImpl implements VmResource { + private final String name; + private final Script script; + private final VmResourceId id; - Script script = jsStackFrame.getCallFrame().getScript(); - if (script == null) { - return null; - } + public VmResourceImpl(VmResourceId id, Script script, String name) { + super(); + this.id = id; + this.script = script; + this.name = name; + } - IFile resource = resourceManager.getResource(script); - if (resource != null) { - return resource; - } else { - File file = PreviewerPlugin.getDefault().getHttpPreviewer().getLocalFile(script.getName()); - if (file != null) { - try { - return EFS.getStore(file.toURI()); - } catch (CoreException e) { - Activator.log(e); - } - } - } - return null; - } - }; + public VmResourceId getId() { + return id; + } - public VmResource findVmResourceFromWorkspaceFile(IFile resource) throws CoreException { - System.out.println(resource); - return null; + public Script getScript() { + return script; + } + + public String getFileName() { + return name; + } + } public void reloadScript(Script script) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/launch/WebApplicationSourceLocator.java Wed Jun 09 11:21:51 2010 -0700 @@ -0,0 +1,102 @@ +/** + * Copyright (c) 2010 Symbian Foundation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the License "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Symbian Foundation - initial contribution. + * Contributors: + * Description: + * Overview: + * Details: + * Platforms/Drives/Compatibility: + * Assumptions/Requirement/Pre-requisites: + * Failures and causes: + */ +package org.symbian.tools.wrttools.debug.internal.launch; + +import java.io.File; + +import org.chromium.debug.core.model.StackFrame; +import org.chromium.sdk.Script; +import org.eclipse.core.filesystem.EFS; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.model.ISourceLocator; +import org.eclipse.debug.core.model.IStackFrame; +import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector; +import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupParticipant; +import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector; +import org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant; +import org.symbian.tools.wrttools.debug.internal.Activator; +import org.symbian.tools.wrttools.debug.internal.model.ResourceManager; +import org.symbian.tools.wrttools.previewer.PreviewerPlugin; + +public final class WebApplicationSourceLocator extends AbstractSourceLookupDirector implements ISourceLocator, + ISourceLookupDirector { + public static final class WebApplicationSourceLookupParticipant extends AbstractSourceLookupParticipant { + private final ResourceManager resourceManager; + + public WebApplicationSourceLookupParticipant(ResourceManager resourceManager) { + this.resourceManager = resourceManager; + } + + public String getSourceName(Object object) throws CoreException { + Script script = null; + if (object instanceof StackFrame) { + script = ((StackFrame) object).getCallFrame().getScript(); + } else if (object instanceof Script) { + script = (Script) object; + } else { + System.out.println("Source lookup request for " + object.getClass()); + } + if (script != null) { + IFile resource = resourceManager.getResource(script); + if (resource != null) { + return resource.getProjectRelativePath().toString(); + } + } + return null; + } + } + + private final ResourceManager resourceManager; + + public WebApplicationSourceLocator(ResourceManager resourceManager) { + this.resourceManager = resourceManager; + } + + public Object getSourceElement(IStackFrame stackFrame) { + if (stackFrame instanceof StackFrame == false) { + return null; + } + StackFrame jsStackFrame = (StackFrame) stackFrame; + + Script script = jsStackFrame.getCallFrame().getScript(); + if (script == null) { + return null; + } + + IFile resource = resourceManager.getResource(script); + if (resource != null) { + return resource; + } else { + File file = PreviewerPlugin.getDefault().getHttpPreviewer().getLocalFile(script.getName()); + if (file != null) { + try { + return EFS.getStore(file.toURI()); + } catch (CoreException e) { + Activator.log(e); + } + } + } + return null; + } + + public void initializeParticipants() { + addParticipants(new ISourceLookupParticipant[] { new WebApplicationSourceLookupParticipant(resourceManager) }); + } +} \ No newline at end of file
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/model/ResourceManager.java Tue Jun 08 16:12:51 2010 -0700 +++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/model/ResourceManager.java Wed Jun 09 11:21:51 2010 -0700 @@ -65,4 +65,8 @@ Script script = resourceToScript.get(resource); return script != null ? VmResourceId.forScript(script) : null; } + + public Script getScript(IFile file) { + return resourceToScript.get(file); + } }
--- a/org.symbian.tools.wrttools.product/launch/WRT IDE Product (Mac OS X).launch Tue Jun 08 16:12:51 2010 -0700 +++ b/org.symbian.tools.wrttools.product/launch/WRT IDE Product (Mac OS X).launch Wed Jun 09 11:21:51 2010 -0700 @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml version="1.0" encoding="UTF-8"?> <launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench"> <booleanAttribute key="append.args" value="true"/> <booleanAttribute key="askclear" value="true"/> @@ -21,8 +21,8 @@ <stringAttribute key="product" value="org.symbian.tools.wrttools.product.product"/> <stringAttribute key="productFile" value="\org.symbian.tools.wrttools.product\wrt-ide.product"/> <booleanAttribute key="restart" value="false"/> -<stringAttribute key="selected_target_plugins" value="org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.security.macosx@default:false,org.eclipse.swt.cocoa.macosx@default:false,org.apache.commons.logging@default:default,org.eclipse.update.ui@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.core.runtime.compatibility.auth@default:default,org.mozilla.xpcom@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.jsch.core@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.apache.lucene@default:default,org.eclipse.wst.css.core@default:default,org.apache.lucene.analysis@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.wst.jsdt.doc@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.rcp@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.ui.forms@default:default,org.mortbay.jetty.server@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@default:default,org.apache.xerces@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.core.net@default:default,org.eclipse.emf.ecore.edit@default:default,java_cup.runtime@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.sat4j.pb@default:default,org.eclipse.core.filebuffers@default:default,org.apache.commons.el@default:default,org.eclipse.team.ui@default:default,org.eclipse.debug.core@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.cvs@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.platform.doc.user@default:default,org.eclipse.equinox.app@default:default,org.mozilla.xulrunner.carbon.macosx@default:false,org.eclipse.wst.sse.core@default:default,org.mortbay.jetty.util@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.apache.xalan@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.apache.commons.codec@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.text@default:default,org.eclipse.emf.edit.ui@default:default,org.mozilla.xulrunner@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.help.ui@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.runtime@default:true,org.eclipse.draw2d@default:default,org.eclipse.gef@default:default,org.eclipse.ui.browser@default:default,org.eclipse.wst.jsdt.support.ie@default:default,org.eclipse.equinox.launcher.cocoa.macosx@default:false,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.common@2:true,org.eclipse.wst.html.core@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.update.configurator@3:true,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.compare@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.update.core@default:default,javax.servlet@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.equinox.p2.director@default:default,org.apache.commons.lang@default:default,org.eclipse.core.variables@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding@default:default,org.eclipse.equinox.p2.metadata@default:default,org.apache.xml.resolver@default:default,org.eclipse.help.appserver@default:default,org.apache.commons.httpclient@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.filesystem.macosx@default:false,org.apache.velocity@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.wst.dtd.core@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.help@default:default,org.eclipse.core.commands@default:default,org.eclipse.emf.edit@default:default,javax.xml@default:default,org.sat4j.core@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.wst.jsdt.web.ui@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.jface@default:default,org.eclipse.emf.common@default:default,org.eclipse.osgi.util@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.compare.core@default:default,org.apache.log4j@default:default,org.apache.xml.serializer@default:default,org.apache.bcel@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.wst.common.infopop@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.jface.text@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.ui.editors@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.help.webapp@default:default,org.eclipse.ui.views@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.ui.console@default:default,com.jcraft.jsch@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.help.base@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.search@default:default,org.apache.commons.collections@default:default,org.eclipse.debug.ui@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.core.jobs@default:default,org.eclipse.ui@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.wst.validation@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.eclipse.ecf@default:default,org.eclipse.swt@default:default,com.ibm.icu@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.jem.util@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.net@default:default,org.eclipse.equinox.util@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.osgi.services@default:default,org.apache.jasper@default:default,org.eclipse.equinox.security@default:default,javax.servlet.jsp@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.ui.intro@default:default,org.eclipse.osgi@-1:true,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.jsch.ui@default:default,org.jdom@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.platform@default:default,org.eclipse.emf.ecore.change@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.symbian.tools.wrttools@default:default,org.symbian.tools.wrttools.debug.core@default:default,org.symbian.tools.wrttools.previewer@default:default,org.symbian.tools.wrttools.product@default:default,org.chromium.sdk@default:default,org.symbian.tools.wrttools.doc.WebDeveloper@default:default,org.chromium.debug.ui@default:default,org.w3c.css@default:default,org.chromium.debug.core@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.p2.repository@default:default,org.mortbay.jetty.util@default:default,org.eclipse.search@default:default,org.eclipse.rcp@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.ui@default:default,org.eclipse.core.boot@default:default,org.sat4j.pb@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.wst.xml.core@default:default,org.apache.lucene.analysis@default:default,org.eclipse.wst.sse.ui@default:default,org.apache.log4j@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.wst.validation.infopop@default:default,org.apache.xml.serializer@default:default,org.apache.commons.codec@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.text@default:default,org.eclipse.ui.ide@default:default,com.ibm.icu@default:default,org.eclipse.swt.cocoa.macosx@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.wst.standard.schemas@default:default,javax.servlet@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.jface.text@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.gef@default:default,org.eclipse.jface@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding@default:default,org.jdom@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.ui.console@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.ui.forms@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.help.appserver@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.apache.lucene@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.help.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.apache.xml.resolver@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.mozilla.xpcom@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.core.net@default:default,org.eclipse.osgi.util@default:default,javax.xml@default:default,org.eclipse.update.configurator@3:true,org.eclipse.ui.presentations.r21@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.draw2d@default:default,com.jcraft.jsch@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.ui.intro.universal@default:default,javax.servlet.jsp@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jsch.core@default:default,org.sat4j.core@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.platform@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.util@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.help.webapp@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.equinox.common@2:true,org.eclipse.ecf@default:default,org.mozilla.xulrunner.carbon.macosx@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.ui.net@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.swt@default:default,org.eclipse.help@default:default,org.mozilla.xulrunner@default:default,org.eclipse.wst.validation@default:default,org.eclipse.compare@default:default,org.apache.bcel@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.update.ui@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.wst.jsdt.web.ui@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.jsdt.doc@default:default,org.eclipse.ui.views@default:default,org.apache.commons.httpclient@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.update.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.debug.core@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.security.ui@default:default,org.apache.commons.collections@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.wst.css.core@default:default,java_cup.runtime@default:default,org.eclipse.equinox.ds@1:true,org.apache.velocity@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.core.variables@default:default,org.eclipse.core.commands@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.wst.common.snippets@default:default,org.apache.commons.logging@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.apache.commons.el@default:default,org.apache.commons.lang@default:default,org.eclipse.ui.browser@default:default,org.mortbay.jetty.server@default:default,org.eclipse.ui.intro@default:default,org.eclipse.debug.ui@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.registry@default:default,org.apache.jasper@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.apache.xalan@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.equinox.launcher.cocoa.macosx@default:false,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.equinox.http.registry@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.jem.util@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.wst.jsdt.support.ie@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.cvs@default:default,org.eclipse.osgi@-1:true,org.eclipse.team.cvs.core@default:default,org.eclipse.core.expressions@default:default,org.apache.xerces@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.team.core@default:default,org.eclipse.help.base@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.equinox.security.macosx@default:false,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.core.resources@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.osgi.services@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.symbian.tools.wrttools.previewer@default:default,org.symbian.tools.wrttools.debug.core@default:default,org.symbian.tools.wrttools.product@default:default,org.chromium.debug.ui@default:default,org.symbian.tools.wrttools@default:default,org.symbian.tools.wrttools.doc.WebDeveloper@default:default,org.chromium.sdk@default:default,org.w3c.css@default:default,org.chromium.debug.core@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/>