content: package tim.prune.config;
  
  import java.awt.Color;
  
  /**
   * Class to hold static methods for handling colours
   * including converting to and from hex code Strings
   */
  public abstract class ColourUtils
  {
  	/**
  	 * Convert a string into a Color object
  	 * @param inValue 6-character hex code
  	 * @return corresponding colour
  	 */
  	public static Color colourFromHex(String inValue)
  	{
  		Color retVal = null;
  		if (inValue != null && inValue.length() == 6)
  		{
  			try
  			{
  				final int redness = convertToInt(inValue.substring(0, 2));
  				final int greenness = convertToInt(inValue.substring(2, 4));
  				final int blueness = convertToInt(inValue.substring(4, 6));
  				retVal = new Color(redness, greenness, blueness);
  			}
  			catch (NumberFormatException nfe) {} // colour stays null
  		}
  		return retVal;
  	}
  
  	/**
  	 * @param inPair two-digit String representing hex code
  	 * @return corresponding integer (0 to 255)
  	 */
  	private static int convertToInt(String inPair)
  	{
  		int val = Integer.parseInt(inPair, 16);
  		if (val < 0) val = 0;
  		return val;
  	}
  
  	/**
  	 * Make a hex code string for the given colour
  	 * @param inColour colour
  	 * @return 6-character hex code
  	 */
  	public static String makeHexCode(Color inColour)
  	{
  		return convertToHex(inColour.getRed()) + convertToHex(inColour.getGreen()) + convertToHex(inColour.getBlue());
  	}
  
  	/**
  	 * @param inValue integer value from 0 to 255
  	 * @return two-character hex code
  	 */
  	private static String convertToHex(int inValue)
  	{
  		// Uses lower case a-f
  		String code = Integer.toHexString(inValue);
  		// Pad with leading 0 if necessary
  		return (inValue < 16 ? "0" + code : code);
  	}
  }
  