|
JavaTM 2 Platform Standard Edition |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.StyleContext | +--javax.swing.text.html.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);
}
}
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.
Inner 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. |
Inner classes inherited from class javax.swing.text.StyleContext |
StyleContext.NamedStyle,
StyleContext.SmallAttributeSet |
Fields inherited from class javax.swing.text.StyleContext |
DEFAULT_STYLE |
Constructor Summary | |
StyleSheet()
Construct a StyleSheet |
Method Summary | |
AttributeSet |
addAttribute(AttributeSet old,
Object key,
Object value)
Adds an attribute to the given set, and returns the new representative set. |
AttributeSet |
addAttributes(AttributeSet old,
AttributeSet attr)
Adds a set of attributes to the element. |
void |
addRule(String rule)
Add a set of rules to the sheet. |
protected MutableAttributeSet |
createLargeAttributeSet(AttributeSet a)
Create a large set of attributes that should trade off space for time. |
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet(AttributeSet a)
Create a compact set of attributes that might be shared. |
Color |
getBackground(AttributeSet a)
Takes a set of attributes and turn it into a background color specification. |
StyleSheet.BoxPainter |
getBoxPainter(AttributeSet a)
Fetch the box formatter to use for the given set of css attributes. |
AttributeSet |
getDeclaration(String decl)
Translate a CSS declaration to an AttributeSet that represents the CSS declaration. |
Font |
getFont(AttributeSet a)
Fetch the font to use for the given set of attributes. |
Color |
getForeground(AttributeSet a)
Takes a set of attributes and turn it into a foreground color specification. |
static int |
getIndexOfSize(float pt)
|
StyleSheet.ListPainter |
getListPainter(AttributeSet a)
Fetch the list formatter to use for the given set of css attributes. |
float |
getPointSize(int index)
Return the point size, given a size index. |
float |
getPointSize(String size)
Given a string "+2", "-2", "2". |
Style |
getRule(HTML.Tag t,
Element e)
Fetch the style to use to render the given type of html tag. |
Style |
getRule(String selector)
Fetch the rule that best matches the selector given in string form. |
AttributeSet |
getViewAttributes(View v)
Fetch a set of attributes to use in the view for displaying. |
void |
loadRules(Reader in,
URL ref)
Load a set of rules that have been specified in terms of CSS1 grammar. |
AttributeSet |
removeAttribute(AttributeSet old,
Object key)
Removes an attribute from the set. |
AttributeSet |
removeAttributes(AttributeSet old,
AttributeSet attrs)
Removes a set of attributes. |
AttributeSet |
removeAttributes(AttributeSet old,
Enumeration names)
Removes a set of attributes for the element. |
void |
removeStyle(String nm)
Removes a named style previously added to the document. |
void |
setBaseFontSize(int sz)
|
void |
setBaseFontSize(String size)
|
Color |
stringToColor(String string)
Convert a color string "RED" or "#NNNNNN" to a Color. |
AttributeSet |
translateHTMLToCSS(AttributeSet htmlAttrSet)
Convert a set of html attributes to an equivalent set of css attributes. |
Methods inherited from class javax.swing.text.StyleContext |
addChangeListener,
addStyle,
getCompressionThreshold,
getDefaultStyleContext,
getEmptySet,
getFont,
getFontMetrics,
getStaticAttribute,
getStaticAttributeKey,
getStyle,
getStyleNames,
readAttributes,
readAttributeSet,
reclaim,
registerStaticAttributeKey,
removeChangeListener,
toString,
writeAttributes,
writeAttributeSet |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Constructor Detail |
public StyleSheet()
Method Detail |
public Style getRule(HTML.Tag t, Element e)
t
- the type to translate to visual attributes.e
- the element representing the tag. The element
can be used to determine the nesting for situations where
the attributes will differ if nested inside of other
elements.public Style getRule(String selector)
selector
is a space separated
String of the element names. For example, selector
might be 'html body tr td''The attributes of the returned Style will change as rules are added and removed. That is if you to ask for a rule with a selector "table p" and a new rule was added with a selector of "p" the returned Style would include the new attributes from the rule "p".
public void addRule(String rule)
public AttributeSet getDeclaration(String decl)
public void loadRules(Reader in, URL ref) throws IOException
in
- the stream to read the css grammar from.ref
- the reference url. This value represents the
location of the stream and may be null. All relative
urls specified in the stream will be based upon this
parameter.public AttributeSet getViewAttributes(View v)
public void removeStyle(String nm)
nm
- the name of the style to removepublic AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
AttributeSet
- containing the HTML attributes.AttributeSet
- containing the corresponding CSS attributes.
The AttributeSet will be empty if there are no mapping
CSS attributes.public AttributeSet addAttribute(AttributeSet old, Object key, Object value)
old
- the old attribute setkey
- the non-null attribute keyvalue
- the attribute valueMutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
old
- the old attribute setattr
- the attributes to addMutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet removeAttribute(AttributeSet old, Object key)
old
- the old set of attributeskey
- the non-null attribute nameMutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSet removeAttributes(AttributeSet old, Enumeration names)
old
- the old attribute setnames
- the attribute namesMutableAttributeSet.removeAttributes(java.util.Enumeration)
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
old
- the old attribute setattrs
- the attributesMutableAttributeSet.removeAttributes(java.util.Enumeration)
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
a
- The set of attributes to be represented in the
the compact form.protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
a
- The set of attributes to be represented in the
the larger form.public Font getFont(AttributeSet a)
attr
- the attribute setpublic Color getForeground(AttributeSet a)
a
- the set of attributespublic Color getBackground(AttributeSet a)
attr
- the set of attributespublic StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
public StyleSheet.ListPainter getListPainter(AttributeSet a)
public void setBaseFontSize(int sz)
public void setBaseFontSize(String size)
public static int getIndexOfSize(float pt)
public float getPointSize(int index)
public float getPointSize(String size)
public Color stringToColor(String string)
|
JavaTM 2 Platform Standard Edition |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |