Класс HTMLDocument.HTMLReader
- Вложенный класс:
HTMLDocument
public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
Читатель может быть настроен путём регистрации действий (типа HTMLDocument.HTMLReader.TagAction), описывающих, как обработать действие. Идея, стоящая за предоставленными действиями, заключается в том, что наиболее естественные операции редактирования текста могут быть предоставлены, если структура элементов сводится к абзацам с последовательностями определенного стиля. Некоторые вещи более естественно задаются структурно, поэтому произвольная структура должна быть разрешена выше абзацев, но потребует редактирования с помощью структурных действий. Это означает, что некоторые из HTML-элементов, указанные в анализируемом потоке, будут преобразованы в атрибуты, а в некоторых случаях абзацы будут синтезированы. Когда HTML-элементы были преобразованы в атрибуты, ключ атрибута будет типа HTML.Tag, а значение — типа AttributeSet, чтобы не потерять никакой информации. Это позволяет многим существующим действиям работать, чтобы пользователь мог вводить текст, нажимать клавишу ввода, клавиши Backspace, Delete и т. д., и получать разумный результат. Можно создавать выделения, применять или удалять атрибуты и т. д. Учитывая это, работу читателя можно разделить на следующие виды задач:
- Блок
- Построить структуру так, как это указано в потоке. Это создаёт элементы, содержащие другие элементы.
- Абзац
- Подобно блоку, за исключением того, что ожидается, что элемент будет использоваться с представлением абзаца, поэтому элемент абзаца не потребуется синтезировать.
- Символ
- Внести элемент в качестве атрибута, который будет начинаться и заканчиваться в произвольных местах текста. В конечном итоге это будет смешано в последовательность текста со всеми текущими сглаженными HTML-элементами символов.
- Специальный
- Создать встроенный графический элемент.
- Форма
- Создать элемент, похожий на встроенный графический элемент, но также связанный с моделью компонентов.
- Скрытый
- Создать элемент, скрытый от просмотра при просмотре документа только для чтения и видимый при редактировании документа. Это полезно, чтобы модель не теряла информацию, и используется для хранения таких вещей, как комментарии и нераспознанные теги.
В настоящее время <APPLET>, <PARAM>, <MAP>, <AREA>, <LINK>, <SCRIPT> и <STYLE> не поддерживаются.
Назначение описанных действий показано в следующей таблице для тегов, определённых в HTML.Tag.
| Тег | Действие |
|---|---|
HTML.Tag.A |
CharacterAction |
HTML.Tag.ADDRESS |
CharacterAction |
HTML.Tag.APPLET |
HiddenAction |
HTML.Tag.AREA |
AreaAction |
HTML.Tag.B |
CharacterAction |
HTML.Tag.BASE |
BaseAction |
HTML.Tag.BASEFONT |
CharacterAction |
HTML.Tag.BIG |
CharacterAction |
HTML.Tag.BLOCKQUOTE |
BlockAction |
HTML.Tag.BODY |
BlockAction |
HTML.Tag.BR |
SpecialAction |
HTML.Tag.CAPTION |
BlockAction |
HTML.Tag.CENTER |
BlockAction |
HTML.Tag.CITE |
CharacterAction |
HTML.Tag.CODE |
CharacterAction |
HTML.Tag.DD |
BlockAction |
HTML.Tag.DFN |
CharacterAction |
HTML.Tag.DIR |
BlockAction |
HTML.Tag.DIV |
BlockAction |
HTML.Tag.DL |
BlockAction |
HTML.Tag.DT |
ParagraphAction |
HTML.Tag.EM |
CharacterAction |
HTML.Tag.FONT |
CharacterAction |
HTML.Tag.FORM |
С 1.4 BlockAction |
HTML.Tag.FRAME |
SpecialAction |
HTML.Tag.FRAMESET |
BlockAction |
HTML.Tag.H1 |
ParagraphAction |
HTML.Tag.H2 |
ParagraphAction |
HTML.Tag.H3 |
ParagraphAction |
HTML.Tag.H4 |
ParagraphAction |
HTML.Tag.H5 |
ParagraphAction |
HTML.Tag.H6 |
ParagraphAction |
HTML.Tag.HEAD |
HeadAction |
HTML.Tag.HR |
SpecialAction |
HTML.Tag.HTML |
BlockAction |
HTML.Tag.I |
CharacterAction |
HTML.Tag.IMG |
SpecialAction |
HTML.Tag.INPUT |
FormAction |
HTML.Tag.ISINDEX |
IsndexAction |
HTML.Tag.KBD |
CharacterAction |
HTML.Tag.LI |
BlockAction |
HTML.Tag.LINK |
LinkAction |
HTML.Tag.MAP |
MapAction |
HTML.Tag.MENU |
BlockAction |
HTML.Tag.META |
MetaAction |
HTML.Tag.NOFRAMES |
BlockAction |
HTML.Tag.OBJECT |
SpecialAction |
HTML.Tag.OL |
BlockAction |
HTML.Tag.OPTION |
FormAction |
HTML.Tag.P |
ParagraphAction |
HTML.Tag.PARAM |
HiddenAction |
HTML.Tag.PRE |
PreAction |
HTML.Tag.SAMP |
CharacterAction |
HTML.Tag.SCRIPT |
HiddenAction |
HTML.Tag.SELECT |
FormAction |
HTML.Tag.SMALL |
CharacterAction |
HTML.Tag.STRIKE |
CharacterAction |
HTML.Tag.S |
CharacterAction |
HTML.Tag.STRONG |
CharacterAction |
HTML.Tag.STYLE |
StyleAction |
HTML.Tag.SUB |
CharacterAction |
HTML.Tag.SUP |
CharacterAction |
HTML.Tag.TABLE |
BlockAction |
HTML.Tag.TD |
BlockAction |
HTML.Tag.TEXTAREA |
FormAction |
HTML.Tag.TH |
BlockAction |
HTML.Tag.TITLE |
TitleAction |
HTML.Tag.TR |
BlockAction |
HTML.Tag.TT |
CharacterAction |
HTML.Tag.U |
CharacterAction |
HTML.Tag.UL |
BlockAction |
HTML.Tag.VAR |
CharacterAction |
После обнаружения </html> действия больше не уведомляются.
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
class |
HTMLDocument.HTMLReader.BlockAction |
Действие по умолчанию для обработки задачи «Блок» читателя. |
class |
HTMLDocument.HTMLReader.CharacterAction |
Действие по умолчанию для обработки задачи «Символ» читателя. |
class |
HTMLDocument.HTMLReader.FormAction |
Действие для поддержки форм путём создания всех элементов, используемых для представления элементов управления формой. |
class |
HTMLDocument.HTMLReader.HiddenAction |
Действие по умолчанию для обработки задачи «Скрытый» читателя. |
class |
HTMLDocument.HTMLReader.IsindexAction |
Действие по умолчанию для обработки задачи «Isindex» читателя. |
class |
HTMLDocument.HTMLReader.ParagraphAction |
Действие по умолчанию для обработки задачи «Абзац» читателя. |
class |
HTMLDocument.HTMLReader.PreAction |
Действие по умолчанию для обработки задачи «Блок PRE» читателя. |
class |
HTMLDocument.HTMLReader.SpecialAction |
Действие по умолчанию для обработки задачи «Специальный» читателя. |
class |
HTMLDocument.HTMLReader.TagAction |
Действие, выполняемое в ответ на разбор тега. |
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
protected MutableAttributeSet |
charAttr |
Текущий набор атрибутов символа. |
protected Vector |
parseBuffer |
Буфер для продолжения построения элементов. |
Поля, объявленные в классе javax.swing.text.html.HTMLEditorKit.ParserCallback
IMPLIED
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
HTMLReader |
Создаёт HTMLReader с использованием стандартной глубины стека для добавления и удаления элементов и без тега для вставки. |
HTMLReader |
Создаёт HTMLReader. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
addContent |
Добавляет текст с текущими атрибутами символов. |
protected void |
addContent |
Добавляет текст с текущими атрибутами символов. |
protected void |
addSpecialElement |
Добавляет содержимое, полностью заданное в наборе атрибутов. |
protected void |
blockClose |
Добавляет в буфер разбора инструкцию о закрытии элемента блока заданного типа. |
protected void |
blockOpen |
Добавляет в буфер разбора инструкцию о создании элемента блока с заданными атрибутами. |
void |
flush() |
Последний вызываемый метод читателя. |
void |
handleEndOfLineString |
Вызывается после разбора потока, но перед flush. |
void |
handleEndTag |
Обратный вызов от парсера. |
void |
handleSimpleTag |
Обратный вызов от парсера. |
void |
handleStartTag |
Обратный вызов от парсера. |
void |
handleText |
Вызывается парсером для указания обнаружения блока текста. |
protected void |
popCharacterStyle() |
Извлекает ранее добавленный стиль символов из стека для возврата к предыдущему стилю. |
protected void |
preContent |
Добавляет заданное содержимое, обнаруженное в элементе PRE. |
protected void |
pushCharacterStyle() |
Добавляет текущий стиль символов в стек для подготовки к формированию нового вложенного стиля символов. |
protected void |
registerTag |
Регистрирует обработчик для данного тега. |
protected void |
textAreaContent |
Добавляет заданное содержимое в документ textarea. |
Методы, объявленные в классе javax.swing.text.html.HTMLEditorKit.ParserCallback
handleComment, handleError
Подробное описание полей
parseBuffer
protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer
charAttr
protected MutableAttributeSet charAttr
Подробное описание конструкторов
HTMLReader
public HTMLReader(int offset)
- Параметры:
-
offset- начальный смещение
HTMLReader
public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
- Параметры:
-
offset- начальный смещение -
popDepth- глубина поднятия перед добавлением нового элемента -
pushDepth- глубина спуска перед добавлением нового элемента -
insertTag- тег для вставки (может быть null)
Подробное описание методов
flush
public void flush() throws BadLocationException
- Переопределяет:
-
flushв классеHTMLEditorKit.ParserCallback - Исключения:
-
BadLocationException- если заданная позиция не представляет действительное местоположение в ассоциированном документе.
handleText
public void handleText(char[] data, int pos)
- Переопределяет:
-
handleTextв классеHTMLEditorKit.ParserCallback - Параметры:
-
data- данные -
pos- позиция
handleStartTag
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
- Переопределяет:
-
handleStartTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t- HTML-тег -
a- набор атрибутов -
pos- позиция
handleEndTag
public void handleEndTag(HTML.Tag t, int pos)
- Переопределяет:
-
handleEndTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t- HTML-тег -
pos- позиция
handleSimpleTag
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
- Переопределяет:
-
handleSimpleTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t- HTML-тег -
a- набор атрибутов -
pos- позиция
handleEndOfLineString
public void handleEndOfLineString(String eol)
flush. eol будет одним из \n, \r или \r\n, в зависимости от того, какой встречается чаще при анализе потока.- Переопределяет:
-
handleEndOfLineStringв классеHTMLEditorKit.ParserCallback - Параметры:
-
eol- значение eol - С момента:
- 1.3
registerTag
protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
- Параметры:
-
t- HTML-тег -
a- обработчик тега
pushCharacterStyle
protected void pushCharacterStyle()
popCharacterStyle
protected void popCharacterStyle()
textAreaContent
protected void textAreaContent(char[] data)
- Параметры:
-
data- заданное содержимое
preContent
protected void preContent(char[] data)
- Параметры:
-
data- заданное содержимое
blockOpen
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
- Параметры:
-
t- HTML-тег -
attr- набор атрибутов
blockClose
protected void blockClose(HTML.Tag t)
- Параметры:
-
t- HTML-тег
addContent
protected void addContent(char[] data, int offs, int length)
- Параметры:
-
data- добавляемый текст -
offs- начальный смещение -
length- длина
addContent
protected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)
- Параметры:
-
data- добавляемый текст -
offs- начальный смещение -
length- длина -
generateImpliedPIfNecessary- генерировать ли неявные абзацы
addSpecialElement
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
- Параметры:
-
t- HTML-тег -
a- набор атрибутов
© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/text/html/HTMLDocument.HTMLReader.html