public class HTMLEditorKit extends StyledEditorKit implements Accessible
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 documentation 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.
Modifier and Type | Class and Description |
---|---|
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. |
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. |
static class |
HTMLEditorKit.Parser Interface to be supported by the parser. |
static class |
HTMLEditorKit.ParserCallback The result of parsing drives these callback methods. |
StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction
DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction
public static final String DEFAULT_CSS
Default Cascading Style Sheet file that sets up the tag views.
public static final String BOLD_ACTION
The bold action identifier
public static final String ITALIC_ACTION
The italic action identifier
public static final String PARA_INDENT_LEFT
The paragraph left indent action identifier
public static final String PARA_INDENT_RIGHT
The paragraph right indent action identifier
public static final String FONT_CHANGE_BIGGER
The font size increase to next value action identifier
public static final String FONT_CHANGE_SMALLER
The font size decrease to next value action identifier
public static final String COLOR_ACTION
The Color choice action identifier The color is passed as an argument
public static final String LOGICAL_STYLE_ACTION
The logical style choice action identifier The logical style is passed in as an argument
public static final String IMG_ALIGN_TOP
Align images at the top.
public static final String IMG_ALIGN_MIDDLE
Align images in the middle.
public static final String IMG_ALIGN_BOTTOM
Align images at the bottom.
public static final String IMG_BORDER
Align images at the border.
public HTMLEditorKit()
Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.
public String getContentType()
Get the MIME type of the data that this kit represents support for. This kit supports the type text/html
.
getContentType
in class DefaultEditorKit
public ViewFactory getViewFactory()
Fetch a factory that is suitable for producing views of any models that are produced by this kit.
getViewFactory
in class StyledEditorKit
public Document createDefaultDocument()
Create an uninitialized text storage model that is appropriate for this type of editor.
createDefaultDocument
in class StyledEditorKit
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException
Inserts content from the given stream. If 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 contentIOException
- on any I/O errorBadLocationException
- if pos represents an invalid location within the documentRuntimeException
- (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
Inserts HTML into an existing document.
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 documentRuntimeException
- (will eventually be a BadLocationException) if pos is invalidBadLocationException
IOException
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException
Write content from a document to the given stream in a format appropriate for this kind of content handler.
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 outIOException
- on any I/O errorBadLocationException
- if pos represents an invalid location within the documentpublic void install(JEditorPane c)
Called when the kit is being installed into the a JEditorPane.
install
in class StyledEditorKit
c
- the JEditorPanepublic void deinstall(JEditorPane c)
Called when the kit is being removed from the JEditorPane. This is used to unregister any listeners that were attached.
deinstall
in class StyledEditorKit
c
- the JEditorPanepublic void setStyleSheet(StyleSheet s)
Set the set of styles to be used to render the various HTML elements. These styles are specified in terms of CSS specifications. Each document produced by the kit will have a copy of the sheet which it can add the document specific styles to. By default, the StyleSheet specified is shared by all HTMLEditorKit instances. This should be reimplemented to provide a finer granularity if desired.
public StyleSheet getStyleSheet()
Get the set of styles currently being used to render the HTML elements. By default the resource specified by DEFAULT_CSS gets loaded, and is shared by all HTMLEditorKit instances.
public Action[] getActions()
Fetches the command list for the editor. This is the list of commands supported by the superclass augmented by the collection of commands defined locally for style operations.
getActions
in class StyledEditorKit
protected void createInputAttributes(Element element, MutableAttributeSet set)
Copies the key/values in 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()
Gets the input attributes used for the styled editing actions.
getInputAttributes
in class StyledEditorKit
public void setDefaultCursor(Cursor cursor)
Sets the default cursor.
public Cursor getDefaultCursor()
Returns the default cursor.
public void setLinkCursor(Cursor cursor)
Sets the cursor to use over links.
public Cursor getLinkCursor()
Returns the cursor to use over hyper links.
public boolean isAutoFormSubmission()
Indicates whether an html form submission is processed automatically or only FormSubmitEvent
is fired.
setAutoFormSubmission(boolean)
public void setAutoFormSubmission(boolean isAuto)
Specifies if an html form submission is processed automatically or only FormSubmitEvent
is fired. By default it is set to true.
isAutoFormSubmission()
, FormSubmitEvent
public Object clone()
Creates a copy of the editor kit.
clone
in class StyledEditorKit
Cloneable
protected HTMLEditorKit.Parser getParser()
Fetch the parser to use for reading HTML streams. This can be reimplemented to provide a different parser. The default implementation is loaded dynamically to avoid the overhead of loading the default parser if it's not used. The default parser is the HotJava parser using an HTML 3.2 DTD.
public AccessibleContext getAccessibleContext()
returns the AccessibleContext associated with this editor kit
getAccessibleContext
in interface Accessible
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.