Remove XDebugConnection dependence from XDebugWatchExpressionDelegate and add XdebugT...
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.core / src / net / sourceforge / phpeclipse / xdebug / php / model / XDebugWatchExpressionDelegate.java
1 package net.sourceforge.phpeclipse.xdebug.php.model;
2
3
4 import net.sourceforge.phpeclipse.xdebug.php.model.XDebugVariable;
5 import net.sourceforge.phpeclipse.xdebug.php.model.XDebugTarget;
6
7 import org.eclipse.debug.core.model.IDebugElement;
8 import org.eclipse.debug.core.model.IWatchExpressionDelegate;
9 import org.eclipse.debug.core.model.IWatchExpressionListener;
10 import org.eclipse.debug.core.model.IWatchExpressionResult;
11 import org.w3c.dom.Node;
12
13 public class XDebugWatchExpressionDelegate implements IWatchExpressionDelegate {
14         public void evaluateExpression(String expression, IDebugElement context, IWatchExpressionListener listener) {
15                 IWatchExpressionResult x;
16
17                 try {
18                                 Node evalProperty = ((XDebugTarget) context.getDebugTarget()).eval(expression);
19                                 XDebugVariable variable = new XDebugVariable(null, evalProperty);
20                                 XDebugVariable result[] = {variable};
21                                 
22                                 if (result.length == 0) {
23                                         x = new XDebugWatchExpressionResult(expression, null, null);
24                                 } else {
25                                         x = new XDebugWatchExpressionResult(expression, result[0].getValue(), null);
26                                 }
27                 } catch (Exception e) {
28                         String[] s1;
29
30                         s1 = new String[1];
31                         s1[0] = e.toString();
32                         x = new XDebugWatchExpressionResult(expression, null, s1);
33                 }
34
35                 listener.watchEvaluationFinished(x);
36         }
37 }