Класс 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> уведомления действий прекращаются.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
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 |
Действие, выполняемое в ответ на разбор тега. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected MutableAttributeSet |
charAttr |
Текущий набор символьных атрибутов. |
protected Vector |
parseBuffer |
Буфер для построения элементов. |
Поля, объявленные в классе HTMLEditorKit.ParserCallback
IMPLIED | Модификатор и тип | Поле | Описание |
|---|---|---|
static final Object |
IMPLIED |
Передается как атрибут в наборе атрибутов, чтобы указать, что элемент является подразумеваемым. Например, строка '<>foo<\t>' содержит подразумеваемый элемент html и подразумеваемый элемент body. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
HTMLReader |
Создает HTMLReader с глубиной pop и push по умолчанию и без тега для вставки. |
HTMLReader |
Создает HTMLReader. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 |
Добавляет заданное содержимое в документ текстовой области. |
Методы, объявленные в классе HTMLEditorKit.ParserCallback
handleComment, handleError | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
handleComment |
Вызывается анализатором, чтобы сообщить об обнаружении блока комментария. |
void |
handleError |
Обратный вызов анализатора. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API будет удален в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
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— количество родительских элементов, на которое нужно спуститься (относительно popDepth) перед вставкой -
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— значение конца строки - С версии:
- 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, 2025, 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.