1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 15:15:25 +02:00

[192019] Reverted to use VMDelta which was erroneously removed in UI refactoring.

This commit is contained in:
Pawel Piech 2008-01-21 19:31:58 +00:00
parent 2f16b2b95f
commit e6f90cea7a
17 changed files with 385 additions and 56 deletions

View file

@ -22,6 +22,7 @@ import org.eclipse.dd.dsf.ui.concurrent.ViewerCountingRequestMonitor;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.IExpressionManager;
import org.eclipse.debug.core.model.IExpression;
@ -34,7 +35,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdat
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jface.resource.JFaceResources;
@ -296,7 +296,7 @@ public class ExpressionManagerVMNode extends AbstractVMNode
return retVal;
}
public void buildDelta(final Object event, final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
public void buildDelta(final Object event, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
// Add a flag if the list of expressions has changed.
if (event instanceof ExpressionsChangedEvent) {
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);

View file

@ -24,10 +24,11 @@ import org.eclipse.dd.dsf.debug.ui.viewmodel.variable.SyncVariableDataAccess;
import org.eclipse.dd.dsf.debug.ui.viewmodel.variable.VariableVMNode;
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter;
import org.eclipse.dd.dsf.ui.viewmodel.DefaultVMContentProviderStrategy;
import org.eclipse.dd.dsf.ui.viewmodel.IRootVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.IVMModelProxy;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.DefaultVMContentProviderStrategy;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.RootDMVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.update.AutomaticUpdatePolicy;
@ -143,7 +144,7 @@ public class ExpressionVMProvider extends AbstractDMVMProvider
* methods.
*/
public void buildDeltaForExpression(final IExpression expression, final int expressionElementIdx, final Object event,
final ModelDelta parentDelta, final TreePath path, final RequestMonitor rm)
final VMDelta parentDelta, final TreePath path, final RequestMonitor rm)
{
// Workaround: find the first active proxy and use it.
if (!getActiveModelProxies().isEmpty()) {

View file

@ -15,11 +15,11 @@ import java.util.Map;
import org.eclipse.dd.dsf.concurrent.CountingRequestMonitor;
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.DefaultVMModelProxyStrategy;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.debug.core.model.IExpression;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.jface.viewers.TreePath;
/**
@ -59,7 +59,7 @@ public class ExpressionVMProviderModelProxyStrategy extends DefaultVMModelProxyS
}
public void buildDeltaForExpression(IExpression expression, int expressionElementIdx, Object event,
ModelDelta parentDelta, TreePath path, RequestMonitor rm)
VMDelta parentDelta, TreePath path, RequestMonitor rm)
{
final IExpressionVMNode matchingNode = getExpressionVMProvider().findNodeToParseExpression(null, expression);
@ -72,7 +72,7 @@ public class ExpressionVMProviderModelProxyStrategy extends DefaultVMModelProxyS
}
private void buildNodeDeltaForExpression(final IExpressionVMNode node, final IExpression expression,
final int expressionElementIdx, final Object event, final ModelDelta parentDelta, final TreePath path,
final int expressionElementIdx, final Object event, final VMDelta parentDelta, final TreePath path,
final RequestMonitor rm)
{
node.buildDeltaForExpression(
@ -108,7 +108,7 @@ public class ExpressionVMProviderModelProxyStrategy extends DefaultVMModelProxyS
}
private void buildDeltaForExpressionElement(final IExpressionVMNode node, Object expressionElement,
final int expressionElementIdx, final Object event, final ModelDelta parentDelta, final TreePath path,
final int expressionElementIdx, final Object event, final VMDelta parentDelta, final TreePath path,
final RequestMonitor rm)
{
CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), rm);

View file

@ -12,8 +12,8 @@ package org.eclipse.dd.dsf.debug.ui.viewmodel.expression;
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.debug.core.model.IExpression;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.jface.viewers.TreePath;
/**
@ -49,12 +49,12 @@ public interface IExpressionVMNode extends IVMNode {
* Adds delta flags to the given parent delta based on the expression object
* given.
*/
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, ModelDelta parentDelta,
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta,
TreePath path, RequestMonitor rm);
/**
* Adds delta to the given parent delta based on the given element which was created base on
* an expression parsed by this node.
*/
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, ModelDelta parentDelta, final RequestMonitor rm);
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, VMDelta parentDelta, final RequestMonitor rm);
}

View file

@ -21,6 +21,7 @@ import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.IRootVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.RootVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
@ -28,7 +29,6 @@ import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.core.model.IDebugElement;
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
/**
* Layout node for the standard ILaunch object. This node can only be used at
@ -87,7 +87,7 @@ public class LaunchRootVMNode extends RootVMNode
}
@Override
public void createRootDelta(Object rootObject, Object event, final DataRequestMonitor<ModelDelta> rm) {
public void createRootDelta(Object rootObject, Object event, final DataRequestMonitor<VMDelta> rm) {
if (!(rootObject instanceof ILaunch)) {
rm.setStatus(new Status(IStatus.ERROR, DsfDebugUIPlugin.PLUGIN_ID, IDsfService.INVALID_STATE, "Invalid root element configured with launch root node.", null)); //$NON-NLS-1$
return;
@ -101,8 +101,8 @@ public class LaunchRootVMNode extends RootVMNode
*/
ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
List<ILaunch> launchList = Arrays.asList(manager.getLaunches());
final ModelDelta viewRootDelta = new ModelDelta(manager, 0, IModelDelta.NO_CHANGE, launchList.size());
final ModelDelta rootDelta = viewRootDelta.addNode(rootLaunch, launchList.indexOf(rootLaunch), IModelDelta.NO_CHANGE);
final VMDelta viewRootDelta = new VMDelta(manager, 0, IModelDelta.NO_CHANGE, launchList.size());
final VMDelta rootDelta = viewRootDelta.addNode(rootLaunch, launchList.indexOf(rootLaunch), IModelDelta.NO_CHANGE);
// Generate delta for launch node.
if (event instanceof LaunchesEvent) {

View file

@ -31,6 +31,7 @@ import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.IDMVMContext;
@ -40,7 +41,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdat
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugUIConstants;
@ -287,7 +287,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(final Object e, final ModelDelta parent, final int nodeOffset, final RequestMonitor rm) {
public void buildDelta(final Object e, final VMDelta parent, final int nodeOffset, final RequestMonitor rm) {
if (e instanceof IContainerSuspendedDMEvent) {
IExecutionDMContext threadDmc = null;
if (parent.getElement() instanceof IDMVMContext) {
@ -306,7 +306,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
}
}
private void buildDeltaForSuspendedEvent(final ISuspendedDMEvent e, final IExecutionDMContext executionCtx, final IExecutionDMContext triggeringCtx, final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
private void buildDeltaForSuspendedEvent(final ISuspendedDMEvent e, final IExecutionDMContext executionCtx, final IExecutionDMContext triggeringCtx, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
IRunControl runControlService = getServicesTracker().getService(IRunControl.class);
IStack stackService = getServicesTracker().getService(IStack.class);
if (stackService == null || runControlService == null) {
@ -353,7 +353,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
}
}
private void buildDeltaForResumedEvent(final IResumedDMEvent e, final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
private void buildDeltaForResumedEvent(final IResumedDMEvent e, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
IStack stackService = getServicesTracker().getService(IStack.class);
if (stackService == null) {
// Required services have not initialized yet. Ignore the event.
@ -371,7 +371,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
rm.done();
}
private void buildDeltaForSteppingTimedOutEvent(final IStepQueueManager.ISteppingTimedOutEvent e, final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
private void buildDeltaForSteppingTimedOutEvent(final IStepQueueManager.ISteppingTimedOutEvent e, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor rm) {
// Repaint the stack frame images to have the running symbol.
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
rm.done();

View file

@ -16,6 +16,7 @@ import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.ILaunch;
@ -184,7 +185,7 @@ public class StandardProcessVMNode extends AbstractVMNode {
return myFlags;
}
public void buildDelta(Object e, ModelDelta parent, int nodeOffset, RequestMonitor requestMonitor) {
public void buildDelta(Object e, VMDelta parent, int nodeOffset, RequestMonitor requestMonitor) {
if (e instanceof DebugEvent && ((DebugEvent)e).getSource() instanceof IProcess) {
DebugEvent de = (DebugEvent)e;
if (de.getKind() == DebugEvent.CHANGE) {

View file

@ -25,13 +25,13 @@ import org.eclipse.dd.dsf.debug.ui.DsfDebugUIPlugin;
import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants;
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
@SuppressWarnings("restriction")
public class ModulesVMNode extends AbstractDMVMNode
@ -142,7 +142,7 @@ public class ModulesVMNode extends AbstractDMVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(Object e, ModelDelta parentDelta, int nodeOffset, RequestMonitor rm) {
public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor rm) {
if (e instanceof IRunControl.ISuspendedDMEvent) {
// Create a delta that indicates all groups have changed
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);

View file

@ -41,6 +41,7 @@ import org.eclipse.dd.dsf.debug.ui.viewmodel.register.RegisterBitFieldCellModifi
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.IDMVMContext;
import org.eclipse.debug.core.DebugException;
@ -55,7 +56,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProv
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapterExtension;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.CellEditor;
@ -424,7 +424,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(Object e, ModelDelta parentDelta, int nodeOffset, RequestMonitor rm) {
public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor rm) {
if (e instanceof IRunControl.ISuspendedDMEvent) {
// Create a delta that the whole register group has changed.
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
@ -602,7 +602,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDeltaForExpression(final IExpression expression, final int elementIdx, final Object event, final ModelDelta parentDelta, final TreePath path, final RequestMonitor rm)
public void buildDeltaForExpression(final IExpression expression, final int elementIdx, final Object event, final VMDelta parentDelta, final TreePath path, final RequestMonitor rm)
{
if (event instanceof ISuspendedDMEvent) {
// Mark the parent delta indicating that elements were added and/or removed.
@ -613,7 +613,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
rm.done();
}
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, ModelDelta parentDelta, final RequestMonitor rm)
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, VMDelta parentDelta, final RequestMonitor rm)
{
if (event instanceof IBitFieldChangedDMEvent) {
parentDelta.addNode(element, IModelDelta.STATE);

View file

@ -32,6 +32,7 @@ import org.eclipse.dd.dsf.debug.ui.viewmodel.expression.WatchExpressionCellModif
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.CompositeDMVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.dm.IDMVMContext;
@ -48,7 +49,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProv
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapterExtension;
import org.eclipse.jface.viewers.CellEditor;
@ -273,7 +273,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(Object e, ModelDelta parentDelta, int nodeOffset, RequestMonitor rm) {
public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor rm) {
if (e instanceof IRunControl.ISuspendedDMEvent) {
// Create a delta that indicates all groups have changed
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
@ -324,7 +324,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, ModelDelta parentDelta,
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta,
TreePath path, RequestMonitor rm)
{
if (event instanceof IRunControl.ISuspendedDMEvent) {
@ -334,7 +334,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
rm.done();
}
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, ModelDelta parentDelta, final RequestMonitor rm)
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, VMDelta parentDelta, final RequestMonitor rm)
{
if (event instanceof IRegisters.IGroupsChangedDMEvent) {
parentDelta.addNode(element, IModelDelta.CONTENT);

View file

@ -37,6 +37,7 @@ import org.eclipse.dd.dsf.debug.ui.viewmodel.numberformat.IFormattedValueVMConte
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.CompositeDMVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.dm.IDMVMContext;
@ -55,7 +56,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProv
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapterExtension;
import org.eclipse.jface.util.PropertyChangeEvent;
@ -436,7 +436,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(Object e, ModelDelta parentDelta, int nodeOffset, RequestMonitor rm) {
public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor rm) {
if (e instanceof IRunControl.ISuspendedDMEvent) {
// Create a delta that the whole register group has changed.
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
@ -543,7 +543,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, ModelDelta parentDelta,
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta,
TreePath path, RequestMonitor rm)
{
if (event instanceof IRunControl.ISuspendedDMEvent) {
@ -553,7 +553,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
rm.done();
}
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, ModelDelta parentDelta, final RequestMonitor rm)
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, VMDelta parentDelta, final RequestMonitor rm)
{
if (event instanceof IRegisters.IRegisterChangedDMEvent) {
parentDelta.addNode(element, IModelDelta.STATE);

View file

@ -44,6 +44,7 @@ import org.eclipse.dd.dsf.debug.ui.viewmodel.numberformat.IFormattedValueVMConte
import org.eclipse.dd.dsf.service.DsfSession;
import org.eclipse.dd.dsf.service.IDsfService;
import org.eclipse.dd.dsf.ui.viewmodel.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.dm.AbstractDMVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.dm.CompositeDMVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.dm.IDMVMContext;
@ -62,7 +63,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapterExtension;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.CellEditor;
@ -100,7 +100,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDelta(final Object event, final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
public void buildDelta(final Object event, final VMDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor) {
if (event instanceof IRunControl.ISuspendedDMEvent) {
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
@ -527,13 +527,13 @@ public class VariableVMNode extends AbstractExpressionVMNode
return IModelDelta.NO_CHANGE;
}
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, ModelDelta parentDelta,
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta,
TreePath path, RequestMonitor rm)
{
rm.done();
}
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, ModelDelta parentDelta,
public void buildDeltaForExpressionElement(Object element, int elementIdx, Object event, VMDelta parentDelta,
RequestMonitor rm)
{
if (event instanceof IRunControl.ISuspendedDMEvent) {

View file

@ -248,7 +248,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
// Always create the rootDelta, no matter what delta flags the child nodes have.
rootNode.createRootDelta(
getRootElement(), event,
new DataRequestMonitor<ModelDelta>(getVMProvider().getExecutor(), rm) {
new DataRequestMonitor<VMDelta>(getVMProvider().getExecutor(), rm) {
@Override
protected void handleOK() {
// Find the root delta for the whole view to use when firing the delta.
@ -281,7 +281,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
});
}
protected void buildChildDeltas(final IVMNode node, final Object event, final ModelDelta parentDelta,
protected void buildChildDeltas(final IVMNode node, final Object event, final VMDelta parentDelta,
final int nodeOffset, final RequestMonitor rm)
{
final IVMContext vmc = node.getContextFromEvent(event);
@ -297,7 +297,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
}
protected void buildChildDeltasForEventContext(final IVMContext vmc, final IVMNode node, final Object event,
final ModelDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor)
final VMDelta parentDelta, final int nodeOffset, final RequestMonitor requestMonitor)
{
final Map<IVMNode,Integer> childNodeDeltas = getChildNodesWithDeltaFlags(node, parentDelta, event);
if (childNodeDeltas.size() == 0) {
@ -354,7 +354,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
// Optimization: Try to find a delta with a matching element, if found use it.
// Otherwise create a new delta for the event element.
int elementIndex = nodeOffset + i;
ModelDelta delta = parentDelta.getChildDelta(vmc);
VMDelta delta = (VMDelta)parentDelta.getChildDelta(vmc);
if (delta == null || delta.getIndex() != elementIndex) {
delta = parentDelta.addNode(vmc, elementIndex, IModelDelta.NO_CHANGE);
}
@ -366,7 +366,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
} else {
// Optimization: Try to find a delta with a matching element, if found use it.
// Otherwise create a new delta for the event element.
ModelDelta delta = parentDelta.getChildDelta(vmc);
VMDelta delta = (VMDelta)parentDelta.getChildDelta(vmc);
if (delta == null) {
delta = parentDelta.addNode(vmc, IModelDelta.NO_CHANGE);
}
@ -382,7 +382,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
* <code>AbstractVMNode</code> should override this method.
* @see IVMNode#buildDelta(Object, ModelDelta, int, RequestMonitor)
*/
protected void buildChildDeltasForAllContexts(final IVMNode node, final Object event, final ModelDelta parentDelta,
protected void buildChildDeltasForAllContexts(final IVMNode node, final Object event, final VMDelta parentDelta,
final int nodeOffset, final RequestMonitor requestMonitor)
{
// Find the child nodes that have deltas for the given event.
@ -443,7 +443,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
// and then call all the child nodes to build their delta.
for (int i = 0; i < getData().size(); i++) {
int elementIndex = nodeOffset >= 0 ? nodeOffset + i : -1;
ModelDelta delta =
VMDelta delta =
parentDelta.addNode(getData().get(i), elementIndex, IModelDelta.NO_CHANGE);
callChildNodesToBuildDelta(
node, childNodesWithDeltaFlags, delta, event,
@ -471,7 +471,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
* @param event The event object that the delta is being built for.
* @param requestMonitor The result token to invoke when the delta is completed.
*/
protected void callChildNodesToBuildDelta(final IVMNode node, final Map<IVMNode,Integer> childNodes, final ModelDelta delta, final Object event, final RequestMonitor requestMonitor) {
protected void callChildNodesToBuildDelta(final IVMNode node, final Map<IVMNode,Integer> childNodes, final VMDelta delta, final Object event, final RequestMonitor requestMonitor) {
assert childNodes.size() != 0;
// Check if any of the child nodes are will generate IModelDelta.SELECT or

View file

@ -11,7 +11,6 @@
package org.eclipse.dd.dsf.ui.viewmodel;
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
/**
* Special type of the view model node, which can be used as a root node
@ -42,5 +41,5 @@ public interface IRootVMNode extends IVMNode{
* @param event Event to process.
* @param rm Result notification, contains the root of the delta.
*/
public void createRootDelta(Object rootObject, Object event, DataRequestMonitor<ModelDelta> rm);
public void createRootDelta(Object rootObject, Object event, DataRequestMonitor<VMDelta> rm);
}

View file

@ -19,7 +19,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
/**
* View model nodes are configured with a view model provider to collectively
@ -90,7 +89,7 @@ public interface IVMNode extends IElementContentProvider
* @param requestMonitor Return token, which notifies the caller that the calculation is
* complete.
*/
public void buildDelta(Object event, ModelDelta parent, int nodeOffset, RequestMonitor requestMonitor);
public void buildDelta(Object event, VMDelta parent, int nodeOffset, RequestMonitor requestMonitor);
/**
* Returns the view model element for the given data model event. This method

View file

@ -16,7 +16,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenCountUpd
import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IHasChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
/**
* Default implementation of a root view model node. This class may be sub-classed
@ -53,8 +52,8 @@ public class RootVMNode extends AbstractVMNode implements IRootVMNode {
* Default implementation creates a delta assuming that the root layout node
* is the input object into the view.
*/
public void createRootDelta(Object rootObject, Object event, final DataRequestMonitor<ModelDelta> rm) {
rm.setData(new ModelDelta(rootObject, 0, IModelDelta.NO_CHANGE));
public void createRootDelta(Object rootObject, Object event, final DataRequestMonitor<VMDelta> rm) {
rm.setData(new VMDelta(rootObject, 0, IModelDelta.NO_CHANGE));
rm.done();
}
@ -63,7 +62,7 @@ public class RootVMNode extends AbstractVMNode implements IRootVMNode {
return IModelDelta.NO_CHANGE;
}
public void buildDelta(Object event, ModelDelta parent, int nodeOffset, RequestMonitor requestMonitor) {
public void buildDelta(Object event, VMDelta parent, int nodeOffset, RequestMonitor requestMonitor) {
requestMonitor.done();
}
}

View file

@ -0,0 +1,330 @@
/*******************************************************************************
* Copyright (c) 2005, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Wind River Systems - adapted to use in DSF
*******************************************************************************/
package org.eclipse.dd.dsf.ui.viewmodel;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDeltaVisitor;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
/**
* This delta class mostly just duplicates the ModelDelta implemention, but
* it allows clients to modify the flags after the original object is
* constructed.
*
* @see IModelDelta#getNodes()
*/
@SuppressWarnings("restriction")
public class VMDelta extends ModelDelta {
private VMDelta fParent;
private Object fElement;
private int fFlags;
private VMDelta[] fNodes = EMPTY_NODES;
private Object fReplacement;
private int fIndex;
private static final VMDelta[] EMPTY_NODES = new VMDelta[0];
private int fChildCount = -1;
/**
* Constructs a new delta for the given element.
*
* @param vmcElement model element
* @param flags change flags
*/
public VMDelta(Object element, int flags) {
super(element, flags);
fElement = element;
fFlags = flags;
}
/**
* Constructs a new delta for the given element to be replaced
* with the specified replacement element.
*
* @param vmcElement model element
* @param replacement replacement element
* @param flags change flags
*/
public VMDelta(Object element, Object replacement, int flags) {
super(element, replacement, flags);
fElement = element;
fReplacement = replacement;
fFlags = flags;
}
/**
* Constructs a new delta for the given element to be inserted at
* the specified index.
*
* @param vmcElement model element
* @param index insertion position
* @param flags change flags
*/
public VMDelta(Object element, int index, int flags) {
super(element, index, flags);
fElement = element;
fIndex = index;
fFlags = flags;
}
/**
* Constructs a new delta for the given element at the specified index
* relative to its parent with the given number of children.
*
* @param element model element
* @param index insertion position
* @param flags change flags
* @param childCount number of children this node has
*/
public VMDelta(Object element, int index, int flags, int childCount) {
super(element, index, flags, childCount);
fElement = element;
fIndex = index;
fFlags = flags;
fChildCount = childCount;
}
/**
* Returns the non-VMC element if one is set, otherwise returns the VMC
* element of this delta node.
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getElement()
*/
@Override
public Object getElement() {
return fElement;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getFlags()
*/
@Override
public int getFlags() {
return fFlags;
}
public void addFlags(int flags) {
fFlags |= flags;
}
public void setChildCount(int count) {
fChildCount = count;
}
/**
* Adds a child node to this delta with the given element and change flags,
* and returns the child delta.
*
* @param element child element to add
* @param flags change flags for child
* @return newly created child delta
*/
@Override
public VMDelta addNode(Object element, int flags) {
VMDelta node = new VMDelta(element, flags);
node.setParent(this);
addDelta(node);
return node;
}
/**
* Adds a child node to this delta to replace the given element with the
* specified replacement element and change flags, and returns the
* newly created child delta.
*
* @param element child element to add to this delta
* @param replacement replacement element for the child element
* @param flags change flags
* @return newly created child delta
*/
@Override
public VMDelta addNode(Object element, Object replacement, int flags) {
VMDelta node = new VMDelta(element, replacement, flags);
node.setParent(this);
addDelta(node);
return node;
}
/**
* Adds a child delta to this delta to insert the specified element at
* the given index, and returns the newly created child delta.
*
* @param element child element in insert
* @param index index of insertion
* @param flags change flags
* @return newly created child delta
*/
@Override
public VMDelta addNode(Object element, int index, int flags) {
VMDelta node = new VMDelta(element, index, flags);
node.setParent(this);
addDelta(node);
return node;
}
/**
* Adds a child delta to this delta at the specified index with the
* given number of children, and returns the newly created child delta.
*
* @param element child element in insert
* @param index index of the element relative to parent
* @param flags change flags
* @param numChildren the number of children the element has
* @return newly created child delta
*/
@Override
public VMDelta addNode(Object element, int index, int flags, int numChildren) {
VMDelta node = new VMDelta(element, index, flags, numChildren);
node.setParent(this);
addDelta(node);
return node;
}
/**
* Sets the parent delta of this delta
*
* @param node parent delta
*/
void setParent(VMDelta node) {
fParent = node;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getParent()
*/
@Override
public VMDelta getParentDelta() {
return fParent;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getReplacementElement()
*/
@Override
public Object getReplacementElement() {
return fReplacement;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getIndex()
*/
@Override
public int getIndex() {
return fIndex;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.IModelDelta#getNodes()
*/
@Override
public VMDelta[] getChildDeltas() {
return fNodes;
}
private void addDelta(VMDelta delta) {
if (fNodes.length == 0) {
fNodes = new VMDelta[]{delta};
} else {
VMDelta[] nodes = new VMDelta[fNodes.length + 1];
System.arraycopy(fNodes, 0, nodes, 0, fNodes.length);
nodes[fNodes.length] = delta;
fNodes = nodes;
}
}
@Override
public String toString() {
StringBuffer buf = new StringBuffer();
buf.append("Model Delta Start\n"); //$NON-NLS-1$
appendDetail(buf, this);
buf.append("Model Delta End\n"); //$NON-NLS-1$
return buf.toString();
}
private void appendDetail(StringBuffer buf, VMDelta delta) {
buf.append("\tElement: "); //$NON-NLS-1$
buf.append(delta.getElement());
buf.append('\n');
buf.append("\t\tFlags: "); //$NON-NLS-1$
int flags = delta.getFlags();
if (flags == 0) {
buf.append("NO_CHANGE"); //$NON-NLS-1$
} else {
if ((flags & IModelDelta.ADDED) > 0) {
buf.append("ADDED | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.CONTENT) > 0) {
buf.append("CONTENT | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.EXPAND) > 0) {
buf.append("EXPAND | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.INSERTED) > 0) {
buf.append("INSERTED | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.REMOVED) > 0) {
buf.append("REMOVED | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.REPLACED) > 0) {
buf.append("REPLACED | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.SELECT) > 0) {
buf.append("SELECT | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.STATE) > 0) {
buf.append("STATE | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.INSTALL) > 0) {
buf.append("INSTALL | "); //$NON-NLS-1$
}
if ((flags & IModelDelta.UNINSTALL) > 0) {
buf.append("UNINSTALL | "); //$NON-NLS-1$
}
}
buf.append('\n');
buf.append("\t\tIndex: "); //$NON-NLS-1$
buf.append(delta.fIndex);
buf.append(" Child Count: "); //$NON-NLS-1$
buf.append(delta.fChildCount);
buf.append('\n');
IModelDelta[] nodes = delta.getChildDeltas();
for (int i = 0; i < nodes.length; i++) {
appendDetail(buf, (VMDelta)nodes[i]);
}
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta#getChildCount()
*/
@Override
public int getChildCount() {
return fChildCount;
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta#accept(org.eclipse.debug.internal.ui.viewers.provisional.IModelDeltaVisitor)
*/
@Override
public void accept(IModelDeltaVisitor visitor) {
doAccept(visitor, 0);
}
@Override
protected void doAccept(IModelDeltaVisitor visitor, int depth) {
if (visitor.visit(this, depth)) {
ModelDelta[] childDeltas = getChildDeltas();
for (int i = 0; i < childDeltas.length; i++) {
((VMDelta)childDeltas[i]).doAccept(visitor, depth+1);
}
}
}
}