mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-06 15:55:47 +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
|
2003-05-29 Mikhail Khodjaiants
|
||||||
Changed the vizualization of arrays and structures.
|
Changed the vizualization of arrays and structures.
|
||||||
* CDTDebugModelPresentation.java
|
* CDTDebugModelPresentation.java
|
||||||
|
|
|
@ -100,6 +100,8 @@ public class CDTDebugModelPresentation extends LabelProvider
|
||||||
|
|
||||||
private static CDTDebugModelPresentation fInstance = null;
|
private static CDTDebugModelPresentation fInstance = null;
|
||||||
|
|
||||||
|
private OverlayImageCache fImageCache = new OverlayImageCache();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for CDTDebugModelPresentation.
|
* Constructor for CDTDebugModelPresentation.
|
||||||
*/
|
*/
|
||||||
|
@ -218,8 +220,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( baseImage, overlays );
|
return fImageCache.getImageFor( new OverlayImageDescriptor( baseImage, overlays ) );
|
||||||
return overlayImage.createImage();
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -627,8 +628,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
||||||
descriptor = DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_OBJS_BREAKPOINT_DISABLED );
|
descriptor = DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_OBJS_BREAKPOINT_DISABLED );
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( breakpoint ) );
|
return fImageCache.getImageFor( new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( breakpoint ) ) );
|
||||||
return overlayImage.createImage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Image getWatchpointImage( ICWatchpoint watchpoint ) throws CoreException
|
protected Image getWatchpointImage( ICWatchpoint watchpoint ) throws CoreException
|
||||||
|
@ -652,8 +652,7 @@ public class CDTDebugModelPresentation extends LabelProvider
|
||||||
else
|
else
|
||||||
descriptor = CDebugImages.DESC_OBJS_WATCHPOINT_DISABLED;
|
descriptor = CDebugImages.DESC_OBJS_WATCHPOINT_DISABLED;
|
||||||
}
|
}
|
||||||
OverlayImageDescriptor overlayImage = new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( watchpoint ) );
|
return fImageCache.getImageFor( new OverlayImageDescriptor( fDebugImageRegistry.get( descriptor ), computeBreakpointOverlays( watchpoint ) ) );
|
||||||
return overlayImage.createImage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IBreakpoint getBreakpoint( IMarker marker )
|
protected IBreakpoint getBreakpoint( IMarker marker )
|
||||||
|
@ -931,4 +930,12 @@ public class CDTDebugModelPresentation extends LabelProvider
|
||||||
}
|
}
|
||||||
return type;
|
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