Change visibility to private for net.sourceforge.phpeclipse.xdebug.php.model.XDebugEl...
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.core / src / net / sourceforge / phpeclipse / xdebug / php / model / XDebugTarget.java
index 43f7c9c..ee034ec 100644 (file)
@@ -177,7 +177,7 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
                        fSuspended = false;
                        
                        XDebugCorePlugin.getBreakpointManager().removeBreakpointListener(this);
-                       fireTerminateEvent();
+                       fThread.fireTerminateEvent();
                        DebugPlugin.getDefault().removeDebugEventListener(this);
                        /*if (fThread!=null)
                                fThread.removeEventListeners();*/
@@ -211,8 +211,9 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
        public void resume() throws DebugException {
                if (fDebugConnection != null) {
                        fThread.setBreakpoints(null);
+                       resumed(DebugEvent.RESUME);
                        fDebugConnection.run();
-               }                       
+               }               
        }
        
        /**
@@ -488,6 +489,16 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
                }
        }
        
+       public Node eval(String expression) {
+               int id = fDebugConnection.eval(expression);
+               XDebugResponse response = getResponse(id);
+
+               Node evalResponse = response.getParentNode();
+               Node evalProperty = evalResponse.getFirstChild();
+               
+               return evalProperty;
+       }
+       
        public void handleDebugEvents(DebugEvent[] events) {
                for (int i = 0; i < events.length; i++) {
                        DebugEvent event = events[i];
@@ -541,12 +552,14 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
                        return;
                }
 
+               resumed(DebugEvent.TERMINATE);
+
                stopListener();
                fDebugConnection.close();
 
-               fThread.removeEventListeners();
+/*             fThread.removeEventListeners();
                fThread = null;
-               fThreads = new IThread[0];
+               fThreads = new IThread[0];*/
                
 /*             stopListener();
                fDebugConnection.close();*/
@@ -562,18 +575,23 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
                        }
                } else {
                        fDebugConnection = null;
-                       fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT));
-               }               
+                       fThread.fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT));
+               }
+               
+               fThread.removeEventListeners();
+               fThread = null;
+               fThreads = new IThread[0];
        }
        
        public void handleProxyEvent(/*String ideKey,*/ XDebugConnection connection) {
                setDebugConnection(connection);
                System.out.println("* New Connection - XDebug.Target: " + fDebugConnection.getSessionID());
                
-               fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CHANGE));
+//             fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CHANGE));
                
                fThread = new XDebugThread(this);
                fThreads = new IThread[] {fThread};
+               fThread.fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CHANGE));
                try {
                        started();
                } catch( DebugException e ){
@@ -617,11 +635,15 @@ public class XDebugTarget extends XDebugElement implements IDebugTarget, IDebugE
                return response.getParentNode();
        }
        
+       public void stop() {
+               fDebugConnection.stop();
+       }
+       
        protected IBreakpoint breakpointHit(Node node) {
                Node child = node.getFirstChild();
                if (child.getNodeName().equals("stack")) {
                        int lineNumber = Integer.parseInt(PHPDebugUtils.getAttributeValue(child, "lineno"));
-                       String filename=PHPDebugUtils.getAttributeValue(child, "filename");  
+                       String filename = PHPDebugUtils.getAttributeValue(child, "filename");  
                        IBreakpoint[] breakpoints = XDebugCorePlugin.getBreakpoints();
                        for (int i = 0; i < breakpoints.length; i++) {
                                IBreakpoint breakpoint = breakpoints[i];