Spec-Zone.ru › OpenJDK 8

Класс HTMLDocument.HTMLReader

  • java.lang.Object
    • javax.swing.text.html.HTMLEditorKit.ParserCallback
      • javax.swing.text.html.HTMLDocument.HTMLReader
Вложенный класс:
HTMLDocument

public class HTMLDocument.HTMLReader
extends HTMLEditorKit.ParserCallback

Чтец HTML для загрузки HTML-документа со структурой HTML-элементов. Это набор обратных вызовов от парсера, реализованных для создания набора элементов, помеченных атрибутами. Парсер строит токены (ElementSpec), описывающие желаемую поддеревью элементов, и помещает их в документ под защитой блокировки записи, используя метод insert внешнего класса документа.

Чтец можно настроить, зарегистрировав действия (типа 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
class  HTMLDocument.HTMLReader.ParagraphAction
class  HTMLDocument.HTMLReader.PreAction
class  HTMLDocument.HTMLReader.SpecialAction
class  HTMLDocument.HTMLReader.TagAction

Действие, которое выполняется в ответ на парсинг тега.

Поля

Модификатор и тип Поле и описание
protected MutableAttributeSet charAttr
protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer

Поля, унаследованные от класса javax.swing.text.html.HTMLEditorKit.ParserCallback

IMPLIED

Конструкторы

Конструктор и описание
HTMLReader(int offset)
HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)

Методы

Модификатор и тип Метод и описание
protected void addContent(char[] data, int offs, int length)

Добавляет некоторый текст с текущими атрибутами символов.

protected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)

Добавляет некоторый текст с текущими атрибутами символов.

protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)

Добавляет содержимое, в основном полностью заданное в наборе атрибутов.

protected void blockClose(HTML.Tag t)

Добавляет инструкцию в буфер разбора, чтобы закрыть элемент блока заданного типа.

protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)

Добавляет инструкцию в буфер разбора, чтобы создать элемент блока с заданными атрибутами.

void flush()

Последний метод, вызываемый на ридере.

void handleComment(char[] data, int pos)
void handleEndOfLineString(String eol)

Вызывается после того, как поток был проанализирован, но перед flush.

void handleEndTag(HTML.Tag t, int pos)

Обратный вызов от парсера.

void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)

Обратный вызов от парсера.

void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)

Обратный вызов от парсера.

void handleText(char[] data, int pos)

Вызывается парсером для указания, что был встречен блок текста.

protected void popCharacterStyle()

Извлекает ранее помещенный стиль символов из стека, чтобы вернуться к предыдущему стилю.

protected void preContent(char[] data)

Добавляет заданное содержимое, которое было встречено в элементе PRE.

protected void pushCharacterStyle()

Помещает текущий стиль символов в стек в качестве подготовки к формированию нового вложенного стиля символов.

protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)

Регистрирует обработчик для заданного тега.

protected void textAreaContent(char[] data)

Добавляет заданное содержимое в документ текстового поля.

Методы, унаследованные от класса javax.swing.text.html.HTMLEditorKit.ParserCallback

handleError

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

parseBuffer

protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer

charAttr

protected MutableAttributeSet charAttr

Конструкторы

HTMLReader

public HTMLReader(int offset)

HTMLReader

public HTMLReader(int offset,
                  int popDepth,
                  int pushDepth,
                  HTML.Tag insertTag)

Методы

flush

public void flush()
           throws BadLocationException

Последний метод, вызываемый на ридере. Он позволяет сбросить любые ожидающие изменения в документ. Поскольку в данный момент загрузка происходит синхронно, весь набор изменений помещается в этом месте.

Overrides:
flush в классе HTMLEditorKit.ParserCallback
Throws:
BadLocationException

handleText

public void handleText(char[] data,
                       int pos)

Вызывается парсером для указания, что был встречен блок текста.

Overrides:
handleText в классе HTMLEditorKit.ParserCallback

handleStartTag

public void handleStartTag(HTML.Tag t,
                           MutableAttributeSet a,
                           int pos)

Обратный вызов от парсера. Маршрут к соответствующему обработчику для тега.

Overrides:
handleStartTag в классе HTMLEditorKit.ParserCallback

handleComment

public void handleComment(char[] data,
                          int pos)
Overrides:
handleComment в классе HTMLEditorKit.ParserCallback

handleEndTag

public void handleEndTag(HTML.Tag t,
                         int pos)

Обратный вызов от парсера. Маршрут к соответствующему обработчику для тега.

Overrides:
handleEndTag в классе HTMLEditorKit.ParserCallback

handleSimpleTag

public void handleSimpleTag(HTML.Tag t,
                            MutableAttributeSet a,
                            int pos)

Обратный вызов от парсера. Маршрут к соответствующему обработчику для тега.

Overrides:
handleSimpleTag в классе HTMLEditorKit.ParserCallback

handleEndOfLineString

public void handleEndOfLineString(String eol)

Вызывается после анализа потока, но перед flush. eol будет одним из \n, \r или \r\n, в зависимости от того, какой из них был встречен чаще всего при анализе потока.

Overrides:
handleEndOfLineString в классе HTMLEditorKit.ParserCallback
Since:
1.3

registerTag

protected void registerTag(HTML.Tag t,
                           HTMLDocument.HTMLReader.TagAction a)

Регистрирует обработчик для заданного тега. По умолчанию все известные теги будут зарегистрированы. Это можно использовать для изменения обработки определенного тега или для добавления поддержки пользовательских тегов.

pushCharacterStyle

protected void pushCharacterStyle()

Помещает текущий стиль символов в стек в качестве подготовки к формированию нового вложенного стиля символов.

popCharacterStyle

protected void popCharacterStyle()

Извлекает ранее помещенный стиль символов из стека, чтобы вернуться к предыдущему стилю.

textAreaContent

protected void textAreaContent(char[] data)

Добавляет заданное содержимое в документ текстового поля. Этот метод вызывается, когда мы находимся в контексте текстового поля. Поэтому весь видимый текст относится к текстовому полю и, следовательно, добавляется в TextAreaDocument, связанный с текстовым полем.

preContent

protected void preContent(char[] data)

Добавляет заданное содержимое, которое было встречено в элементе PRE. Этот метод синтезирует строки, чтобы содержать последовательности текста, и вызывает addContent для фактического добавления текста.

blockOpen

protected void blockOpen(HTML.Tag t,
                         MutableAttributeSet attr)

Добавляет инструкцию в буфер разбора, чтобы создать элемент блока с заданными атрибутами.

blockClose

protected void blockClose(HTML.Tag t)

Добавляет инструкцию в буфер разбора, чтобы закрыть элемент блока заданного типа.

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)

Добавляет содержимое, в основном полностью заданное в наборе атрибутов.

© 1993, 2020, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API