Liking cljdoc? Tell your friends :D

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.

Support editing

It might seem fairly obvious that a plug-in for JEditorPane should provide editing support, but that fact has several design considerations. There are a substantial number of HTML documents that don't properly conform to an HTML specification. These must be normalized somewhat into a correct form if one is to edit them. Additionally, users don't like to be presented with an excessive amount of structure editing, so using traditional text editing gestures is preferred over using the HTML structure exactly as defined in the HTML document.

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.

Extendable/Scalable

To maximize the usefulness of this kit, a great deal of effort has gone into making it extendable. These are some of the features.

The parser is replaceable. The default parser is the Hot Java parser which is DTD based. A different DTD can be used, or an entirely different parser can be used. To change the parser, reimplement the getParser method. The default parser is dynamically loaded when first asked for, so the class files will never be loaded if an alternative parser is used. The default parser is in a separate package called parser below this package.

The parser drives the ParserCallback, which is provided by HTMLDocument. To change the callback, subclass HTMLDocument and reimplement the createDefaultDocument method to return document that produces a different reader. The reader controls how the document is structured. Although the Document provides HTML support by default, there is nothing preventing support of non-HTML tags that result in alternative element structures.

The default view of the models are provided as a hierarchy of View implementations, so one can easily customize how a particular element is displayed or add capabilities for new kinds of elements by providing new View implementations. The default set of views are provided by the HTMLFactory class. This can be easily changed by subclassing or replacing the HTMLFactory and reimplementing the getViewFactory method to return the alternative factory.

The View implementations work primarily off of CSS attributes, which are kept in the views. This makes it possible to have multiple views mapped over the same model that appear substantially different. This can be especially useful for printing. For most HTML attributes, the HTML attributes are converted to CSS attributes for display. This helps make the View implementations more general purpose

Asynchronous Loading

Larger documents involve a lot of parsing and take some time to load. By default, this kit produces documents that will be loaded asynchronously if loaded using 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.

Customization from current LAF

HTML provides a well known set of features without exactly specifying the display characteristics. Swing has a theme mechanism for its look-and-feel implementations. It is desirable for the look-and-feel to feed display characteristics into the HTML views. An user with poor vision for example would want high contrast and larger than typical fonts.

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.

Not lossy

An EditorKit has the ability to be read and save documents. It is generally the most pleasing to users if there is no loss of data between the two operation. The policy of the HTMLEditorKit will be to store things not recognized or not necessarily visible so they can be subsequently written out. The model of the HTML document should therefore contain all information discovered while reading the document. This is constrained in some ways by the need to support editing (i.e. incorrect documents sometimes must be normalized). The guiding principle is that information shouldn't be lost, but some might be synthesized to produce a more correct model or it might be rearranged.

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.


Support editing

It might seem fairly obvious that a plug-in for JEditorPane
should provide editing support, but that fact has several
design considerations.  There are a substantial number of HTML
documents that don't properly conform to an HTML specification.
These must be normalized somewhat into a correct form if one
is to edit them.  Additionally, users don't like to be presented
with an excessive amount of structure editing, so using traditional
text editing gestures is preferred over using the HTML structure
exactly as defined in the HTML document.

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.


Extendable/Scalable

To maximize the usefulness of this kit, a great deal of effort
has gone into making it extendable.  These are some of the
features.


  The parser is replaceable.  The default parser is the Hot Java
  parser which is DTD based.  A different DTD can be used, or an
  entirely different parser can be used.  To change the parser,
  reimplement the getParser method.  The default parser is
  dynamically loaded when first asked for, so the class files
  will never be loaded if an alternative parser is used.  The
  default parser is in a separate package called parser below
  this package.

  The parser drives the ParserCallback, which is provided by
  HTMLDocument.  To change the callback, subclass HTMLDocument
  and reimplement the createDefaultDocument method to return
  document that produces a different reader.  The reader controls
  how the document is structured.  Although the Document provides
  HTML support by default, there is nothing preventing support of
  non-HTML tags that result in alternative element structures.

  The default view of the models are provided as a hierarchy of
  View implementations, so one can easily customize how a particular
  element is displayed or add capabilities for new kinds of elements
  by providing new View implementations.  The default set of views
  are provided by the HTMLFactory class.  This can
  be easily changed by subclassing or replacing the HTMLFactory
  and reimplementing the getViewFactory method to return the alternative
  factory.

  The View implementations work primarily off of CSS attributes,
  which are kept in the views.  This makes it possible to have
  multiple views mapped over the same model that appear substantially
  different.  This can be especially useful for printing.  For
  most HTML attributes, the HTML attributes are converted to CSS
  attributes for display.  This helps make the View implementations
  more general purpose



Asynchronous Loading

Larger documents involve a lot of parsing and take some time
to load.  By default, this kit produces documents that will be
loaded asynchronously if loaded using 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.


Customization from current LAF

HTML provides a well known set of features without exactly
specifying the display characteristics.  Swing has a theme
mechanism for its look-and-feel implementations.  It is desirable
for the look-and-feel to feed display characteristics into the
HTML views.  An user with poor vision for example would want
high contrast and larger than typical fonts.

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.


Not lossy

An EditorKit has the ability to be read and save documents.
It is generally the most pleasing to users if there is no loss
of data between the two operation.  The policy of the HTMLEditorKit
will be to store things not recognized or not necessarily visible
so they can be subsequently written out.  The model of the HTML document
should therefore contain all information discovered while reading the
document.  This is constrained in some ways by the need to support
editing (i.e. incorrect documents sometimes must be normalized).
The guiding principle is that information shouldn't be lost, but
some might be synthesized to produce a more correct model or it might
be rearranged.
raw docstring

*-bold-actionclj

Static Constant.

The bold action identifier

type: java.lang.String

Static Constant.

The bold action identifier

type: java.lang.String
raw docstring

*-color-actionclj

Static Constant.

The Color choice action identifier The color is passed as an argument

type: java.lang.String

Static Constant.

The Color choice action identifier
     The color is passed as an argument

type: java.lang.String
raw docstring

*-default-cssclj

Static Constant.

Default Cascading Style Sheet file that sets up the tag views.

type: java.lang.String

Static Constant.

Default Cascading Style Sheet file that sets
 up the tag views.

type: java.lang.String
raw docstring

*-font-change-biggerclj

Static Constant.

The font size increase to next value action identifier

type: java.lang.String

Static Constant.

The  font size increase to next value action identifier

type: java.lang.String
raw docstring

*-font-change-smallerclj

Static Constant.

The font size decrease to next value action identifier

type: java.lang.String

Static Constant.

The font size decrease to next value action identifier

type: java.lang.String
raw docstring

*-img-align-bottomclj

Static Constant.

Align images at the bottom.

type: java.lang.String

Static Constant.

Align images at the bottom.

type: java.lang.String
raw docstring

*-img-align-middleclj

Static Constant.

Align images in the middle.

type: java.lang.String

Static Constant.

Align images in the middle.

type: java.lang.String
raw docstring

*-img-align-topclj

Static Constant.

Align images at the top.

type: java.lang.String

Static Constant.

Align images at the top.

type: java.lang.String
raw docstring

*-img-borderclj

Static Constant.

Align images at the border.

type: java.lang.String

Static Constant.

Align images at the border.

type: java.lang.String
raw docstring

*-italic-actionclj

Static Constant.

The italic action identifier

type: java.lang.String

Static Constant.

The italic action identifier

type: java.lang.String
raw docstring

*-logical-style-actionclj

Static Constant.

The logical style choice action identifier The logical style is passed in as an argument

type: java.lang.String

Static Constant.

The logical style choice action identifier
     The logical style is passed in as an argument

type: java.lang.String
raw docstring

*-para-indent-leftclj

Static Constant.

The paragraph left indent action identifier

type: java.lang.String

Static Constant.

The paragraph left indent action identifier

type: java.lang.String
raw docstring

*-para-indent-rightclj

Static Constant.

The paragraph right indent action identifier

type: java.lang.String

Static Constant.

The paragraph right indent action identifier

type: java.lang.String
raw docstring

->html-editor-kitclj

(->html-editor-kit)

Constructor.

Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.

Constructor.

Constructs an HTMLEditorKit, creates a StyleContext,
 and loads the style sheet.
raw docstring

auto-form-submission?clj

(auto-form-submission? this)

Indicates whether an html form submission is processed automatically or only FormSubmitEvent is fired.

returns: true if html form submission is processed automatically, false otherwise. - boolean

Indicates whether an html form submission is processed automatically
 or only FormSubmitEvent is fired.

returns: true  if html form submission is processed automatically,
         false otherwise. - `boolean`
raw docstring

cloneclj

(clone this)

Creates a copy of the editor kit.

returns: the copy - java.lang.Object

Creates a copy of the editor kit.

returns: the copy - `java.lang.Object`
raw docstring

create-default-documentclj

(create-default-document this)

Create an uninitialized text storage model that is appropriate for this type of editor.

returns: the model - javax.swing.text.Document

Create an uninitialized text storage model
 that is appropriate for this type of editor.

returns: the model - `javax.swing.text.Document`
raw docstring

deinstallclj

(deinstall this c)

Called when the kit is being removed from the JEditorPane. This is used to unregister any listeners that were attached.

c - the JEditorPane - javax.swing.JEditorPane

Called when the kit is being removed from the
 JEditorPane.  This is used to unregister any
 listeners that were attached.

c - the JEditorPane - `javax.swing.JEditorPane`
raw docstring

get-accessible-contextclj

(get-accessible-context this)

returns the AccessibleContext associated with this editor kit

returns: the AccessibleContext associated with this editor kit - javax.accessibility.AccessibleContext

returns the AccessibleContext associated with this editor kit

returns: the AccessibleContext associated with this editor kit - `javax.accessibility.AccessibleContext`
raw docstring

get-actionsclj

(get-actions this)

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.

returns: the command list - javax.swing.Action[]

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.

returns: the command list - `javax.swing.Action[]`
raw docstring

get-content-typeclj

(get-content-type this)

Get the MIME type of the data that this kit represents support for. This kit supports the type text/html.

returns: the type - java.lang.String

Get the MIME type of the data that this
 kit represents support for.  This kit supports
 the type text/html.

returns: the type - `java.lang.String`
raw docstring

get-default-cursorclj

(get-default-cursor this)

Returns the default cursor.

returns: java.awt.Cursor

Returns the default cursor.

returns: `java.awt.Cursor`
raw docstring

get-input-attributesclj

(get-input-attributes this)

Gets the input attributes used for the styled editing actions.

returns: the attribute set - javax.swing.text.MutableAttributeSet

Gets the input attributes used for the styled
 editing actions.

returns: the attribute set - `javax.swing.text.MutableAttributeSet`
raw docstring

(get-link-cursor this)

Returns the cursor to use over hyper links.

returns: java.awt.Cursor

Returns the cursor to use over hyper links.

returns: `java.awt.Cursor`
raw docstring

get-style-sheetclj

(get-style-sheet this)

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.

returns: javax.swing.text.html.StyleSheet

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.

returns: `javax.swing.text.html.StyleSheet`
raw docstring

get-view-factoryclj

(get-view-factory this)

Fetch a factory that is suitable for producing views of any models that are produced by this kit.

returns: the factory - javax.swing.text.ViewFactory

Fetch a factory that is suitable for producing
 views of any models that are produced by this
 kit.

returns: the factory - `javax.swing.text.ViewFactory`
raw docstring

insert-htmlclj

(insert-html this doc offset html pop-depth push-depth insert-tag)

Inserts HTML into an existing document.

doc - the document to insert into - javax.swing.text.html.HTMLDocument offset - the offset to insert HTML at - int html - java.lang.String pop-depth - the number of ElementSpec.EndTagTypes to generate before inserting - int push-depth - the number of ElementSpec.StartTagTypes with a direction of ElementSpec.JoinNextDirection that should be generated before inserting, but after the end tags have been generated - int insert-tag - the first tag to start inserting into document - javax.swing.text.html.HTML$Tag

throws: java.lang.RuntimeException - (will eventually be a BadLocationException) if pos is invalid

Inserts HTML into an existing document.

doc - the document to insert into - `javax.swing.text.html.HTMLDocument`
offset - the offset to insert HTML at - `int`
html - `java.lang.String`
pop-depth - the number of ElementSpec.EndTagTypes to generate before inserting - `int`
push-depth - the number of ElementSpec.StartTagTypes with a direction of ElementSpec.JoinNextDirection that should be generated before inserting, but after the end tags have been generated - `int`
insert-tag - the first tag to start inserting into document - `javax.swing.text.html.HTML$Tag`

throws: java.lang.RuntimeException - (will eventually be a BadLocationException) if pos is invalid
raw docstring

installclj

(install this c)

Called when the kit is being installed into the a JEditorPane.

c - the JEditorPane - javax.swing.JEditorPane

Called when the kit is being installed into the
 a JEditorPane.

c - the JEditorPane - `javax.swing.JEditorPane`
raw docstring

readclj

(read this in doc pos)

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.

in - the stream to read from - java.io.Reader doc - the destination for the insertion - javax.swing.text.Document pos - the location in the document to place the content - int

throws: java.io.IOException - on any I/O error

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.

in - the stream to read from - `java.io.Reader`
doc - the destination for the insertion - `javax.swing.text.Document`
pos - the location in the document to place the content - `int`

throws: java.io.IOException - on any I/O error
raw docstring

set-auto-form-submissionclj

(set-auto-form-submission this is-auto)

Specifies if an html form submission is processed automatically or only FormSubmitEvent is fired. By default it is set to true.

is-auto - boolean

Specifies if an html form submission is processed
 automatically or only FormSubmitEvent is fired.
 By default it is set to true.

is-auto - `boolean`
raw docstring

set-default-cursorclj

(set-default-cursor this cursor)

Sets the default cursor.

cursor - java.awt.Cursor

Sets the default cursor.

cursor - `java.awt.Cursor`
raw docstring

(set-link-cursor this cursor)

Sets the cursor to use over links.

cursor - java.awt.Cursor

Sets the cursor to use over links.

cursor - `java.awt.Cursor`
raw docstring

set-style-sheetclj

(set-style-sheet this 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.

s - javax.swing.text.html.StyleSheet

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.

s - `javax.swing.text.html.StyleSheet`
raw docstring

writeclj

(write this out doc pos len)

Write content from a document to the given stream in a format appropriate for this kind of content handler.

out - the stream to write to - java.io.Writer doc - the source for the write - javax.swing.text.Document pos - the location in the document to fetch the content - int len - the amount to write out - int

throws: java.io.IOException - on any I/O error

Write content from a document to the given stream
 in a format appropriate for this kind of content handler.

out - the stream to write to - `java.io.Writer`
doc - the source for the write - `javax.swing.text.Document`
pos - the location in the document to fetch the content - `int`
len - the amount to write out - `int`

throws: java.io.IOException - on any I/O error
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close