X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugAbstractValue.java b/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugAbstractValue.java index 9b0a57e..6e69d0b 100644 --- a/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugAbstractValue.java +++ b/net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugAbstractValue.java @@ -1,5 +1,4 @@ -/* - * Created on 23.11.2004 + /* Created on 23.11.2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates @@ -9,6 +8,7 @@ package net.sourceforge.phpeclipse.xdebug.php.model; import net.sourceforge.phpeclipse.xdebug.core.Base64; import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils; +import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IValue; import org.eclipse.debug.core.model.IVariable; @@ -21,14 +21,15 @@ import org.w3c.dom.NodeList; * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ + public abstract class XDebugAbstractValue extends XDebugElement implements IValue { private IVariable[] fVariables; protected String fValueString; - protected String fTypeName; + private String fTypeName; private boolean fhasChanged; - public XDebugAbstractValue(XDebugStackFrame frame, Node varNode) { - super((XDebugTarget) frame.getDebugTarget()); + public XDebugAbstractValue(XDebugStackFrame frame, Node varNode) throws DebugException { + super(frame == null ? null : (XDebugTarget) frame.getDebugTarget()); fTypeName = PHPDebugUtils.getAttributeValue(varNode,"type"); @@ -37,8 +38,8 @@ public abstract class XDebugAbstractValue extends XDebugElement implements IVal NumChildren = Integer.parseInt(PHPDebugUtils.getAttributeValue(varNode, "numchildren")); } - NodeList property = varNode.getChildNodes(); if (NumChildren > 0) { + NodeList property = varNode.getChildNodes(); renderValueString(""+property.getLength()); fVariables = new IVariable[property.getLength()]; for (int i = 0; i 0); } - public abstract void renderValueString(String data); + public abstract void renderValueString(String data) throws DebugException; public abstract boolean verifyValue(String expression); - public boolean setValue(String expression) { - if (!verifyValue(expression)) + public boolean setValue(String expression) throws DebugException { + if (!verifyValue(expression)) { return false; - if( getDebugTarget() == null ) { - renderValueString(expression); - } else { - /* if(((XDebugTarget) getDebugTarget()).setVarValue(fVariable.getFullName(),expression)) { - renderValueString(expression); - return true; - }*/ - } - return false; + } + + renderValueString(expression); + fireEvent(new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT)); + + return true; } public boolean supportsValueModification() {