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

Bugzilla 241418.

This commit is contained in:
Randy Rohrbach 2008-07-18 18:09:52 +00:00
parent ca0b52a232
commit 22e14ab218
3 changed files with 46 additions and 20 deletions

View file

@ -99,7 +99,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
return fExpression;
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
return fBitFieldExpressionFactory;
return getWatchExpressionFactory();
} else {
return super.getAdapter(adapter);
}
@ -131,9 +131,9 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
* Expected format: GRP( GroupName ).REG( RegisterName ).BFLD( BitFieldname )
*/
public String createWatchExpression(Object element) throws CoreException {
IRegisterGroupDMData groupData = fDataAccess.getRegisterGroupDMData(element);
IRegisterDMData registerData = fDataAccess.getRegisterDMData(element);
IBitFieldDMData bitFieldData = fDataAccess.getBitFieldDMData(element);
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
IRegisterDMData registerData = getSyncRegisterDataAccess().getRegisterDMData(element);
IBitFieldDMData bitFieldData = getSyncRegisterDataAccess().getBitFieldDMData(element);
if (groupData != null && registerData != null && bitFieldData != null) {
StringBuffer exprBuf = new StringBuffer();
@ -149,13 +149,13 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
}
}
private SyncRegisterDataAccess fDataAccess = null;
final protected BitFieldExpressionFactory fBitFieldExpressionFactory = new BitFieldExpressionFactory();
private SyncRegisterDataAccess fSyncRegisterDataAccess = null;
private IWatchExpressionFactoryAdapter2 fBitFieldExpressionFactory = null;
private final IFormattedValuePreferenceStore fFormattedPrefStore;
public RegisterBitFieldVMNode(IFormattedValuePreferenceStore prefStore, AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess access) {
super(provider, session, IRegisters.IBitFieldDMContext.class);
fDataAccess = access;
fSyncRegisterDataAccess = access;
fFormattedPrefStore = prefStore;
}
@ -168,6 +168,18 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
public IFormattedValuePreferenceStore getPreferenceStore() {
return fFormattedPrefStore;
}
public SyncRegisterDataAccess getSyncRegisterDataAccess() {
return fSyncRegisterDataAccess;
}
public IWatchExpressionFactoryAdapter2 getWatchExpressionFactory() {
if ( fBitFieldExpressionFactory == null ) {
fBitFieldExpressionFactory = new BitFieldExpressionFactory();
}
return fBitFieldExpressionFactory;
}
/**
* Private data access routine which performs the extra level of data access needed to
* get the formatted data value for a specific register.
@ -560,7 +572,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
* editor. If there are bit groups then the modifier will check the size of the
* value being entered.
*/
IBitFieldDMData bitFieldData = fDataAccess.readBitField(element);
IBitFieldDMData bitFieldData = getSyncRegisterDataAccess().readBitField(element);
if ( bitFieldData != null && bitFieldData.isWriteable() ) {
@ -606,7 +618,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
* In order to decide what kind of modifier to present we need to know if there
* are mnemonics which can be used to represent the values.
*/
IBitFieldDMData bitFieldData = fDataAccess.readBitField(element);
IBitFieldDMData bitFieldData = getSyncRegisterDataAccess().readBitField(element);
if ( bitFieldData != null && bitFieldData.isWriteable() ) {
@ -617,14 +629,14 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
* Note we are complex COMBO and return the right editor.
*/
return new RegisterBitFieldCellModifier(
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDCOMBO, fDataAccess );
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDCOMBO, getSyncRegisterDataAccess() );
}
else {
/*
* Text editor even if we need to clamp the value entered.
*/
return new RegisterBitFieldCellModifier(
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDTEXT, fDataAccess );
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDTEXT, getSyncRegisterDataAccess() );
}
}
else {

View file

@ -80,7 +80,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
return fExpression;
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
return fRegisterGroupExpressionFactory;
return getWatchExpressionFactory();
} else {
return super.getAdapter(adapter);
}
@ -112,7 +112,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
* Expected format: Group(GroupName)
*/
public String createWatchExpression(Object element) throws CoreException {
IRegisterGroupDMData groupData = fSyncRegisterDataAccess.getRegisterGroupDMData(element);
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
if (groupData != null) {
StringBuffer exprBuf = new StringBuffer();
exprBuf.append("GRP( "); //$NON-NLS-1$
@ -126,7 +126,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
}
final private SyncRegisterDataAccess fSyncRegisterDataAccess;
final protected RegisterGroupExpressionFactory fRegisterGroupExpressionFactory = new RegisterGroupExpressionFactory();
private IWatchExpressionFactoryAdapter2 fRegisterGroupExpressionFactory = null;
private WatchExpressionCellModifier fWatchExpressionCellModifier = new WatchExpressionCellModifier();
public RegisterGroupVMNode(AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess syncDataAccess) {
@ -143,6 +143,13 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
return fSyncRegisterDataAccess;
}
public IWatchExpressionFactoryAdapter2 getWatchExpressionFactory() {
if ( fRegisterGroupExpressionFactory == null ) {
fRegisterGroupExpressionFactory = new RegisterGroupExpressionFactory();
}
return fRegisterGroupExpressionFactory;
}
/*
* (non-Javadoc)
* @see org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode#updateElementsInSessionThread(org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate)

View file

@ -89,7 +89,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
return fExpression;
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
return fRegisterExpressionFactory;
return getWatchExpressionFactory();
} else {
return super.getAdapter(adapter);
}
@ -125,8 +125,8 @@ public class RegisterVMNode extends AbstractExpressionVMNode
* Expected format: GRP( GroupName ).REG( RegisterName )
*/
public String createWatchExpression(Object element) throws CoreException {
IRegisterGroupDMData groupData = fSyncRegisterDataAccess.getRegisterGroupDMData(element);
IRegisterDMData registerData = fSyncRegisterDataAccess.getRegisterDMData(element);
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
IRegisterDMData registerData = getSyncRegisterDataAccess().getRegisterDMData(element);
if (groupData != null && registerData != null) {
StringBuffer exprBuf = new StringBuffer();
@ -141,7 +141,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
}
}
final protected RegisterExpressionFactory fRegisterExpressionFactory = new RegisterExpressionFactory();
private IWatchExpressionFactoryAdapter2 fRegisterExpressionFactory = null;
final private SyncRegisterDataAccess fSyncRegisterDataAccess;
private final IFormattedValuePreferenceStore fFormattedPrefStore;
@ -164,6 +164,13 @@ public class RegisterVMNode extends AbstractExpressionVMNode
return fFormattedPrefStore;
}
public IWatchExpressionFactoryAdapter2 getWatchExpressionFactory() {
if ( fRegisterExpressionFactory == null ) {
fRegisterExpressionFactory = new RegisterExpressionFactory();
}
return fRegisterExpressionFactory;
}
/**
* Private data access routine which performs the extra level of data access needed to
* get the formatted data value for a specific register.
@ -738,7 +745,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
* See if the register is writable and if so we will created a
* cell editor for it.
*/
IRegisterDMData regData = fSyncRegisterDataAccess.readRegister(element);
IRegisterDMData regData = getSyncRegisterDataAccess().readRegister(element);
if ( regData != null && regData.isWriteable() ) {
return new TextCellEditor(parent);
@ -753,7 +760,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
*/
public ICellModifier getCellModifier(IPresentationContext context, Object element) {
return new RegisterCellModifier(
getDMVMProvider(), fFormattedPrefStore, fSyncRegisterDataAccess );
getDMVMProvider(), fFormattedPrefStore, getSyncRegisterDataAccess() );
}
/*