plugins/org.symbian.tools.tmw.debug/src/org/symbian/tools/wrttools/debug/ui/actions/WatchExpression.java
changeset 471 06589bf52fa7
parent 470 d4809db37847
child 472 bd9f2d7c64a6
--- a/plugins/org.symbian.tools.tmw.debug/src/org/symbian/tools/wrttools/debug/ui/actions/WatchExpression.java	Thu Aug 19 17:48:04 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/**
- * 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.ui.actions;
-
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IExpressionManager;
-import org.eclipse.debug.core.model.IWatchExpression;
-import org.eclipse.debug.ui.IDebugUIConstants;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.ActionDelegate;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.ASTVisitor;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.javaeditor.WorkingCopyManager;
-import org.symbian.tools.wrttools.debug.internal.Activator;
-
-@SuppressWarnings("restriction")
-public class WatchExpression extends ActionDelegate implements IEditorActionDelegate {
-    private final class FindNode extends ASTVisitor {
-        private final int offset;
-        private final int length;
-
-        private ASTNode node;
-
-        private FindNode(int offset, int length) {
-            super(false);
-            this.offset = offset;
-            this.length = length;
-        }
-
-        @Override
-        public boolean visit(SimpleName node) {
-            checkNode(node);
-            return true;
-        }
-
-        public void checkNode(ASTNode node) {
-            final int end = node.getStartPosition() + node.getLength();
-            if (node.getStartPosition() <= offset && end >= offset + length) {
-                this.node = node;
-            }
-        }
-
-        @Override
-        public void postVisit(ASTNode node) {
-            if (this.node == null) {
-                checkNode(node);
-            }
-        }
-
-        public ASTNode getNode() {
-            return node;
-        }
-    }
-
-    private IEditorPart targetEditor;
-
-    public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-        this.targetEditor = targetEditor;
-    }
-
-    @Override
-    public void run(IAction action) {
-        ISelection selection = targetEditor.getEditorSite().getSelectionProvider().getSelection();
-        if (selection instanceof ITextSelection) {
-            final ITextSelection textSelection = (ITextSelection) selection;
-            final WorkingCopyManager manager = JavaScriptPlugin.getDefault().getWorkingCopyManager();
-            final IEditorInput editorInput = targetEditor.getEditorInput();
-            final IJavaScriptUnit workingCopy = manager.getWorkingCopy(editorInput);
-            final ASTParser parser = ASTParser.newParser(AST.JLS3);
-
-            parser.setSource(workingCopy);
-            final ASTNode ast = parser.createAST(null);
-            final FindNode visitor = new FindNode(textSelection.getOffset(), textSelection.getLength());
-            ast.accept(visitor);
-
-            final ASTNode node = visitor.getNode();
-            if (node != null) {
-                final String jsString;
-                if (node.getNodeType() == ASTNode.SIMPLE_NAME) {
-                    switch (node.getParent().getNodeType()) {
-                    case ASTNode.FIELD_ACCESS:
-                    case ASTNode.FUNCTION_INVOCATION:
-                        jsString = node.getParent().toString();
-                        break;
-                    default:
-                        jsString = node.toString();
-                        break;
-                    }
-                } else {
-                    jsString = node.toString();
-                }
-                IExpressionManager expressionManager = DebugPlugin.getDefault().getExpressionManager();
-                IWatchExpression expression = expressionManager.newWatchExpression(jsString);
-                expressionManager.addExpression(expression);
-
-                try {
-                    targetEditor.getSite().getPage().showView(IDebugUIConstants.ID_EXPRESSION_VIEW);
-                } catch (PartInitException e) {
-                    Activator.log(e);
-                }
-            }
-        }
-    }
-
-}