org.apache.lucene.search.highlight

Class GradientFormatter

public class GradientFormatter extends Object implements Formatter

Formats text with different color intensity depending on the score of the term.

Author: maharwood

Field Summary
protected booleanhighlightBackground
protected booleanhighlightForeground
Constructor Summary
GradientFormatter(float maxScore, String minForegroundColor, String maxForegroundColor, String minBackgroundColor, String maxBackgroundColor)
Sets the color range for the IDF scores
Method Summary
protected StringgetBackgroundColorString(float score)
protected StringgetForegroundColorString(float score)
static inthexToInt(String hex)
Converts a hex string into an int.
StringhighlightTerm(String originalText, TokenGroup tokenGroup)

Field Detail

highlightBackground

protected boolean highlightBackground

highlightForeground

protected boolean highlightForeground

Constructor Detail

GradientFormatter

public GradientFormatter(float maxScore, String minForegroundColor, String maxForegroundColor, String minBackgroundColor, String maxBackgroundColor)
Sets the color range for the IDF scores

Parameters: maxScore The score (and above) displayed as maxColor (See QueryScorer.getMaxWeight which can be used to callibrate scoring scale) minForegroundColor The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no foreground color required maxForegroundColor The largest hex color used for representing IDF scores eg #000000 (black) or null if no foreground color required minBackgroundColor The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no background color required maxBackgroundColor The largest hex color used for representing IDF scores eg #000000 (black) or null if no background color required

Method Detail

getBackgroundColorString

protected String getBackgroundColorString(float score)

getForegroundColorString

protected String getForegroundColorString(float score)

hexToInt

public static final int hexToInt(String hex)
Converts a hex string into an int. Integer.parseInt(hex, 16) assumes the input is nonnegative unless there is a preceding minus sign. This method reads the input as twos complement instead, so if the input is 8 bytes long, it will correctly restore a negative int produced by Integer.toHexString() but not neccesarily one produced by Integer.toString(x,16) since that method will produce a string like '-FF' for negative integer values.

Parameters: hex A string in capital or lower case hex, of no more then 16 characters.

Throws: NumberFormatException if the string is more than 16 characters long, or if any character is not in the set [0-9a-fA-f]

highlightTerm

public String highlightTerm(String originalText, TokenGroup tokenGroup)
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.