Класс 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<DefaultStyledDocument.ElementSpec> |
parseBuffer |
Буфер для дальнейшего построения элементов. |
Поля, объявленные в классе javax.swing.text.html.HTMLEditorKit.ParserCallback
IMPLIED
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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 |
Добавляет заданное содержимое в документ 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- количество предков для спуска (относительно 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- значение 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, 2021, 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/17/docs/api/java.desktop/javax/swing/text/html/HTMLDocument.HTMLReader.html