# Class HTMLEditorKit.InsertHTMLTextAction

java.lang.Object
javax.swing.AbstractAction
javax.swing.text.TextAction
javax.swing.text.StyledEditorKit.StyledTextAction
javax.swing.text.html.HTMLEditorKit.HTMLTextAction
javax.swing.text.html.HTMLEditorKit.InsertHTMLTextAction

All Implemented Interfaces:
  `ActionListener, Serializable, Cloneable, EventListener, Action`

Enclosing class:
  `HTMLEditorKit`

public static class HTMLEditorKit.InsertHTMLTextAction extends HTMLEditorKit.HTMLTextAction
InsertHTMLTextAction can be used to insert an arbitrary string of HTML into an existing HTML document. At least two HTML.Tags need to be supplied. The first Tag, parentTag, identifies the parent in the document to add the elements to. The second tag, addTag, identifies the first tag that should be added to the document as seen in the HTML string. One important thing to remember, is that the parser is going to generate all the appropriate tags, even if they aren't in the HTML string passed in.

For example, lets say you wanted to create an action to insert a table into the body. The parentTag would be HTML.Tag.BODY, addTag would be HTML.Tag.TABLE, and the string could be something like <table><tr><td></td></tr></table>.

There is also an option to supply an alternate parentTag and addTag. These will be checked for if there is no parentTag at offset.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected HTML.Tag`
`addTag`
Tag in HTML to start adding tags from.
`protected HTML.Tag`
`alternateAddTag`
Alternate tag in HTML to start adding tags from if parentTag is not found and alternateParentTag is found.
`protected HTML.Tag`
`alternateParentTag`
Alternate Tag to check for in the document if parentTag is not found.
`protected String`
`html`
HTML to insert.
`protected HTML.Tag`
`parentTag`
Tag to check for in the document.

### Fields declared in class AbstractAction

`changeSupport, enabled`
Modifier and Type
Field
Description
`protected SwingPropertyChangeSupport`
`changeSupport`
If any `PropertyChangeListeners` have been registered, the `changeSupport` field describes them.
`protected boolean`
`enabled`
Specifies whether action is enabled; the default is true.

### Fields declared in interface Action

`ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON`
Modifier and Type
Field
Description
`static final String`
`ACCELERATOR_KEY`
The key used for storing a `KeyStroke` to be used as the accelerator for the action.
`static final String`
`ACTION_COMMAND_KEY`
The key used to determine the command `String` for the `ActionEvent` that will be created when an `Action` is going to be notified as the result of residing in a `Keymap` associated with a `JComponent`.
`static final String`
`DEFAULT`
Not currently used.
`static final String`
`DISPLAYED_MNEMONIC_INDEX_KEY`
The key used for storing an `Integer` that corresponds to the index in the text (identified by the `NAME` property) that the decoration for a mnemonic should be rendered at.
`static final String`
`LARGE_ICON_KEY`
The key used for storing an `Icon`.
`static final String`
`LONG_DESCRIPTION`
The key used for storing a longer `String` description for the action, could be used for context-sensitive help.
`static final String`
`MNEMONIC_KEY`
The key used for storing an `Integer` that corresponds to one of the `KeyEvent` key codes.
`static final String`
`NAME`
The key used for storing the `String` name for the action, used for a menu or button.
`static final String`
`SELECTED_KEY`
The key used for storing a `Boolean` that corresponds to the selected state.
`static final String`
`SHORT_DESCRIPTION`
The key used for storing a short `String` description for the action, used for tooltip text.
`static final String`
`SMALL_ICON`
The key used for storing a small `Icon`, such as `ImageIcon`.

## Constructor Summary

Constructors
Constructor
Description
`InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, HTML.Tag addTag)`
Creates a new InsertHTMLTextAction.
`InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, HTML.Tag addTag, HTML.Tag alternateParentTag, HTML.Tag alternateAddTag)`
Creates a new InsertHTMLTextAction.

## Method Summary

Modifier and Type
Method
Description
`void`
`actionPerformed(ActionEvent ae)`
Inserts the HTML into the document.
`protected void`
`insertAtBoundary(JEditorPane editor, HTMLDocument doc, int offset, Element insertElement, String html, HTML.Tag parentTag, HTML.Tag addTag)`
This is invoked when inserting at a boundary.
`protected void`
`insertAtBoundry(JEditorPane editor, HTMLDocument doc, int offset, Element insertElement, String html, HTML.Tag parentTag, HTML.Tag addTag)`
Deprecated.
As of Java 2 platform v1.3, use insertAtBoundary
`protected void`
`insertHTML(JEditorPane editor, HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag addTag)`
A cover for HTMLEditorKit.insertHTML.

### Methods declared in class HTMLEditorKit.HTMLTextAction

`elementCountToTag, findElementMatchingTag, getElementsAt, getHTMLDocument, getHTMLEditorKit`
Modifier and Type
Method
Description
`protected int`
`elementCountToTag(HTMLDocument doc, int offset, HTML.Tag tag)`
Returns number of elements, starting at the deepest leaf, needed to get to an element representing `tag`.
`protected Element`
`findElementMatchingTag(HTMLDocument doc, int offset, HTML.Tag tag)`
Returns the deepest element at `offset` matching `tag`.
`protected Element[]`
`getElementsAt(HTMLDocument doc, int offset)`
Returns an array of the Elements that contain `offset`.
`protected HTMLDocument`
`getHTMLDocument(JEditorPane e)`
Returns `HTMLDocument` of the given `JEditorPane`.
`protected HTMLEditorKit`
`getHTMLEditorKit(JEditorPane e)`
Returns `HTMLEditorKit` of the given `JEditorPane`.

### Methods declared in class StyledEditorKit.StyledTextAction

`getEditor, getStyledDocument, getStyledEditorKit, setCharacterAttributes, setParagraphAttributes`
Modifier and Type
Method
Description
`protected final JEditorPane`
`getEditor(ActionEvent e)`
Gets the target editor for an action.
`protected final StyledDocument`
`getStyledDocument(JEditorPane e)`
Gets the document associated with an editor pane.
`protected final StyledEditorKit`
`getStyledEditorKit(JEditorPane e)`
Gets the editor kit associated with an editor pane.
`protected final void`
`setCharacterAttributes(JEditorPane editor, AttributeSet attr, boolean replace)`
Applies the given attributes to character content.
`protected final void`
`setParagraphAttributes(JEditorPane editor, AttributeSet attr, boolean replace)`
Applies the given attributes to paragraphs.

### Methods declared in class TextAction

`augmentList, getFocusedComponent, getTextComponent`
Modifier and Type
Method
Description
`static final Action[]`
`augmentList(Action[] list1, Action[] list2)`
Takes one list of commands and augments it with another list of commands.
`protected final JTextComponent`
`getFocusedComponent()`
Fetches the text component that currently has focus.
`protected final JTextComponent`
`getTextComponent(ActionEvent e)`
Determines the component to use for the action.

### Methods declared in class AbstractAction

`addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled`
Modifier and Type
Method
Description
`void`
`addPropertyChangeListener(PropertyChangeListener listener)`
Adds a `PropertyChangeListener` to the listener list.
`protected Object`
`clone()`
Clones the abstract action.
`protected void`
`firePropertyChange(String propertyName, Object oldValue, Object newValue)`
Supports reporting bound property changes.
`Object[]`
`getKeys()`
Returns an array of `Object`s which are keys for which values have been set for this `AbstractAction`, or `null` if no keys have values set.
`PropertyChangeListener[]`
`getPropertyChangeListeners()`
Returns an array of all the `PropertyChangeListener`s added to this AbstractAction with addPropertyChangeListener().
`Object`
`getValue(String key)`
Gets the `Object` associated with the specified key.
`boolean`
`isEnabled()`
Returns true if the action is enabled.
`void`
`putValue(String key, Object newValue)`
Sets the `Value` associated with the specified key.
`void`
`removePropertyChangeListener(PropertyChangeListener listener)`
Removes a `PropertyChangeListener` from the listener list.
`void`
`setEnabled(boolean newValue)`
Sets whether the `Action` is enabled.

### Methods declared in class Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

### Methods declared in interface Action

`accept`
Modifier and Type
Method
Description
`default boolean`
`accept(Object sender)`
Determines whether the action should be performed with the specified sender object.

## Field Details

### html

protected String html
HTML to insert.

### parentTag

protected HTML.Tag parentTag
Tag to check for in the document.

### addTag

protected HTML.Tag addTag
Tag in HTML to start adding tags from.

### alternateParentTag

protected HTML.Tag alternateParentTag
Alternate Tag to check for in the document if parentTag is not found.

### alternateAddTag

protected HTML.Tag alternateAddTag
Alternate tag in HTML to start adding tags from if parentTag is not found and alternateParentTag is found.

## Constructor Details

### InsertHTMLTextAction

public InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, HTML.Tag addTag)
Creates a new InsertHTMLTextAction.

Parameters:
  `name` - a name of the action
  `html` - an HTML string
  `parentTag` - a parent tag
  `addTag` - the first tag to start inserting into document

### InsertHTMLTextAction

public InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, HTML.Tag addTag, HTML.Tag alternateParentTag, HTML.Tag alternateAddTag)
Creates a new InsertHTMLTextAction.

Parameters:
  `name` - a name of the action
  `html` - an HTML string
  `parentTag` - a parent tag
  `addTag` - the first tag to start inserting into document
  `alternateParentTag` - an alternative parent tag
  `alternateAddTag` - an alternative tag

## Method Details

### insertHTML

protected void insertHTML(JEditorPane editor, HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag addTag)
A cover for HTMLEditorKit.insertHTML. If an exception it thrown it is wrapped in a RuntimeException and thrown.

Parameters:
  `editor` - an instance of JEditorPane
  `doc` - the document to insert into
  `offset` - the offset to insert HTML at
  `html` - an HTML string
  `popDepth` - the number of ElementSpec.EndTagTypes to generate before inserting
  `pushDepth` - 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
  `addTag` - the first tag to start inserting into document

### insertAtBoundary

protected void insertAtBoundary(JEditorPane editor, HTMLDocument doc, int offset, Element insertElement, String html, HTML.Tag parentTag, HTML.Tag addTag)
This is invoked when inserting at a boundary. It determines the number of pops, and then the number of pushes that need to be performed, and then invokes insertHTML.

Parameters:
  `editor` - an instance of JEditorPane
  `doc` - an instance of HTMLDocument
  `offset` - an offset to start from
  `insertElement` - an instance of Element
  `html` - an HTML string
  `parentTag` - a parent tag
  `addTag` - the first tag to start inserting into document
Since:
  1.3

### insertAtBoundry

@Deprecated protected void insertAtBoundry(JEditorPane editor, HTMLDocument doc, int offset, Element insertElement, String html, HTML.Tag parentTag, HTML.Tag addTag)
Deprecated.
As of Java 2 platform v1.3, use insertAtBoundary
This is invoked when inserting at a boundary. It determines the number of pops, and then the number of pushes that need to be performed, and then invokes insertHTML.

Parameters:
  `editor` - an instance of JEditorPane
  `doc` - an instance of HTMLDocument
  `offset` - an offset to start from
  `insertElement` - an instance of Element
  `html` - an HTML string
  `parentTag` - a parent tag
  `addTag` - the first tag to start inserting into document

### actionPerformed

public void actionPerformed(ActionEvent ae)
Inserts the HTML into the document.

Parameters:
  `ae` - the event