Package org.astrogrid.samp.gui
Class IconStore
- java.lang.Object
-
- org.astrogrid.samp.gui.IconStore
-
public class IconStore extends java.lang.ObjectManages 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classIconStore.SizedIconIcon implementation which looks like an existing one, but is resized down if necessary.
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.IcondefaultIcon_private static java.util.logging.Loggerlogger_private static java.util.MapurlIconMap_
-
Constructor Summary
Constructors Constructor Description IconStore(javax.swing.Icon defaultIcon)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static javax.swing.IconcreateEmptyIcon(int size)Returns an icon with no content but a given size.static javax.swing.IconcreateMinimalIcon(int size)Returns an icon which indicates a shape but doesn't look like much.(package private) static javax.swing.IconcreateResourceIcon(java.lang.String fileName)Constructs an icon given a file name in the images directory.javax.swing.IcongetIcon(java.lang.String url)Returns the icon supplied by the graphic file at a given URL.javax.swing.IcongetIcon(Client client)Returns the icon associated with a given client.private static javax.swing.IconreadIcon(java.lang.String url, int waitSecs)Reads an icon from a URL, with a maximum wait time.static javax.swing.IconscaleIcon(javax.swing.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 javax.swing.IconsizeIcon(javax.swing.Icon icon, int size)Return an icon based on an existing one, but drawn to an exact size.
-
-
-
Method Detail
-
getIcon
public javax.swing.Icon getIcon(java.lang.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 javax.swing.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 javax.swing.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 javax.swing.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
-
createResourceIcon
static javax.swing.Icon createResourceIcon(java.lang.String fileName)
Constructs an icon given a file name in the images directory.- Parameters:
fileName- file name omitting directory- Returns:
- icon
-
sizeIcon
public static javax.swing.Icon sizeIcon(javax.swing.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 blanksize- number of horizontal and vertical pixels in output- Returns:
- resized version of
icon
-
scaleIcon
public static javax.swing.Icon scaleIcon(javax.swing.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 iconfixDim- the fixed dimension in pixelsmaxAspect- maximum aspect ratio (>= 1)fixVertical- true to fix height, false to fix width
-
readIcon
private static javax.swing.Icon readIcon(java.lang.String url, int waitSecs) throws java.io.IOExceptionReads an icon from a URL, with a maximum wait time. If the timeout is exceeded, an exception will be thrown.- Parameters:
url- icon URLwaitSecs- maximum time in seconds to wait- Returns:
- icon from url
- Throws:
java.io.IOException- if timeout has been exceeded
-
-