mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
PR 38268: added the image cache for overlay images.
This commit is contained in:
parent
18b219a690
commit
6ac9c4e9a4
3 changed files with 71 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
|||
2003-05-29 Mikhail Khodjaiants
|
||||
PR 38268: added the image cache for overlay images.
|
||||
* OverlayImageCache.java: new
|
||||
* CDTDebugModelPresentation.java
|
||||
|
||||
2003-05-29 Mikhail Khodjaiants
|
||||
Changed the vizualization of arrays and structures.
|
||||
* CDTDebugModelPresentation.java
|
||||
|
|
|
@ -100,6 +100,8 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
|
||||
private static CDTDebugModelPresentation fInstance = null;
|
||||
|
||||
private OverlayImageCache fImageCache = new OverlayImageCache();
|
||||
|
||||
/**
|
||||
* Constructor for CDTDebugModelPresentation.
|
||||
*/
|
||||
|
@ -218,8 +220,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
break;
|
||||
}
|
||||
}
|
||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( baseImage, overlays );
|
||||
return overlayImage.createImage();
|
||||
return fImageCache.getImageFor( new OverlayImageDescriptor( baseImage, overlays ) );
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -627,8 +628,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
descriptor = DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_OBJS_BREAKPOINT_DISABLED );
|
||||
}
|
||||
;
|
||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( breakpoint ) );
|
||||
return overlayImage.createImage();
|
||||
return fImageCache.getImageFor( new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( breakpoint ) ) );
|
||||
}
|
||||
|
||||
protected Image getWatchpointImage( ICWatchpoint watchpoint ) throws CoreException
|
||||
|
@ -652,8 +652,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
else
|
||||
descriptor = CDebugImages.DESC_OBJS_WATCHPOINT_DISABLED;
|
||||
}
|
||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( watchpoint ) );
|
||||
return overlayImage.createImage();
|
||||
return fImageCache.getImageFor( new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( watchpoint ) ) );
|
||||
}
|
||||
|
||||
protected IBreakpoint getBreakpoint( IMarker marker )
|
||||
|
@ -931,4 +930,12 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
fImageCache.disposeAll();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.eclipse.cdt.debug.internal.ui;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
|
||||
/**
|
||||
* Maintains a cache of overlay images.
|
||||
*
|
||||
* @since May 30, 2003
|
||||
*/
|
||||
public class OverlayImageCache
|
||||
{
|
||||
private Map cache = new HashMap();
|
||||
|
||||
/**
|
||||
* Returns and caches an image corresponding to the specified image descriptor.
|
||||
*
|
||||
* @param imageDecsriptor the image descriptor
|
||||
* @return the image
|
||||
*/
|
||||
public Image getImageFor( OverlayImageDescriptor imageDescriptor )
|
||||
{
|
||||
Image image = (Image)cache.get( imageDescriptor );
|
||||
if ( image == null )
|
||||
{
|
||||
image = imageDescriptor.createImage();
|
||||
cache.put( imageDescriptor, image );
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposes of all images in the cache.
|
||||
*/
|
||||
public void disposeAll()
|
||||
{
|
||||
for ( Iterator it = cache.values().iterator(); it.hasNext(); )
|
||||
{
|
||||
Image image = (Image)it.next();
|
||||
image.dispose();
|
||||
}
|
||||
cache.clear();
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue