From 6acfb42d4a39a4c5d9e2a14fb29b3a485de7aaaf Mon Sep 17 00:00:00 2001 From: Ted Williams Date: Tue, 14 Aug 2007 23:29:33 +0000 Subject: [PATCH] 159683 --- .../update/VMCacheRefreshAlways.java | 10 ++++++++ .../update/VMCacheRefreshManual.java | 10 ++++++++ .../update/VMCacheRefreshOnBreak.java | 10 ++++++++ .../actions/RefreshAlwaysActionDelegate.java | 3 ++- .../actions/RefreshManualActionDelegate.java | 3 ++- .../actions/RefreshOnBreakActionDelegate.java | 3 ++- .../dd/dsf/ui/viewmodel/update/VMCache.java | 24 +++++++++++++++++++ 7 files changed, 60 insertions(+), 3 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshAlways.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshAlways.java index 676048a8fcd..a5f8070440c 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshAlways.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshAlways.java @@ -17,6 +17,16 @@ import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; public class VMCacheRefreshAlways extends VMCache { + public VMCacheRefreshAlways() + { + super(); + } + + public VMCacheRefreshAlways(VMCache oldCache) + { + super(oldCache); + } + @SuppressWarnings("unchecked") @Override public void handleEvent(IDMEvent event) { diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshManual.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshManual.java index 8d707b517d7..86a1723fb2d 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshManual.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshManual.java @@ -16,6 +16,16 @@ import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; public class VMCacheRefreshManual extends VMCache { + public VMCacheRefreshManual() + { + super(); + } + + public VMCacheRefreshManual(VMCache oldCache) + { + super(oldCache); + } + @SuppressWarnings("unchecked") @Override public void handleEvent(IDMEvent event) {} diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshOnBreak.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshOnBreak.java index a1cdc3b6160..9819ea70a8c 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshOnBreak.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/VMCacheRefreshOnBreak.java @@ -18,6 +18,16 @@ import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; public class VMCacheRefreshOnBreak extends VMCache { + public VMCacheRefreshOnBreak() + { + super(); + } + + public VMCacheRefreshOnBreak(VMCache oldCache) + { + super(oldCache); + } + @SuppressWarnings("unchecked") @Override public void handleEvent(IDMEvent event) { diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshAlwaysActionDelegate.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshAlwaysActionDelegate.java index 7ad9dbb6278..2631f78607e 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshAlwaysActionDelegate.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshAlwaysActionDelegate.java @@ -13,6 +13,7 @@ package org.eclipse.dd.dsf.debug.ui.viewmodel.update.actions; import org.eclipse.dd.dsf.debug.ui.viewmodel.update.VMCacheRefreshAlways; import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; +import org.eclipse.dd.dsf.ui.viewmodel.update.VMCacheManager; import org.eclipse.dd.dsf.ui.viewmodel.update.actions.AbstractRefreshActionDelegate; import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; import org.eclipse.debug.ui.AbstractDebugView; @@ -29,6 +30,6 @@ public class RefreshAlwaysActionDelegate extends AbstractRefreshActionDelegate @Override public VMCache createCache() { - return new VMCacheRefreshAlways(); + return new VMCacheRefreshAlways(VMCacheManager.getVMCacheManager().getCache(getContext())); } } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshManualActionDelegate.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshManualActionDelegate.java index 5a70cb5bac6..7aabf2e3197 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshManualActionDelegate.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshManualActionDelegate.java @@ -13,6 +13,7 @@ package org.eclipse.dd.dsf.debug.ui.viewmodel.update.actions; import org.eclipse.dd.dsf.debug.ui.viewmodel.update.VMCacheRefreshManual; import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; +import org.eclipse.dd.dsf.ui.viewmodel.update.VMCacheManager; import org.eclipse.dd.dsf.ui.viewmodel.update.actions.AbstractRefreshActionDelegate; import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; import org.eclipse.debug.ui.AbstractDebugView; @@ -29,6 +30,6 @@ public class RefreshManualActionDelegate extends AbstractRefreshActionDelegate @Override public VMCache createCache() { - return new VMCacheRefreshManual(); + return new VMCacheRefreshManual(VMCacheManager.getVMCacheManager().getCache(getContext())); } } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshOnBreakActionDelegate.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshOnBreakActionDelegate.java index 21addc0a634..b6eda44fc0b 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshOnBreakActionDelegate.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/update/actions/RefreshOnBreakActionDelegate.java @@ -13,6 +13,7 @@ package org.eclipse.dd.dsf.debug.ui.viewmodel.update.actions; import org.eclipse.dd.dsf.debug.ui.viewmodel.update.VMCacheRefreshOnBreak; import org.eclipse.dd.dsf.ui.viewmodel.update.VMCache; +import org.eclipse.dd.dsf.ui.viewmodel.update.VMCacheManager; import org.eclipse.dd.dsf.ui.viewmodel.update.actions.AbstractRefreshActionDelegate; import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; import org.eclipse.debug.ui.AbstractDebugView; @@ -29,6 +30,6 @@ public class RefreshOnBreakActionDelegate extends AbstractRefreshActionDelegate @Override public VMCache createCache() { - return new VMCacheRefreshOnBreak(); + return new VMCacheRefreshOnBreak(VMCacheManager.getVMCacheManager().getCache(getContext())); } } 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 2635efb6ba7..3622c0b995b 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 @@ -48,6 +48,30 @@ public abstract class VMCache protected HashMap, IDMData> fDataArchive = fData; + public HashMap[] getCacheData() + { + return new HashMap[] { fHasChildren, fChildrenCounts, fChildren, fData, fDataArchive }; + } + + public VMCache() + { + + } + + public VMCache(VMCache oldCache) + { + if(oldCache != null) + { + HashMap oldCacheData[] = oldCache.getCacheData(); + + fHasChildren = oldCacheData[0]; + fChildrenCounts = oldCacheData[1]; + fChildren = oldCacheData[2]; + fData = oldCacheData[3]; + fDataArchive = oldCacheData[4]; + } + } + protected void flush(boolean archive) { if(archive)