From bd8ee802caf624c39a5577394bddb4c208f65a64 Mon Sep 17 00:00:00 2001 From: Ted Williams Date: Fri, 6 Jul 2007 18:24:41 +0000 Subject: [PATCH] 159683 --- .../dd/dsf/ui/viewmodel/update/VMCache.java | 74 +++++++++++++------ 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/VMCache.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/VMCache.java index f5f8e8e4227..82ebfe9e33e 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/VMCache.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/VMCache.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Vector; import java.util.concurrent.Executor; +import org.eclipse.core.runtime.IStatus; import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor; import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.DefaultDsfExecutor; @@ -132,13 +133,15 @@ public abstract class VMCache updates[i] = new VMElementsCountUpdate(update, new DataRequestMonitor(fExecutor, null) { @Override - protected void handleOK() - { - if(isCacheWriteEnabled()) - fChildrenCounts.put(update.getElement(), this.getData()); - update.setChildCount(this.getData()); + protected void handleCompleted() { + if(getStatus().isOK()) + { + if(isCacheWriteEnabled()) + fChildrenCounts.put(update.getElement(), this.getData()); + update.setChildCount(this.getData()); + } update.done(); - } + } }); } @@ -239,22 +242,25 @@ public abstract class VMCache new DataRequestMonitor>(fExecutor, null) { @Override - protected void handleOK() + protected void handleCompleted() { - for(int j = 0; j < update.getLength(); j++) + if(getStatus().isOK()) { - if(isCacheWriteEnabled()) - { - if(!fChildren.containsKey(update.getElement())) - fChildren.put(update.getElement(), new HashMap()); + for(int j = 0; j < update.getLength(); j++) + { + if(isCacheWriteEnabled()) + { + if(!fChildren.containsKey(update.getElement())) + fChildren.put(update.getElement(), new HashMap()); + + fChildren.get(update.getElement()).put(update.getOffset() + j, getData().get(j)); + } - fChildren.get(update.getElement()).put(update.getOffset() + j, getData().get(j)); - } - - update.setChild(getData().get(j), update.getOffset() + j); + update.setChild(getData().get(j), update.getOffset() + j); + } } update.done(); - } + } }); } @@ -275,12 +281,34 @@ public abstract class VMCache service.getModelData(dmc, new DataRequestMonitor(executor, null) { @Override - public void handleOK() { - if(isCacheWriteEnabled()) - fData.put(dmc, getData()); - rm.setData(getData()); - rm.done(); - } + protected void handleCompleted() { + if(getStatus().isOK()) + { + if(isCacheWriteEnabled()) + fData.put(dmc, getData()); + rm.setData(getData()); + } + rm.done(); + } + + @Override + public synchronized void setCanceled(boolean canceled) { + rm.setCanceled(canceled); + super.setCanceled(canceled); + } + + @Override + public void setMultiStatus(String pluginId, int code, + String message, IStatus subStatus) { + rm.setMultiStatus(pluginId, code, message, subStatus); + super.setMultiStatus(pluginId, code, message, subStatus); + } + + @Override + public synchronized void setStatus(IStatus status) { + rm.setStatus(status); + super.setStatus(status); + } } ); }