1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Added support of variable formatting.

This commit is contained in:
Mikhail Khodjaiants 2002-12-17 02:41:32 +00:00
parent 09a54af4e3
commit d1e1638d2e
5 changed files with 87 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2002-12-16 Mikhail Khodjaiants
Added support of variable formatting.
* ICValue.java: new type - TYPE_UNKNOWN
* ICVariable: new interface for object contribution, set/get format and refresh methods
* CValue.java
* CVariable.java
2002-12-13 Mikhail Khodjaiants 2002-12-13 Mikhail Khodjaiants
Display message when 'getStackDepth' is timed out. Display message when 'getStackDepth' is timed out.
* CThread.java * CThread.java

View file

@ -18,6 +18,7 @@ import org.eclipse.debug.core.model.IValue;
*/ */
public interface ICValue extends IValue public interface ICValue extends IValue
{ {
static final public int TYPE_UNKNOWN = -1;
static final public int TYPE_SIMPLE = 0; static final public int TYPE_SIMPLE = 0;
static final public int TYPE_ARRAY = 1; static final public int TYPE_ARRAY = 1;
static final public int TYPE_STRUCTURE = 2; static final public int TYPE_STRUCTURE = 2;

View file

@ -0,0 +1,24 @@
/*
*(c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*
*/
package org.eclipse.cdt.debug.core.model;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IVariable;
/**
*
* Enter type comment.
*
* @since Dec 15, 2002
*/
public interface ICVariable extends IVariable
{
int getFormat();
void setFormat( int format ) throws DebugException;
void refresh() throws DebugException;
}

View file

@ -50,7 +50,7 @@ public class CValue extends CDebugElement implements ICValue
/** /**
* Type (simple, array, structure or string) of this value. * Type (simple, array, structure or string) of this value.
*/ */
private int fType = TYPE_SIMPLE; private int fType = TYPE_UNKNOWN;
/** /**
* Constructor for CValue. * Constructor for CValue.
@ -198,7 +198,7 @@ public class CValue extends CDebugElement implements ICValue
protected void calculateType( String stringValue ) protected void calculateType( String stringValue )
{ {
if ( stringValue != null ) if ( fType == TYPE_UNKNOWN && stringValue != null )
{ {
stringValue = stringValue.trim(); stringValue = stringValue.trim();
if ( stringValue.length() == 0 ) if ( stringValue.length() == 0 )
@ -221,6 +221,10 @@ public class CValue extends CDebugElement implements ICValue
{ {
fType = TYPE_POINTER; fType = TYPE_POINTER;
} }
else
{
fType = TYPE_SIMPLE;
}
} }
} }

View file

@ -6,6 +6,7 @@
package org.eclipse.cdt.debug.internal.core.model; package org.eclipse.cdt.debug.internal.core.model;
import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.ICDIFormat;
import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent;
import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener; import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
@ -13,6 +14,7 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
import org.eclipse.cdt.debug.core.cdi.model.ICDIValue; import org.eclipse.cdt.debug.core.cdi.model.ICDIValue;
import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable; import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable;
import org.eclipse.cdt.debug.core.model.ICValue; import org.eclipse.cdt.debug.core.model.ICValue;
import org.eclipse.cdt.debug.core.model.ICVariable;
import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IDebugTarget;
@ -26,7 +28,7 @@ import org.eclipse.debug.core.model.IVariable;
* @since Aug 9, 2002 * @since Aug 9, 2002
*/ */
public abstract class CVariable extends CDebugElement public abstract class CVariable extends CDebugElement
implements IVariable, implements ICVariable,
ICDIEventListener ICDIEventListener
{ {
/** /**
@ -63,6 +65,11 @@ public abstract class CVariable extends CDebugElement
*/ */
private String fTypeName = null; private String fTypeName = null;
/**
* The current format of this variable.
*/
private int fFormat = ICDIFormat.NATURAL;
/** /**
* Constructor for CVariable. * Constructor for CVariable.
* @param target * @param target
@ -153,6 +160,8 @@ public abstract class CVariable extends CDebugElement
{ {
if ( adapter.equals( IVariable.class ) ) if ( adapter.equals( IVariable.class ) )
return this; return this;
if ( adapter.equals( ICVariable.class ) )
return this;
return super.getAdapter( adapter ); return super.getAdapter( adapter );
} }
@ -349,4 +358,43 @@ public abstract class CVariable extends CDebugElement
parentValue.getParentVariable().setChanged( true ); parentValue.getParentVariable().setChanged( true );
parentValue.getParentVariable().fireChangeEvent( DebugEvent.STATE ); parentValue.getParentVariable().fireChangeEvent( DebugEvent.STATE );
} }
/**
* @see org.eclipse.cdt.debug.core.model.ICVariable#getFormat()
*/
public int getFormat()
{
return fFormat;
}
/**
* @see org.eclipse.cdt.debug.core.model.ICVariable#setFormat(int)
*/
public void setFormat( int format ) throws DebugException
{
try
{
getCDIVariable().setFormat( format );
fFormat = format;
}
catch( CDIException e )
{
targetRequestFailed( e.getMessage(), null );
}
}
/**
* @see org.eclipse.cdt.debug.core.model.ICVariable#refresh()
*/
public void refresh() throws DebugException
{
try
{
getCDIVariable().setValue( getCDIVariable().getValue().getValueString() );
}
catch( CDIException e )
{
targetRequestFailed( e.getMessage(), null );
}
}
} }