|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.text.EditorKit javax.swing.text.DefaultEditorKit javax.swing.text.StyledEditorKit javax.swing.text.html.HTMLEditorKit
The Swing JEditorPane text component supports different kinds of content via a plug-in mechanism called an EditorKit. Because HTML is a very popular format of content, some support is provided by default. The default support is provided by this class, which supports HTML version 3.2 (with some extensions), and is migrating toward version 4.0. The <applet> tag is not supported, but some support is provided for the <object> tag.
There are several goals of the HTML EditorKit provided, that have an effect upon the way that HTML is modeled. These have influenced its design in a substantial way.
The modeling of HTML is provided by the class HTMLDocument
.
Its documention describes the details of how the HTML is modeled.
The editing support leverages heavily off of the text package.
HTMLFactory
class. This can
be easily changed by subclassing or replacing the HTMLFactory
and reimplementing the getViewFactory method to return the alternative
factory.
JEditorPane.setPage
.
This is controlled by a property on the document. The method
createDefaultDocument can
be overriden to change this. The batching of work is done
by the HTMLDocument.HTMLReader
class. The actual
work is done by the DefaultStyledDocument
and
AbstractDocument
classes in the text package.
The support for this is provided by the StyleSheet
class. The presentation of the HTML can be heavily influenced
by the setting of the StyleSheet property on the EditorKit.
Nested Class Summary | |
(package private) static class |
HTMLEditorKit.ActivateLinkAction
|
static class |
HTMLEditorKit.HTMLFactory
A factory to build views for HTML. |
static class |
HTMLEditorKit.HTMLTextAction
An abstract Action providing some convenience methods that may be useful in inserting HTML into an existing document. |
(package private) static class |
HTMLEditorKit.InsertHRAction
InsertHRAction is special, at actionPerformed time it will determine the parent HTML.Tag based on the paragraph element at the selection start. |
static class |
HTMLEditorKit.InsertHTMLTextAction
InsertHTMLTextAction can be used to insert an arbitrary string of HTML into an existing HTML document. |
static class |
HTMLEditorKit.LinkController
Class to watch the associated component and fire hyperlink events on it when appropriate. |
(package private) static class |
HTMLEditorKit.NavigateLinkAction
|
static class |
HTMLEditorKit.Parser
Interface to be supported by the parser. |
static class |
HTMLEditorKit.ParserCallback
The result of parsing drives these callback methods. |
Nested classes inherited from class javax.swing.text.StyledEditorKit |
StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction |
Nested classes inherited from class javax.swing.text.DefaultEditorKit |
DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction |
Field Summary | |
private javax.accessibility.AccessibleContext |
accessibleContext
|
private static HTMLEditorKit.ActivateLinkAction |
activateLinkAction
|
static String |
BOLD_ACTION
The bold action identifier |
static String |
COLOR_ACTION
The Color choice action identifier The color is passed as an argument |
static String |
DEFAULT_CSS
Default Cascading Style Sheet file that sets up the tag views. |
private static Action[] |
defaultActions
|
private Cursor |
defaultCursor
|
private static Cursor |
DefaultCursor
|
private static ViewFactory |
defaultFactory
Shared factory for creating HTML Views. |
private static HTMLEditorKit.Parser |
defaultParser
|
private static StyleSheet |
defaultStyles
|
static String |
FONT_CHANGE_BIGGER
The font size increase to next value action identifier |
static String |
FONT_CHANGE_SMALLER
The font size decrease to next value action identifier |
static String |
IMG_ALIGN_BOTTOM
Align images at the bottom. |
static String |
IMG_ALIGN_MIDDLE
Align images in the middle. |
static String |
IMG_ALIGN_TOP
Align images at the top. |
static String |
IMG_BORDER
Align images at the border. |
(package private) MutableAttributeSet |
input
|
private static String |
INSERT_HR_HTML
HTML used when inserting hr. |
private static String |
INSERT_OL_HTML
HTML used when inserting ordered lists. |
private static String |
INSERT_PRE_HTML
HTML used when inserting pre. |
private static String |
INSERT_TABLE_HTML
HTML used when inserting tables. |
private static String |
INSERT_UL_HTML
HTML used when inserting unordered lists. |
static String |
ITALIC_ACTION
The italic action identifier |
private Cursor |
linkCursor
|
private HTMLEditorKit.LinkController |
linkHandler
|
static String |
LOGICAL_STYLE_ACTION
The logical style choice action identifier The logical style is passed in as an argument |
private static Cursor |
MoveCursor
|
private static HTMLEditorKit.NavigateLinkAction |
nextLinkAction
|
static String |
PARA_INDENT_LEFT
The paragraph left indent action identifier |
static String |
PARA_INDENT_RIGHT
The paragraph right indent action identifier |
private static HTMLEditorKit.NavigateLinkAction |
previousLinkAction
|
private JEditorPane |
theEditor
|
Fields inherited from class javax.swing.text.StyledEditorKit |
|
Constructor Summary | |
HTMLEditorKit()
Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet. |
Method Summary | |
Object |
clone()
Creates a copy of the editor kit. |
Document |
createDefaultDocument()
Create an uninitialized text storage model that is appropriate for this type of editor. |
protected void |
createInputAttributes(Element element,
MutableAttributeSet set)
Copies the key/values in element s AttributeSet into
set . |
void |
deinstall(JEditorPane c)
Called when the kit is being removed from the JEditorPane. |
javax.accessibility.AccessibleContext |
getAccessibleContext()
returns the AccessibleContext associated with this editor kit |
Action[] |
getActions()
Fetches the command list for the editor. |
private static Object |
getAttrValue(AttributeSet attr,
HTML.Attribute key)
|
String |
getContentType()
Get the MIME type of the data that this kit represents support for. |
Cursor |
getDefaultCursor()
Returns the default cursor. |
MutableAttributeSet |
getInputAttributes()
Gets the input attributes used for the styled editing actions. |
Cursor |
getLinkCursor()
Returns the cursor to use over hyper links. |
protected HTMLEditorKit.Parser |
getParser()
Fetch the parser to use for reading HTML streams. |
(package private) static InputStream |
getResourceAsStream(String name)
Fetch a resource relative to the HTMLEditorKit classfile. |
StyleSheet |
getStyleSheet()
Get the set of styles currently being used to render the HTML elements. |
ViewFactory |
getViewFactory()
Fetch a factory that is suitable for producing views of any models that are produced by this kit. |
void |
insertHTML(HTMLDocument doc,
int offset,
String html,
int popDepth,
int pushDepth,
HTML.Tag insertTag)
Inserts HTML into an existing document. |
void |
install(JEditorPane c)
Called when the kit is being installed into the a JEditorPane. |
void |
read(Reader in,
Document doc,
int pos)
Inserts content from the given stream. |
void |
setDefaultCursor(Cursor cursor)
Sets the default cursor. |
void |
setLinkCursor(Cursor cursor)
Sets the cursor to use over links. |
void |
setStyleSheet(StyleSheet s)
Set the set of styles to be used to render the various HTML elements. |
void |
write(Writer out,
Document doc,
int pos,
int len)
Write content from a document to the given stream in a format appropriate for this kind of content handler. |
Methods inherited from class javax.swing.text.StyledEditorKit |
getCharacterAttributeRun |
Methods inherited from class javax.swing.text.DefaultEditorKit |
createCaret, read, write |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private JEditorPane theEditor
public static final String DEFAULT_CSS
private javax.accessibility.AccessibleContext accessibleContext
private static final Cursor MoveCursor
private static final Cursor DefaultCursor
private static final ViewFactory defaultFactory
MutableAttributeSet input
private static StyleSheet defaultStyles
private HTMLEditorKit.LinkController linkHandler
private static HTMLEditorKit.Parser defaultParser
private Cursor defaultCursor
private Cursor linkCursor
public static final String BOLD_ACTION
public static final String ITALIC_ACTION
public static final String PARA_INDENT_LEFT
public static final String PARA_INDENT_RIGHT
public static final String FONT_CHANGE_BIGGER
public static final String FONT_CHANGE_SMALLER
public static final String COLOR_ACTION
public static final String LOGICAL_STYLE_ACTION
public static final String IMG_ALIGN_TOP
public static final String IMG_ALIGN_MIDDLE
public static final String IMG_ALIGN_BOTTOM
public static final String IMG_BORDER
private static final String INSERT_TABLE_HTML
private static final String INSERT_UL_HTML
private static final String INSERT_OL_HTML
private static final String INSERT_HR_HTML
private static final String INSERT_PRE_HTML
private static HTMLEditorKit.NavigateLinkAction nextLinkAction
private static HTMLEditorKit.NavigateLinkAction previousLinkAction
private static HTMLEditorKit.ActivateLinkAction activateLinkAction
private static final Action[] defaultActions
Constructor Detail |
public HTMLEditorKit()
Method Detail |
public String getContentType()
text/html
.
getContentType
in class DefaultEditorKit
public ViewFactory getViewFactory()
getViewFactory
in class StyledEditorKit
public Document createDefaultDocument()
createDefaultDocument
in class StyledEditorKit
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException
doc
is
an instance of HTMLDocument, this will read
HTML 3.2 text. Inserting HTML into a non-empty document must be inside
the body Element, if you do not insert into the body an exception will
be thrown. When inserting into a non-empty document all tags outside
of the body (head, title) will be dropped.
read
in class DefaultEditorKit
in
- the stream to read fromdoc
- the destination for the insertionpos
- the location in the document to place the
content
IOException
- on any I/O error
BadLocationException
- if pos represents an invalid
location within the document
RuntimeException
- (will eventually be a BadLocationException)
if pos is invalidpublic void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) throws BadLocationException, IOException
doc
- the document to insert intooffset
- the offset to insert HTML atpopDepth
- the number of ElementSpec.EndTagTypes to generate before
insertingpushDepth
- the number of ElementSpec.StartTagTypes with a direction
of ElementSpec.JoinNextDirection that should be generated
before inserting, but after the end tags have been generatedinsertTag
- the first tag to start inserting into document
RuntimeException
- (will eventually be a BadLocationException)
if pos is invalid
BadLocationException
IOException
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException
write
in class DefaultEditorKit
out
- the stream to write todoc
- the source for the writepos
- the location in the document to fetch the
contentlen
- the amount to write out
IOException
- on any I/O error
BadLocationException
- if pos represents an invalid
location within the documentpublic void install(JEditorPane c)
install
in class StyledEditorKit
c
- the JEditorPanepublic void deinstall(JEditorPane c)
deinstall
in class StyledEditorKit
c
- the JEditorPanepublic void setStyleSheet(StyleSheet s)
public StyleSheet getStyleSheet()
static InputStream getResourceAsStream(String name)
name
- the name of the resource, relative to the
HTMLEditorKit class
public Action[] getActions()
getActions
in class StyledEditorKit
protected void createInputAttributes(Element element, MutableAttributeSet set)
element
s AttributeSet into
set
. This does not copy component, icon, or element
names attributes. Subclasses may wish to refine what is and what
isn't copied here. But be sure to first remove all the attributes that
are in set
.This is called anytime the caret moves over a different location.
createInputAttributes
in class StyledEditorKit
public MutableAttributeSet getInputAttributes()
getInputAttributes
in class StyledEditorKit
public void setDefaultCursor(Cursor cursor)
public Cursor getDefaultCursor()
public void setLinkCursor(Cursor cursor)
public Cursor getLinkCursor()
public Object clone()
clone
in class StyledEditorKit
protected HTMLEditorKit.Parser getParser()
public javax.accessibility.AccessibleContext getAccessibleContext()
getAccessibleContext
in interface javax.accessibility.Accessible
private static Object getAttrValue(AttributeSet attr, HTML.Attribute key)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |