|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
javax.swing.text.StyleContext
![]()
![]()
![]()
javax.swing.text.html.StyleSheet
, AbstractDocument.AttributeContext

public class StyleSheet

Support for defining the visual characteristics of
HTML views being rendered. The StyleSheet is used to
translate the HTML model into visual characteristics.
This enables views to be customized by a look-and-feel,
multiple views over the same model can be rendered
differently, etc. This can be thought of as a CSS
rule repository. The key for CSS attributes is an
object of type CSS.Attribute. The type of the value
is up to the StyleSheet implementation, but the
toString method is required
to return a string representation of CSS value.
The primary entry point for HTML View implementations to get their attributes is the getViewAttributes method. This should be implemented to establish the desired policy used to associate attributes with the view. Each HTMLEditorKit (i.e. and therefore each associated JEditorPane) can have its own StyleSheet, but by default one sheet will be shared by all of the HTMLEditorKit instances. HTMLDocument instance can also have a StyleSheet, which holds the document-specific CSS specifications.
In order for Views to store less state and therefore be more lightweight, the StyleSheet can act as a factory for painters that handle some of the rendering tasks. This allows implementations to determine what they want to cache and have the sharing potentially at the level that a selector is common to multiple views. Since the StyleSheet may be used by views over multiple documents and typically the HTML attributes don't effect the selector being used, the potential for sharing is significant.
The rules are stored as named styles, and other information
is stored to translate the context of an element to a
rule quickly. The following code fragment will display
the named styles, and therefore the CSS rules contained.
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public class ShowStyles {
public static void main(String[] args) {
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
StyleSheet styles = doc.getStyleSheet();
Enumeration rules = styles.getStyleNames();
while (rules.hasMoreElements()) {
String name = (String) rules.nextElement();
Style rule = styles.getStyle(name);
System.out.println(rule.toString());
}
System.exit(0);
}
}
The semantics for when a CSS style should overide visual attributes
defined by an element are not well defined. For example, the html
<body bgcolor=red> makes the body have a red
background. But if the html file also contains the CSS rule
body { background: blue } it becomes less clear as to
what color the background of the body should be. The current
implemention gives visual attributes defined in the element the
highest precedence, that is they are always checked before any styles.
Therefore, in the previous example the background would have a
red color as the body element defines the background color to be red.
As already mentioned this supports CSS. We don't support the full CSS
spec. Refer to the javadoc of the CSS class to see what properties
we support. The two major CSS parsing related
concepts we do not currently
support are pseudo selectors, such as A:link { color: red },
and the important modifier.
Note: This implementation is currently incomplete. It can be replaced with alternative implementations that are complete. Future versions of this class will provide better CSS support.
| Nested Class Summary | |
|---|---|
static class |
StyleSheet.BoxPainter
Class to carry out some of the duties of CSS formatting. |
static class |
StyleSheet.ListPainter
Class to carry out some of the duties of CSS list formatting. |
Nested classes/interfaces inherited from class javax.swing.text.StyleContext ![]() |
|---|
StyleContext.NamedStyle |
| Field Summary |
|---|
Fields inherited from class javax.swing.text.StyleContext ![]() |
|---|
DEFAULT_STYLE |
| Constructor Summary | |
|---|---|
StyleSheet
Construct a StyleSheet |
|
| Method Summary | |
|---|---|
AttributeSet |
addAttribute
Adds an attribute to the given set, and returns the new representative set. |
AttributeSet |
addAttributes
Adds a set of attributes to the element. |
void |
addCSSAttribute
Adds a CSS attribute to the given set. |
boolean |
addCSSAttributeFromHTML
Adds a CSS attribute to the given set. |
void |
addRule
Adds a set of rules to the sheet. |
void |
addStyleSheet
Adds the rules from the StyleSheet ss to those of
the receiver. |
protected MutableAttributeSet |
createLargeAttributeSet
Creates a large set of attributes that should trade off space for time. |
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet
Creates a compact set of attributes that might be shared. |
Color |
getBackground
Takes a set of attributes and turn it into a background color specification. |
URL |
getBase
Returns the base. |
StyleSheet.BoxPainter |
getBoxPainter
Fetches the box formatter to use for the given set of CSS attributes. |
AttributeSet |
getDeclaration
Translates a CSS declaration to an AttributeSet that represents the CSS declaration. |
Font |
getFont
Fetches the font to use for the given set of attributes. |
Color |
getForeground
Takes a set of attributes and turn it into a foreground color specification. |
static int |
getIndexOfSize
|
StyleSheet.ListPainter |
getListPainter
Fetches the list formatter to use for the given set of CSS attributes. |
float |
getPointSize
Returns the point size, given a size index. |
float |
getPointSize
Given a string such as "+2", "-2", or "2", returns a point size value. |
Style |
getRule
Fetches the style to use to render the given type of HTML tag. |
Style |
getRule
Fetches the rule that best matches the selector given in string form. |
StyleSheet |
getStyleSheets
Returns an array of the linked StyleSheets. |
AttributeSet |
getViewAttributes
Fetches a set of attributes to use in the view for displaying. |
void |
importStyleSheet
Imports a style sheet from url. |
void |
loadRules
Loads a set of rules that have been specified in terms of CSS1 grammar. |
AttributeSet |
removeAttribute
Removes an attribute from the set. |
AttributeSet |
removeAttributes
Removes a set of attributes. |
AttributeSet |
removeAttributes
Removes a set of attributes for the element. |
void |
removeStyle
Removes a named style previously added to the document. |
void |
removeStyleSheet
Removes the StyleSheet ss from those of the receiver. |
void |
setBase
Sets the base. |
void |
setBaseFontSize
Sets the base font size, with valid values between 1 and 7. |
void |
setBaseFontSize
Sets the base font size from the passed in String. |
Color |
stringToColor
Converts a color string such as "RED" or "#NNNNNN" to a Color. |
AttributeSet |
translateHTMLToCSS
Converts a set of HTML attributes to an equivalent set of CSS attributes. |
Methods inherited from class javax.swing.text.StyleContext ![]() |
|---|
addChangeListener |
Methods inherited from class java.lang.Object ![]() |
|---|
clone |
| Constructor Detail |
|---|

public StyleSheet()
| Method Detail |
|---|

public Style![]()
![]()
getRule(HTML.Tag
![]()
![]()
t,