added full value evaluator instead of evaluating full value on copy every time (PY...
authorDmitry Trofimov <dmitry.trofimov@jetbrains.com>
Tue, 23 Nov 2010 16:10:05 +0000 (19:10 +0300)
committerDmitry Trofimov <dmitry.trofimov@jetbrains.com>
Tue, 23 Nov 2010 16:10:05 +0000 (19:10 +0300)
platform/xdebugger-api/src/com/intellij/xdebugger/evaluation/XDebuggerEvaluator.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/XCopyValueAction.java

index 73ab948b3d5dffcc29c6e148b969605fe8aac4a1..3d086269c243dd1e67a7ad893a1d3be79fac10d1 100644 (file)
@@ -75,19 +75,6 @@ public abstract class XDebuggerEvaluator {
   public void evaluate(@NotNull String expression, XEvaluationCallback callback) {
   }
 
-
-  /**
-   * @return true if CopyValue action should execute evaluateCopy method
-   * @param node
-   */
-  public boolean isEvaluateOnCopy(String name, String value) {
-    return false;
-  }
-
-  public void evaluateFull(@NotNull String expression, XEvaluationCallback callback, @Nullable XSourcePosition expressionPosition) {
-    evaluate(expression, callback, expressionPosition);
-  }
-
   /**
    * Return text range of expression which can be evaluated.
    *
index 04bd31f61ab8c4f8bb227b40e6e7d101ce195df6..ac1315e46928addd35dbc2720ef2f6b0c5a0e3e8 100644 (file)
  */
 package com.intellij.xdebugger.impl.ui.tree.actions;
 
+import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.ide.CopyPasteManager;
-import com.intellij.xdebugger.evaluation.XDebuggerEvaluator;
-import com.intellij.xdebugger.frame.XSuspendContext;
-import com.intellij.xdebugger.frame.XValue;
-import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
-import com.intellij.xdebugger.impl.ui.tree.nodes.XValueNodeImpl;
 import org.jetbrains.annotations.NotNull;
 
 import java.awt.datatransfer.StringSelection;
@@ -31,30 +27,8 @@ import java.awt.datatransfer.StringSelection;
  */
 public class XCopyValueAction extends XDebuggerTreeActionBase {
   protected void perform(final XValueNodeImpl node, @NotNull final String nodeName, final AnActionEvent e) {
-    XSuspendContext suspendContext =  node.getTree().getSession().getSuspendContext();
-    XDebuggerEvaluator evaluator = XDebuggerUtilImpl.getEvaluator(suspendContext);
-    if (evaluator != null && evaluator.isEvaluateOnCopy(node.getName(), node.getValue())) {
-      evaluator.evaluateFull(node.getName(), new XDebuggerEvaluator.XEvaluationCallback() {
-        @Override
-        public void evaluated(@NotNull XValue result) {
-          String value = result.getModifier().getInitialValueEditorText();
-          setCopyContents(value);
-        }
-
-        @Override
-        public void errorOccurred(@NotNull String errorMessage) {
-          String value = node.getValue();
-          setCopyContents(value);
-        }
-      }, null);
-    } else {
-      String value = node.getValue();
-      setCopyContents(value);
-    }
-
-  }
-
-  private static void setCopyContents(String value) {
+    //todo[nik] is it correct? Perhaps we should use evaluator.evaluateMessage here
+    String value = node.getValue();
     CopyPasteManager.getInstance().setContents(new StringSelection(value));
   }