mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bugzilla 241418.
This commit is contained in:
parent
ca0b52a232
commit
22e14ab218
3 changed files with 46 additions and 20 deletions
|
@ -99,7 +99,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
|
||||||
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
||||||
return fExpression;
|
return fExpression;
|
||||||
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
||||||
return fBitFieldExpressionFactory;
|
return getWatchExpressionFactory();
|
||||||
} else {
|
} else {
|
||||||
return super.getAdapter(adapter);
|
return super.getAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
@ -131,9 +131,9 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
|
||||||
* Expected format: GRP( GroupName ).REG( RegisterName ).BFLD( BitFieldname )
|
* Expected format: GRP( GroupName ).REG( RegisterName ).BFLD( BitFieldname )
|
||||||
*/
|
*/
|
||||||
public String createWatchExpression(Object element) throws CoreException {
|
public String createWatchExpression(Object element) throws CoreException {
|
||||||
IRegisterGroupDMData groupData = fDataAccess.getRegisterGroupDMData(element);
|
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
|
||||||
IRegisterDMData registerData = fDataAccess.getRegisterDMData(element);
|
IRegisterDMData registerData = getSyncRegisterDataAccess().getRegisterDMData(element);
|
||||||
IBitFieldDMData bitFieldData = fDataAccess.getBitFieldDMData(element);
|
IBitFieldDMData bitFieldData = getSyncRegisterDataAccess().getBitFieldDMData(element);
|
||||||
|
|
||||||
if (groupData != null && registerData != null && bitFieldData != null) {
|
if (groupData != null && registerData != null && bitFieldData != null) {
|
||||||
StringBuffer exprBuf = new StringBuffer();
|
StringBuffer exprBuf = new StringBuffer();
|
||||||
|
@ -149,13 +149,13 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SyncRegisterDataAccess fDataAccess = null;
|
private SyncRegisterDataAccess fSyncRegisterDataAccess = null;
|
||||||
final protected BitFieldExpressionFactory fBitFieldExpressionFactory = new BitFieldExpressionFactory();
|
private IWatchExpressionFactoryAdapter2 fBitFieldExpressionFactory = null;
|
||||||
private final IFormattedValuePreferenceStore fFormattedPrefStore;
|
private final IFormattedValuePreferenceStore fFormattedPrefStore;
|
||||||
|
|
||||||
public RegisterBitFieldVMNode(IFormattedValuePreferenceStore prefStore, AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess access) {
|
public RegisterBitFieldVMNode(IFormattedValuePreferenceStore prefStore, AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess access) {
|
||||||
super(provider, session, IRegisters.IBitFieldDMContext.class);
|
super(provider, session, IRegisters.IBitFieldDMContext.class);
|
||||||
fDataAccess = access;
|
fSyncRegisterDataAccess = access;
|
||||||
fFormattedPrefStore = prefStore;
|
fFormattedPrefStore = prefStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,6 +168,18 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
|
||||||
public IFormattedValuePreferenceStore getPreferenceStore() {
|
public IFormattedValuePreferenceStore getPreferenceStore() {
|
||||||
return fFormattedPrefStore;
|
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
|
* Private data access routine which performs the extra level of data access needed to
|
||||||
* get the formatted data value for a specific register.
|
* 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
|
* editor. If there are bit groups then the modifier will check the size of the
|
||||||
* value being entered.
|
* value being entered.
|
||||||
*/
|
*/
|
||||||
IBitFieldDMData bitFieldData = fDataAccess.readBitField(element);
|
IBitFieldDMData bitFieldData = getSyncRegisterDataAccess().readBitField(element);
|
||||||
|
|
||||||
if ( bitFieldData != null && bitFieldData.isWriteable() ) {
|
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
|
* 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.
|
* 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() ) {
|
if ( bitFieldData != null && bitFieldData.isWriteable() ) {
|
||||||
|
|
||||||
|
@ -617,14 +629,14 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
|
||||||
* Note we are complex COMBO and return the right editor.
|
* Note we are complex COMBO and return the right editor.
|
||||||
*/
|
*/
|
||||||
return new RegisterBitFieldCellModifier(
|
return new RegisterBitFieldCellModifier(
|
||||||
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDCOMBO, fDataAccess );
|
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDCOMBO, getSyncRegisterDataAccess() );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*
|
/*
|
||||||
* Text editor even if we need to clamp the value entered.
|
* Text editor even if we need to clamp the value entered.
|
||||||
*/
|
*/
|
||||||
return new RegisterBitFieldCellModifier(
|
return new RegisterBitFieldCellModifier(
|
||||||
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDTEXT, fDataAccess );
|
getDMVMProvider(), fFormattedPrefStore, BitFieldEditorStyle.BITFIELDTEXT, getSyncRegisterDataAccess() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
|
||||||
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
||||||
return fExpression;
|
return fExpression;
|
||||||
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
||||||
return fRegisterGroupExpressionFactory;
|
return getWatchExpressionFactory();
|
||||||
} else {
|
} else {
|
||||||
return super.getAdapter(adapter);
|
return super.getAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
|
||||||
* Expected format: Group(GroupName)
|
* Expected format: Group(GroupName)
|
||||||
*/
|
*/
|
||||||
public String createWatchExpression(Object element) throws CoreException {
|
public String createWatchExpression(Object element) throws CoreException {
|
||||||
IRegisterGroupDMData groupData = fSyncRegisterDataAccess.getRegisterGroupDMData(element);
|
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
|
||||||
if (groupData != null) {
|
if (groupData != null) {
|
||||||
StringBuffer exprBuf = new StringBuffer();
|
StringBuffer exprBuf = new StringBuffer();
|
||||||
exprBuf.append("GRP( "); //$NON-NLS-1$
|
exprBuf.append("GRP( "); //$NON-NLS-1$
|
||||||
|
@ -126,7 +126,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
|
||||||
}
|
}
|
||||||
|
|
||||||
final private SyncRegisterDataAccess fSyncRegisterDataAccess;
|
final private SyncRegisterDataAccess fSyncRegisterDataAccess;
|
||||||
final protected RegisterGroupExpressionFactory fRegisterGroupExpressionFactory = new RegisterGroupExpressionFactory();
|
private IWatchExpressionFactoryAdapter2 fRegisterGroupExpressionFactory = null;
|
||||||
private WatchExpressionCellModifier fWatchExpressionCellModifier = new WatchExpressionCellModifier();
|
private WatchExpressionCellModifier fWatchExpressionCellModifier = new WatchExpressionCellModifier();
|
||||||
|
|
||||||
public RegisterGroupVMNode(AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess syncDataAccess) {
|
public RegisterGroupVMNode(AbstractDMVMProvider provider, DsfSession session, SyncRegisterDataAccess syncDataAccess) {
|
||||||
|
@ -143,6 +143,13 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
|
||||||
return fSyncRegisterDataAccess;
|
return fSyncRegisterDataAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IWatchExpressionFactoryAdapter2 getWatchExpressionFactory() {
|
||||||
|
if ( fRegisterGroupExpressionFactory == null ) {
|
||||||
|
fRegisterGroupExpressionFactory = new RegisterGroupExpressionFactory();
|
||||||
|
}
|
||||||
|
return fRegisterGroupExpressionFactory;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
* @see org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode#updateElementsInSessionThread(org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate)
|
* @see org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode#updateElementsInSessionThread(org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate)
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
|
||||||
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
if (fExpression != null && adapter.isAssignableFrom(fExpression.getClass())) {
|
||||||
return fExpression;
|
return fExpression;
|
||||||
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
} else if (adapter.isAssignableFrom(IWatchExpressionFactoryAdapter2.class)) {
|
||||||
return fRegisterExpressionFactory;
|
return getWatchExpressionFactory();
|
||||||
} else {
|
} else {
|
||||||
return super.getAdapter(adapter);
|
return super.getAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
@ -125,8 +125,8 @@ public class RegisterVMNode extends AbstractExpressionVMNode
|
||||||
* Expected format: GRP( GroupName ).REG( RegisterName )
|
* Expected format: GRP( GroupName ).REG( RegisterName )
|
||||||
*/
|
*/
|
||||||
public String createWatchExpression(Object element) throws CoreException {
|
public String createWatchExpression(Object element) throws CoreException {
|
||||||
IRegisterGroupDMData groupData = fSyncRegisterDataAccess.getRegisterGroupDMData(element);
|
IRegisterGroupDMData groupData = getSyncRegisterDataAccess().getRegisterGroupDMData(element);
|
||||||
IRegisterDMData registerData = fSyncRegisterDataAccess.getRegisterDMData(element);
|
IRegisterDMData registerData = getSyncRegisterDataAccess().getRegisterDMData(element);
|
||||||
|
|
||||||
if (groupData != null && registerData != null) {
|
if (groupData != null && registerData != null) {
|
||||||
StringBuffer exprBuf = new StringBuffer();
|
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;
|
final private SyncRegisterDataAccess fSyncRegisterDataAccess;
|
||||||
private final IFormattedValuePreferenceStore fFormattedPrefStore;
|
private final IFormattedValuePreferenceStore fFormattedPrefStore;
|
||||||
|
|
||||||
|
@ -164,6 +164,13 @@ public class RegisterVMNode extends AbstractExpressionVMNode
|
||||||
return fFormattedPrefStore;
|
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
|
* Private data access routine which performs the extra level of data access needed to
|
||||||
* get the formatted data value for a specific register.
|
* 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
|
* See if the register is writable and if so we will created a
|
||||||
* cell editor for it.
|
* cell editor for it.
|
||||||
*/
|
*/
|
||||||
IRegisterDMData regData = fSyncRegisterDataAccess.readRegister(element);
|
IRegisterDMData regData = getSyncRegisterDataAccess().readRegister(element);
|
||||||
|
|
||||||
if ( regData != null && regData.isWriteable() ) {
|
if ( regData != null && regData.isWriteable() ) {
|
||||||
return new TextCellEditor(parent);
|
return new TextCellEditor(parent);
|
||||||
|
@ -753,7 +760,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
|
||||||
*/
|
*/
|
||||||
public ICellModifier getCellModifier(IPresentationContext context, Object element) {
|
public ICellModifier getCellModifier(IPresentationContext context, Object element) {
|
||||||
return new RegisterCellModifier(
|
return new RegisterCellModifier(
|
||||||
getDMVMProvider(), fFormattedPrefStore, fSyncRegisterDataAccess );
|
getDMVMProvider(), fFormattedPrefStore, getSyncRegisterDataAccess() );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue