org.fife.ui.rsyntaxtextarea
Class SyntaxScheme

java.lang.Object
  extended by org.fife.ui.rsyntaxtextarea.SyntaxScheme
All Implemented Interfaces:
java.lang.Cloneable, TokenTypes

public class SyntaxScheme
extends java.lang.Object
implements java.lang.Cloneable, TokenTypes

The set of colors and styles used by an RSyntaxTextArea to color tokens.

You can use this class to programmatically set the fonts and colors used in an RSyntaxTextArea, but for more powerful, externalized control, consider using Themes instead.

Version:
1.0
Author:
Robert Futrell
See Also:
Theme

Field Summary
 
Fields inherited from interface org.fife.ui.rsyntaxtextarea.TokenTypes
ANNOTATION, COMMENT_DOCUMENTATION, COMMENT_EOL, COMMENT_KEYWORD, COMMENT_MARKUP, COMMENT_MULTILINE, DATA_TYPE, DEFAULT_NUM_TOKEN_TYPES, ERROR_CHAR, ERROR_IDENTIFIER, ERROR_NUMBER_FORMAT, ERROR_STRING_DOUBLE, FUNCTION, IDENTIFIER, LITERAL_BACKQUOTE, LITERAL_BOOLEAN, LITERAL_CHAR, LITERAL_NUMBER_DECIMAL_INT, LITERAL_NUMBER_FLOAT, LITERAL_NUMBER_HEXADECIMAL, LITERAL_STRING_DOUBLE_QUOTE, MARKUP_CDATA, MARKUP_CDATA_DELIMITER, MARKUP_COMMENT, MARKUP_DTD, MARKUP_ENTITY_REFERENCE, MARKUP_PROCESSING_INSTRUCTION, MARKUP_TAG_ATTRIBUTE, MARKUP_TAG_ATTRIBUTE_VALUE, MARKUP_TAG_DELIMITER, MARKUP_TAG_NAME, NULL, OPERATOR, PREPROCESSOR, REGEX, RESERVED_WORD, RESERVED_WORD_2, SEPARATOR, VARIABLE, WHITESPACE
 
Constructor Summary
SyntaxScheme(boolean useDefaults)
          Creates a color scheme that either has all color values set to a default value or set to null.
SyntaxScheme(java.awt.Font baseFont)
          Creates a default color scheme.
SyntaxScheme(java.awt.Font baseFont, boolean fontStyles)
          Creates a default color scheme.
 
Method Summary
 java.lang.Object clone()
          Returns a deep copy of this color scheme.
 boolean equals(java.lang.Object otherScheme)
          Tests whether this color scheme is the same as another color scheme.
 Style getStyle(int index)
          Returns the specified style.
 int getStyleCount()
          Returns the number of styles.
 Style[] getStyles()
          Used by third party implementors e.g.
 int hashCode()
          This is implemented to be consistent with equals(Object).
static SyntaxScheme load(java.awt.Font baseFont, java.io.InputStream in)
          Loads a syntax scheme from an input stream.
static SyntaxScheme loadFromString(java.lang.String string)
          Loads a syntax highlighting color scheme from a string created from toCommaSeparatedString.
static SyntaxScheme loadFromString(java.lang.String string, int tokenTypeCount)
          Loads a syntax highlighting color scheme from a string created from toCommaSeparatedString.
 void restoreDefaults(java.awt.Font baseFont)
          Restores all colors and fonts to their default values.
 void restoreDefaults(java.awt.Font baseFont, boolean fontStyles)
          Restores all colors and fonts to their default values.
 void setStyle(int type, Style style)
          Sets a style to use when rendering a token type.
 void setStyles(Style[] styles)
          Used by third party implementors e.g.
 java.lang.String toCommaSeparatedString()
          Returns this syntax highlighting scheme as a comma-separated list of values as follows: If a color is non-null, it is added as a 24-bit integer of the form ((r<<16) | (g<<8) | (b)); if it is null, it is added as "-,".
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SyntaxScheme

public SyntaxScheme(boolean useDefaults)
Creates a color scheme that either has all color values set to a default value or set to null.

Parameters:
useDefaults - If true, all color values will be set to default colors; if false, all colors will be initially null.

SyntaxScheme

public SyntaxScheme(java.awt.Font baseFont)
Creates a default color scheme.

Parameters:
baseFont - The base font to use. Keywords will be a bold version of this font, and comments will be an italicized version of this font.

SyntaxScheme

public SyntaxScheme(java.awt.Font baseFont,
                    boolean fontStyles)
Creates a default color scheme.

Parameters:
baseFont - The base font to use. Keywords will be a bold version of this font, and comments will be an italicized version of this font.
fontStyles - Whether bold and italic should be used in the scheme (vs. all tokens using a plain font).
Method Detail

clone

public java.lang.Object clone()
Returns a deep copy of this color scheme.

Overrides:
clone in class java.lang.Object
Returns:
The copy.

equals

public boolean equals(java.lang.Object otherScheme)
Tests whether this color scheme is the same as another color scheme.

Overrides:
equals in class java.lang.Object
Parameters:
otherScheme - The color scheme to compare to.
Returns:
true if this color scheme and otherScheme are the same scheme; false otherwise.

getStyle

public Style getStyle(int index)
Returns the specified style.

Parameters:
index - The index of the style.
Returns:
The style.
See Also:
setStyle(int, Style), getStyleCount()

getStyleCount

public int getStyleCount()
Returns the number of styles.

Returns:
The number of styles.
See Also:
getStyle(int)

getStyles

public Style[] getStyles()
Used by third party implementors e.g. SquirreL SQL. Most applications do not need to call this method.

Note that the returned array is not a copy of the style data; editing the array will modify the styles used by any RSyntaxTextArea using this scheme.

Returns:
The style array.
See Also:
setStyles(Style[])

hashCode

public int hashCode()
This is implemented to be consistent with equals(Object). This is a requirement to keep FindBugs happy.

Overrides:
hashCode in class java.lang.Object
Returns:
The hash code for this object.

load

public static SyntaxScheme load(java.awt.Font baseFont,
                                java.io.InputStream in)
                         throws java.io.IOException
Loads a syntax scheme from an input stream.

Consider using the Theme class for saving and loading RSTA styles rather than using this API.

Parameters:
baseFont - The font to use as the "base" for the syntax scheme. If this is null, a default monospaced font is used.
in - The stream to load from. It is up to the caller to close this stream when they are done.
Returns:
The syntax scheme.
Throws:
java.io.IOException - If an IO error occurs.

loadFromString

public static SyntaxScheme loadFromString(java.lang.String string)
Loads a syntax highlighting color scheme from a string created from toCommaSeparatedString. This method is useful for saving and restoring color schemes.

Consider using the Theme class for saving and loading RSTA styles rather than using this API.

Parameters:
string - A string generated from toCommaSeparatedString().
Returns:
A color scheme.
See Also:
toCommaSeparatedString()

loadFromString

public static SyntaxScheme loadFromString(java.lang.String string,
                                          int tokenTypeCount)
Loads a syntax highlighting color scheme from a string created from toCommaSeparatedString. This method is useful for saving and restoring color schemes.

Consider using the Theme class for saving and loading RSTA styles rather than using this API.

Parameters:
string - A string generated from toCommaSeparatedString().
tokenTypeCount - The number of token types saved in this string. This should be the number of token types saved by your custom SyntaxScheme subclass, or TokenTypes.DEFAULT_NUM_TOKEN_TYPES if you used the standard implementation (which most people will).
Returns:
A color scheme.
See Also:
loadFromString(String), toCommaSeparatedString()

restoreDefaults

public void restoreDefaults(java.awt.Font baseFont)
Restores all colors and fonts to their default values.

Parameters:
baseFont - The base font to use when creating this scheme. If this is null, then a default monospaced font is used.

restoreDefaults

public void restoreDefaults(java.awt.Font baseFont,
                            boolean fontStyles)
Restores all colors and fonts to their default values.

Parameters:
baseFont - The base font to use when creating this scheme. If this is null, then a default monospaced font is used.
fontStyles - Whether bold and italic should be used in the scheme (vs. all tokens using a plain font).

setStyle

public void setStyle(int type,
                     Style style)
Sets a style to use when rendering a token type.

Parameters:
type - The token type.
style - The style for the token type.
See Also:
getStyle(int)

setStyles

public void setStyles(Style[] styles)
Used by third party implementors e.g. SquirreL SQL. Most applications do not need to call this method; individual styles can be set via setStyle(int, Style).

Parameters:
styles - The new array of styles to use. Note that this should have length of at least TokenTypes.DEFAULT_NUM_TOKEN_TYPES.
See Also:
setStyle(int, Style), getStyles()

toCommaSeparatedString

public java.lang.String toCommaSeparatedString()
Returns this syntax highlighting scheme as a comma-separated list of values as follows:

Returns:
A string representing the rgb values of the colors.
See Also:
loadFromString(String)