Package org.astrogrid.samp.gui

# Class IconStore

java.lang.Object
org.astrogrid.samp.gui.IconStore

public class IconStore extends Object
Manages client icons. Images are cached where appropriate. A size may be supplied so that all icons returned by this object's methods are of a given standard size. Also provides some icon utility methods.

Since:
  17 Nov 2008
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`IconStore(Icon defaultIcon)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static Icon`
`createEmptyIcon(int size)`
Returns an icon with no content but a given size.
`static Icon`
`createMinimalIcon(int size)`
Returns an icon which indicates a shape but doesn't look like much.
`Icon`
`getIcon(String url)`
Returns the icon supplied by the graphic file at a given URL.
`Icon`
`getIcon(Client client)`
Returns the icon associated with a given client.
`static Icon`
`scaleIcon(Icon icon, int fixDim, double maxAspect, boolean fixVertical)`
Icon implementation which is rescaled to so that one dimension (either width or height) has a fixed value.
`static Icon`
`sizeIcon(Icon icon, int size)`
Return an icon based on an existing one, but drawn to an exact size.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### IconStore

public IconStore(Icon defaultIcon)
Constructor.

Parameters:
  `defaultIcon` - icon returned if no client icon is available

## Method Details

### getIcon

public Icon getIcon(String url)
Returns the icon supplied by the graphic file at a given URL. Icons are cached, so that repeated invocations with the same url are not expensive.

Parameters:
  `url` - URL of image
Returns:
  image icon, resized if appropriate

### getIcon

public Icon getIcon(Client client)
Returns the icon associated with a given client. This is either the icon described in its metadata or the default icon if there isn't one.

Parameters:
  `client` - client whose icon is required
Returns:
  associated icon, resized if appropriate

### createEmptyIcon

public static Icon createEmptyIcon(int size)
Returns an icon with no content but a given size.

Parameters:
  `size` - edge size in pixels
Returns:
  emtpy square icon

### createMinimalIcon

public static Icon createMinimalIcon(int size)
Returns an icon which indicates a shape but doesn't look like much. Currently it's a kind of open square.

Parameters:
  `size` - dimension in pixels
Returns:
  minimal icon

### sizeIcon

public static Icon sizeIcon(Icon icon, int size)
Return an icon based on an existing one, but drawn to an exact size.

Parameters:
  `icon` - original icon, or null for blank
  `size` - number of horizontal and vertical pixels in output
Returns:
  resized version of `icon`

### scaleIcon

public static Icon scaleIcon(Icon icon, int fixDim, double maxAspect, boolean fixVertical)
Icon implementation which is rescaled to so that one dimension (either width or height) has a fixed value.

Parameters:
  `icon` - input icon
  `fixDim` - the fixed dimension in pixels
  `maxAspect` - maximum aspect ratio (>= 1)
  `fixVertical` - true to fix height, false to fix width