diff options
Diffstat (limited to 'dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java')
-rw-r--r-- | dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java index 1a4e393859c..217da6925b5 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/register/RegisterVMNode.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2010 Wind River Systems and others. + * Copyright (c) 2006, 2014 Wind River Systems 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 @@ -12,6 +12,7 @@ package org.eclipse.cdt.dsf.debug.ui.viewmodel.register; import java.util.Map; +import java.util.Set; import java.util.concurrent.RejectedExecutionException; import org.eclipse.cdt.dsf.concurrent.ConfinedToDsfExecutor; @@ -39,6 +40,7 @@ import org.eclipse.cdt.dsf.debug.ui.viewmodel.expression.AbstractExpressionVMNod import org.eclipse.cdt.dsf.debug.ui.viewmodel.numberformat.FormattedValueLabelText; import org.eclipse.cdt.dsf.debug.ui.viewmodel.numberformat.FormattedValueRetriever; import org.eclipse.cdt.dsf.debug.ui.viewmodel.numberformat.IFormattedValueVMContext; +import org.eclipse.cdt.dsf.debug.ui.viewmodel.update.ElementFormatEvent; import org.eclipse.cdt.dsf.debug.ui.viewmodel.variable.VariableLabelFont; import org.eclipse.cdt.dsf.internal.ui.DsfUIPlugin; import org.eclipse.cdt.dsf.service.DsfSession; @@ -688,6 +690,13 @@ public class RegisterVMNode extends AbstractExpressionVMNode return IModelDelta.STATE; } + if (e instanceof ElementFormatEvent) { + int depth = ((ElementFormatEvent)e).getApplyDepth(); + if (depth == 0) return IModelDelta.NO_CHANGE; + if (depth == 1) return IModelDelta.STATE; + return IModelDelta.CONTENT; + } + return IModelDelta.NO_CHANGE; } @@ -714,7 +723,20 @@ public class RegisterVMNode extends AbstractExpressionVMNode if (e instanceof IRegisterChangedDMEvent) { parentDelta.addNode( createVMContext(((IRegisterChangedDMEvent)e).getDMContext()), IModelDelta.STATE ); } - + else if ( e instanceof ElementFormatEvent ) + { + int depth = ((ElementFormatEvent)e).getApplyDepth(); + if (depth != 0) { + int deltaType = IModelDelta.CONTENT; + if (depth == 1) deltaType = IModelDelta.STATE; + + Set<Object> elements = ((ElementFormatEvent)e).getElements(); + for (Object elem : elements) { + parentDelta.addNode(elem, deltaType); + } + } + } + rm.done(); } |