001 package com.croftsoft.core.animation.icon;
002
003 import java.awt.*;
004 import javax.swing.Icon;
005
006 import com.croftsoft.core.lang.NullArgumentException;
007
008 /*********************************************************************
009 * An Icon that draws a colored square.
010 *
011 * @version
012 * 2003-03-17
013 * @since
014 * 2003-03-17
015 * @author
016 * <a href="http://www.CroftSoft.com/">David Wallace Croft</a>
017 *********************************************************************/
018
019 public final class ColorTileIcon
020 implements Icon
021 //////////////////////////////////////////////////////////////////////
022 //////////////////////////////////////////////////////////////////////
023 {
024
025 private final Color color;
026
027 private final Dimension size;
028
029 //////////////////////////////////////////////////////////////////////
030 //////////////////////////////////////////////////////////////////////
031
032 public ColorTileIcon (
033 Color color,
034 Dimension size )
035 //////////////////////////////////////////////////////////////////////
036 {
037 NullArgumentException.check ( this.color = color );
038
039 this.size = size;
040 }
041
042 public ColorTileIcon ( Color color )
043 //////////////////////////////////////////////////////////////////////
044 {
045 this ( color, ( Dimension ) null );
046 }
047
048 //////////////////////////////////////////////////////////////////////
049 //////////////////////////////////////////////////////////////////////
050
051 public int getIconWidth ( )
052 //////////////////////////////////////////////////////////////////////
053 {
054 if ( size == null )
055 {
056 return Integer.MAX_VALUE;
057 }
058 else
059 {
060 return size.width;
061 }
062 }
063
064 public int getIconHeight ( )
065 //////////////////////////////////////////////////////////////////////
066 {
067 if ( size == null )
068 {
069 return Integer.MAX_VALUE;
070 }
071 else
072 {
073 return size.height;
074 }
075 }
076
077 //////////////////////////////////////////////////////////////////////
078 //////////////////////////////////////////////////////////////////////
079
080 public void paintIcon (
081 Component component,
082 Graphics graphics,
083 int x,
084 int y )
085 //////////////////////////////////////////////////////////////////////
086 {
087 graphics.setColor ( color );
088
089 if ( size == null )
090 {
091 graphics.fillRect ( 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE );
092 }
093 else
094 {
095 graphics.fillRect ( x, y, size.width, size.height );
096 }
097 }
098
099 //////////////////////////////////////////////////////////////////////
100 //////////////////////////////////////////////////////////////////////
101 }