diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java index bf13c1bac02..678d6f86d47 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java @@ -71,7 +71,6 @@ import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.TreePath; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IMemento; @SuppressWarnings("restriction") public class RegisterBitFieldVMNode extends AbstractExpressionVMNode @@ -806,61 +805,41 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode private final String MEMENTO_NAME = "BITFIELD_MEMENTO_NAME"; //$NON-NLS-1$ public void compareElements(IElementCompareRequest[] requests) { - for ( final IElementCompareRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - final String mementoName = memento.getString(MEMENTO_NAME); + final String mementoName = request.getMemento().getString(MEMENTO_NAME); - if (mementoName != null) { - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IBitFieldDMContext ) - { - final IBitFieldDMContext bitFieldDmc = (IBitFieldDMContext) dmc; + final IBitFieldDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IBitFieldDMContext.class); + if (regDmc == null || mementoName == null) { + request.done(); + continue; + } + + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - - final DataRequestMonitor dataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - request.setEqual( mementoName.equals( "BitField." + getData().getName() ) ); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getBitFieldData( bitFieldDmc, dataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { + if ( regService != null ) { + regService.getBitFieldData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.setEqual( mementoName.equals( "BitField." + getData().getName() ) ); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { request.done(); } - - continue; } - } + }); + } catch (RejectedExecutionException e) { + request.done(); } - request.done(); } } @@ -869,57 +848,39 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[]) */ public void encodeElements(IElementMementoRequest[] requests) { - - for ( final IElementMementoRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IBitFieldDMContext ) - { - final IBitFieldDMContext bitFieldDmc = (IBitFieldDMContext) dmc; - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - final DataRequestMonitor dataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - memento.putString(MEMENTO_NAME, "BitField." + getData().getName()); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getBitFieldData( bitFieldDmc, dataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { - request.done(); - } - - continue; - } + for ( final IElementMementoRequest request : requests ) { + final IBitFieldDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IBitFieldDMContext.class); + if (regDmc == null) { + request.done(); + continue; + } + + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { + final IRegisters regService = getServicesTracker().getService(IRegisters.class); + if ( regService != null ) { + regService.getBitFieldData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.getMemento().putString(MEMENTO_NAME, "BitField." + getData().getName()); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { + request.done(); + } + } + }); + } catch (RejectedExecutionException e) { + request.done(); } - request.done(); } } } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java index 52c67ab59d1..8445a3e4cf6 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java @@ -58,7 +58,6 @@ import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.TreePath; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IMemento; @SuppressWarnings("restriction") public class RegisterGroupVMNode extends AbstractExpressionVMNode @@ -500,61 +499,41 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode private final String MEMENTO_NAME = "GROUP_MEMENTO_NAME"; //$NON-NLS-1$ public void compareElements(IElementCompareRequest[] requests) { - - for ( final IElementCompareRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - final String mementoName = memento.getString(MEMENTO_NAME); + for (final IElementCompareRequest request : requests ) { + final IRegisterGroupDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IRegisterGroupDMContext.class); + final String mementoName = request.getMemento().getString(MEMENTO_NAME); - if (mementoName != null) { - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IRegisterGroupDMContext ) - { - final IRegisterGroupDMContext regDmc = (IRegisterGroupDMContext) dmc; - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - - final DataRequestMonitor regGroupDataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - request.setEqual( mementoName.equals( "Group." + getData().getName()) ); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getRegisterGroupData( regDmc, regGroupDataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { - request.done(); - } - - continue; - } - } + if (regDmc == null || mementoName == null) { + request.done(); + continue; + } + + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { + final IRegisters regService = getServicesTracker().getService(IRegisters.class); + if ( regService != null ) { + regService.getRegisterGroupData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.setEqual( mementoName.equals( "Group." + getData().getName()) ); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { + request.done(); + } + } + }); + } catch (RejectedExecutionException e) { + request.done(); } - request.done(); } } @@ -563,58 +542,39 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[]) */ public void encodeElements(IElementMementoRequest[] requests) { - for ( final IElementMementoRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IRegisterGroupDMContext ) - { - final IRegisterGroupDMContext regDmc = (IRegisterGroupDMContext) dmc; - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - - final DataRequestMonitor regGroupDataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - memento.putString(MEMENTO_NAME, "Group." + getData().getName()); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getRegisterGroupData( regDmc, regGroupDataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { - request.done(); - } - - continue; - } + final IRegisterGroupDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IRegisterGroupDMContext.class); + if (regDmc == null) { + request.done(); + continue; } - request.done(); - } + + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { + final IRegisters regService = getServicesTracker().getService(IRegisters.class); + if ( regService != null ) { + regService.getRegisterGroupData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.getMemento().putString(MEMENTO_NAME, "Group." + getData().getName()); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { + request.done(); + } + } + }); + } catch (RejectedExecutionException e) { + request.done(); + } + } } } \ No newline at end of file diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java index e24e5320e40..9c9016cbaa2 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java @@ -67,7 +67,6 @@ import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.TreePath; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IMemento; @SuppressWarnings("restriction") public class RegisterVMNode extends AbstractExpressionVMNode @@ -757,61 +756,40 @@ public class RegisterVMNode extends AbstractExpressionVMNode private final String MEMENTO_NAME = "REGISTER_MEMENTO_NAME"; //$NON-NLS-1$ public void compareElements(IElementCompareRequest[] requests) { - for ( final IElementCompareRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - final String mementoName = memento.getString(MEMENTO_NAME); + final IRegisterDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IRegisterDMContext.class); + final String mementoName = request.getMemento().getString(MEMENTO_NAME); + if (regDmc == null || mementoName == null) { + request.done(); + continue; + } - if (mementoName != null) { - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IRegisterDMContext ) - { - final IRegisterDMContext regDmc = (IRegisterDMContext) dmc; + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - - final DataRequestMonitor dataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - request.setEqual( mementoName.equals( "Register." + getData().getName() ) ); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getRegisterData( regDmc, dataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { + if ( regService != null ) { + regService.getRegisterData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.setEqual( mementoName.equals( "Register." + getData().getName() ) ); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { request.done(); } - - continue; } - } + }); + } catch (RejectedExecutionException e) { + request.done(); } - request.done(); } } @@ -820,57 +798,39 @@ public class RegisterVMNode extends AbstractExpressionVMNode * @see org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoProvider#encodeElements(org.eclipse.debug.internal.ui.viewers.model.provisional.IElementMementoRequest[]) */ public void encodeElements(IElementMementoRequest[] requests) { - - for ( final IElementMementoRequest request : requests ) { - - Object element = request.getElement(); - final IMemento memento = request.getMemento(); - - if (element instanceof IDMVMContext) { - - IDMContext dmc = ((IDMVMContext)element).getDMContext(); - - if ( dmc instanceof IRegisterDMContext ) - { - final IRegisterDMContext regDmc = (IRegisterDMContext) dmc; - final IRegisters regService = getServicesTracker().getService(IRegisters.class); - - /* - * Now make sure the register group is the one we want. - */ - final DataRequestMonitor dataDone = new DataRequestMonitor(regService.getExecutor(), null) { - @Override - protected void handleCompleted() { - if ( getStatus().isOK() ) { - memento.putString(MEMENTO_NAME, "Register." + getData().getName()); //$NON-NLS-1$ - } - request.done(); - } - }; - - /* - * Now go get the model data for the single register group found. - */ - try { - getSession().getExecutor().execute(new DsfRunnable() { - public void run() { - IRegisters regService = getServicesTracker().getService(IRegisters.class); - if ( regService != null ) { - regService.getRegisterData( regDmc, dataDone ); - } - else { - request.done(); - } - } - }); - } catch (RejectedExecutionException e) { - request.done(); - } - - continue; - } + for ( final IElementMementoRequest request : requests ) { + final IRegisterDMContext regDmc = findDmcInPath(request.getViewerInput(), request.getElementPath(), IRegisterDMContext.class); + if (regDmc == null) { + request.done(); + continue; + } + + // Now go get the model data for the single register group found. + try { + getSession().getExecutor().execute(new DsfRunnable() { + public void run() { + final IRegisters regService = getServicesTracker().getService(IRegisters.class); + if ( regService != null ) { + regService.getRegisterData( + regDmc, + new DataRequestMonitor(regService.getExecutor(), null) { + @Override + protected void handleCompleted() { + if ( getStatus().isOK() ) { + // Now make sure the register group is the one we want. + request.getMemento().putString(MEMENTO_NAME, "Register." + getData().getName()); //$NON-NLS-1$ + } + request.done(); + } + }); + } else { + request.done(); + } + } + }); + } catch (RejectedExecutionException e) { + request.done(); } - request.done(); } } }