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:
parent
2f16b2b95f
commit
e6f90cea7a
17 changed files with 385 additions and 56 deletions
|
@ -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);
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue