Spec-Zone.ru › OpenJDK 17

Класс AsyncBoxView

java.lang.Object
javax.swing.text.View
javax.swing.text.AsyncBoxView
Все реализованные интерфейсы:
SwingConstants
public class AsyncBoxView extends View
Ящик, выполняющий выкладку асинхронно. Это полезно для поддержания работы потока событий GUI, не выполняя выкладку в нём. Выкладка выполняется на уровне операций над дочерними представлениями. После каждого обращения к дочернему представлению для какой-либо части выкладки (потенциально длительной операции) оставшиеся задачи могут быть отброшены или может быть взята на себя новая задача с более высоким приоритетом (например, для обработки синхронного запроса или видимой области).

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

С момента:
1.3

Краткое описание вложенных классов

Модификатор и тип Класс Описание
class  AsyncBoxView.ChildLocator
Класс для управления эффективным положением дочерних представлений в локализованной области во время изменений, происходящих вокруг локализованной области.
class  AsyncBoxView.ChildState
Запись, представляющая состояние выкладки дочернего представления.

Краткое описание полей

Модификатор и тип Поле Описание
protected AsyncBoxView.ChildLocator locator
Объект, управляющий смещениями дочерних элементов.

Поля, объявленные в классе javax.swing.text.View

BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS

Поля, объявленные в интерфейсе javax.swing.SwingConstants

BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST

Краткое описание конструкторов

Конструктор Описание
AsyncBoxView(Element elem, int axis)
Создаёт представление ящика, выполняющее асинхронную выкладку.

Краткое описание методов

Модификатор и тип Метод Описание
protected AsyncBoxView.ChildState createChildState(View v)
Новые записи ChildState создаются с помощью этого метода, чтобы разрешить подклассам расширять записи ChildState для выполнения/хранения большего объёма.
protected void flushRequirementChanges()
Опубликовать изменения в настройках вверх к родительскому представлению.
float getBottomInset()
Получить нижнюю часть отступа вокруг представления.
Shape getChildAllocation(int index, Shape a)
Получает выделение для данного дочернего представления.
protected AsyncBoxView.ChildState getChildState(int index)
Получить объект, представляющий состояние выкладки дочернего элемента по заданному индексу.
protected boolean getEstimatedMajorSpan()
Определяет, оценивается ли основная длина в настоящее время?
protected float getInsetSpan(int axis)
Получить отрезок по оси, занимаемый отступами.
protected LayoutQueue getLayoutQueue()
Получить очередь для использования в выкладке.
float getLeftInset()
Получить левую часть отступа вокруг представления.
int getMajorAxis()
Получить главную ось (ось, по которой дочерние элементы выкладываются).
float getMaximumSpan(int axis)
Определяет максимальную длину для этого представления по оси.
float getMinimumSpan(int axis)
Определяет минимальную длину для этого представления по оси.
int getMinorAxis()
Получить второстепенную ось (ось, ортогональную оси выкладки).
int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
Предоставляет способ определения следующего визуально представленного местоположения модели, в котором можно разместить курсор.
float getPreferredSpan(int axis)
Определяет предпочтительную длину для этого представления по оси.
float getRightInset()
Получить правую часть отступа вокруг представления.
float getTopInset()
Получить верхнюю часть отступа вокруг представления.
View getView(int n)
Получить n-е дочернее представление.
int getViewCount()
Возвращает количество представлений в этом представлении.
int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, представляющий заданную позицию в модели.
protected int getViewIndexAtPosition(int pos, Position.Bias b)
Получает индекс дочернего представления, представляющий заданную позицию в модели.
protected void loadChildren(ViewFactory f)
Загружает все дочерние элементы для инициализации представления.
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Требования изменились по главной оси.
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
Требования изменились по второстепенной оси.
Shape modelToView(int pos, Shape a, Position.Bias b)
Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, отображённого на него.
void paint(Graphics g, Shape alloc)
Отобразить представление с использованием заданного выделения и поверхности рендеринга.
void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызывать это у родителя, чтобы указать, что предпочтение изменилось и должно быть переоценено для выкладки.
void replace(int offset, int length, View[] views)
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния для дочерних элементов.
void setBottomInset(float i)
Установить нижнюю часть отступа вокруг представления.
protected void setEstimatedMajorSpan(boolean isEstimated)
Установить свойство estimatedMajorSpan, которое определяет, должно ли значение основной длины рассматриваться как оцениваемое.
void setLeftInset(float i)
Установить левую часть отступа вокруг представления.
void setParent(View parent)
Установить родителя представления.
void setRightInset(float i)
Установить правую часть отступа вокруг представления.
void setSize(float width, float height)
Установить размер представления.
void setTopInset(float i)
Установить верхнюю часть отступа вокруг представления.
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновить выкладку в ответ на получение уведомления о изменении из модели.
int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.

Методы, объявленные в классе javax.swing.text.View

append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, remove, removeAll, removeUpdate, updateChildren, viewToModel

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

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

Подробное описание полей

locator

protected AsyncBoxView.ChildLocator locator
Объект, управляющий смещениями дочерних элементов. Вся блокировка для управления расположением дочерних элементов находится в этом объекте.

Подробное описание конструкторов

AsyncBoxView

public AsyncBoxView(Element elem, int axis)
Создаёт представление области, выполняющее разметку асинхронно.
Параметры:
elem - элемент модели, который нужно отобразить
axis - ось, вдоль которой будут выкладываться элементы. Может быть X_AXIS или Y_AXIS.

Подробное описание методов

getMajorAxis

public int getMajorAxis()
Получить главную ось (ось, вдоль которой выкладываются дочерние элементы). Возвращаемое значение — X_AXIS или Y_AXIS.
Возвращает:
главную ось

getMinorAxis

public int getMinorAxis()
Получить второстепенную ось (ось, перпендикулярную оси выкладки). Возвращаемое значение — X_AXIS или Y_AXIS.
Возвращает:
второстепенную ось

getTopInset

public float getTopInset()
Получить верхнюю часть отступа вокруг представления.
Возвращает:
верхнюю часть отступа вокруг представления

setTopInset

public void setTopInset(float i)
Установить верхнюю часть отступа вокруг представления.
Параметры:
i - значение отступа

getBottomInset

public float getBottomInset()
Получить нижнюю часть отступа вокруг представления.
Возвращает:
нижнюю часть отступа вокруг представления

setBottomInset

public void setBottomInset(float i)
Установить нижнюю часть отступа вокруг представления.
Параметры:
i - значение отступа

getLeftInset

public float getLeftInset()
Получить левую часть отступа вокруг представления.
Возвращает:
левую часть отступа вокруг представления

setLeftInset

public void setLeftInset(float i)
Установить левую часть отступа вокруг представления.
Параметры:
i - значение отступа

getRightInset

public float getRightInset()
Получить правую часть отступа вокруг представления.
Возвращает:
правую часть отступа вокруг представления

setRightInset

public void setRightInset(float i)
Установить правую часть отступа вокруг представления.
Параметры:
i - значение отступа

getInsetSpan

protected float getInsetSpan(int axis)
Получить интервал по оси, занимаемый отступами.
Параметры:
axis - ось для определения суммарного отступа (X_AXIS или Y_AXIS).
Возвращает:
интервал по оси, занимаемый отступами
С:
1.4

setEstimatedMajorSpan

protected void setEstimatedMajorSpan(boolean isEstimated)
Устанавливает свойство estimatedMajorSpan, определяющее, считается ли основной интервал приблизительным. Если это свойство true, то изменение размера по основной оси изменит требования по основной оси, и инкрементные изменения будут проигнорированы, пока все дочерние элементы не будут обновлены (что автоматически установит свойство в false). Если свойство false, то значение majorSpan будет считаться точным, и инкрементные изменения будут добавлены в итог по мере вычисления.
Параметры:
isEstimated - новое значение для свойства estimatedMajorSpan
С:
1.4

getEstimatedMajorSpan

protected boolean getEstimatedMajorSpan()
Является ли основной интервал приблизительным?
Возвращает:
является ли основной интервал приблизительным
С:
1.4

getChildState

protected AsyncBoxView.ChildState getChildState(int index)
Получить объект, представляющий состояние разметки дочернего элемента по заданному индексу.
Параметры:
index - индекс дочернего элемента. Должно быть значение ≥ 0 и < getViewCount().
Возвращает:
объект, представляющий состояние разметки дочернего элемента по заданному индексу

getLayoutQueue

protected LayoutQueue getLayoutQueue()
Получить очередь для разметки.
Возвращает:
очередь для разметки

createChildState

protected AsyncBoxView.ChildState createChildState(View v)
Новые записи ChildState создаются с помощью этого метода, что позволяет подклассам расширять записи ChildState, чтобы выполнять/хранить больше информации.
Параметры:
v - представление
Возвращает:
новое состояние дочернего элемента

majorRequirementChange

protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Требования по основной оси изменились. Этот метод вызывается потоком, выполняющим разметку, для данного объекта ChildState, когда он завершил получение новых предпочтений представлений дочерних элементов. Обычно это поток разметки, но может быть потоком событий, если он пытается обновить что-то немедленно (например, выполнить преобразование модель/представление).

Этот метод реализован для обозначения изменения основной оси, чтобы будущая проверка необходимости публикации требований в родительское представление учитывала основную ось. Если интервал по основной оси не является приблизительным, он обновляется заданной разностью, чтобы отразить инкрементное изменение. Разница игнорируется, если интервал по основной оси является приблизительным.

Параметры:
cs - состояние дочернего элемента
delta - разница

minorRequirementChange

protected void minorRequirementChange(AsyncBoxView.ChildState cs)
Требования по второстепенной оси изменились. Этот метод вызывается потоком, выполняющим разметку, для данного объекта ChildState, когда он завершил получение новых предпочтений представлений дочерних элементов. Обычно это поток разметки, но может быть потоком GUI, если он пытается обновить что-то немедленно (например, выполнить преобразование модель/представление).
Параметры:
cs - состояние дочернего элемента

flushRequirementChanges

protected void flushRequirementChanges()
Опубликовать изменения в предпочтениях вверх до родительского представления. Обычно вызывается потоком разметки.

replace

public void replace(int offset, int length, View[] views)
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния для дочерних элементов. Ожидается, что вызов будет производиться при наличии записи блокировки в модели, чтобы взаимодействие с потоком разметки не происходило (т.е. поток разметки приобретает чтение блокировки перед выполнением любых действий).
Переопределяет:
replace в классе View
Параметры:
offset - начальное смещение в дочерние представления ≥ 0
length - количество существующих представлений для замены ≥ 0
views - дочерние представления для вставки

loadChildren

protected void loadChildren(ViewFactory f)
Загружает все дочерние элементы для инициализации представления. Вызывается методом setParent. Подклассы могут переопределить этот метод, чтобы инициализировать свои дочерние представления другим способом. По умолчанию создаётся представление дочернего элемента для каждого дочернего элемента.

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

Параметры:
f - фабрика представлений
См. также:
  • setParent(javax.swing.text.View)

getViewIndexAtPosition

protected int getViewIndexAtPosition(int pos, Position.Bias b)
Возвращает индекс дочернего представления, представляющего заданную позицию в модели. Реализовано для извлечения представления в случае, когда для каждого дочернего элемента есть представление дочернего элемента.
Параметры:
pos - позиция ≥ 0
b - смещение позиции
Возвращает:
индекс представления, представляющего заданную позицию, или -1, если такое представление отсутствует

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет макет в ответ на получение уведомления о изменении от модели. Это реализовано для того, чтобы отметить изменение в ChildLocator, чтобы смещения дочерних элементов были вычислены правильно.
Overrides:
updateLayout в классе View
Parameters:
ec - изменения элемента, за который отвечает эта область просмотра (может быть null, если изменений не было).
e - информация о изменении из связанного документа
a - текущее распределение области просмотра
See Also:
  • View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

setParent

public void setParent(View parent)
Устанавливает родителя области просмотра. Это переопределено, чтобы обеспечить поведение суперкласса, а также вызвать метод loadChildren, если у этой области просмотра ещё нет дочерних элементов. Дочерние элементы не должны загружаться в конструкторе, потому что акт установки родителя может заставить их попытаться перейти по иерархии (например, получить контейнер-хост). Если у этой области просмотра есть дочерние элементы (область просмотра перемещается из одного места в иерархии области просмотра в другое), метод loadChildren не будет вызываться.
Overrides:
setParent в классе View
Parameters:
parent - родитель области просмотра, null если нет

preferenceChanged

public void preferenceChanged(View child, boolean width, boolean height)
Дочерние области просмотра могут вызывать это у родителя, чтобы указать, что предпочтения изменились и должны быть перерассмотрены для макета. Это переопределено для очереди новой работы в потоке макета. Этот метод получает сообщения из нескольких потоков через дочерние элементы.
Overrides:
preferenceChanged в классе View
Parameters:
child - дочерняя область просмотра
width - true, если изменилось предпочтение по ширине
height - true, если изменилось предпочтение по высоте
See Also:
  • JComponent.revalidate()

setSize

public void setSize(float width, float height)
Устанавливает размер области просмотра. Это должно привести к макетированию области просмотра, если область просмотра кэширует какую-либо информацию о макете.

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

Overrides:
setSize в классе View
Parameters:
width - ширина >= 0
height - высота >= 0

paint

public void paint(Graphics g, Shape alloc)
Отображает область просмотра с использованием заданного распределения и поверхности рендеринга.

Это реализовано для определения того, обновлена ли желаемая область для рендеринга (т.е. область без обрезки). Если обновлена, дочерние элементы отображаются. Если не обновлена, задача построения желаемой области помещается в очередь макета в качестве задачи высокой приоритетности. Это позволяет потоку событий перемещаться путем рендеринга, если он готов, и откладывать его до более позднего времени, если он не готов (поскольку запросы рендеринга могут быть повторно запланированы).

Specified by:
paint в классе View
Parameters:
g - поверхность рендеринга для использования
alloc - выделенная область для рендеринга
See Also:
  • View.paint(java.awt.Graphics, java.awt.Shape)

getPreferredSpan

public float getPreferredSpan(int axis)
Определяет предпочтительный размах для этой области просмотра вдоль оси.
Specified by:
getPreferredSpan в классе View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
размах, который область просмотра хотела бы отобразить >= 0. Как правило, области просмотра сообщается отобразить размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разрыв области просмотра.
Throws:
IllegalArgumentException - для неверного типа оси

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальный размах для этой области просмотра вдоль оси.
Overrides:
getMinimumSpan в классе View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
размах, который область просмотра хотела бы отобразить >= 0. Как правило, области просмотра сообщается отобразить размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разрыв области просмотра.
Throws:
IllegalArgumentException - для неверного типа оси
See Also:
  • View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
Определяет максимальный размах для этой области просмотра вдоль оси.
Overrides:
getMaximumSpan в классе View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
размах, который область просмотра хотела бы отобразить >= 0. Как правило, области просмотра сообщается отобразить размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разрыв области просмотра.
Throws:
IllegalArgumentException - для неверного типа оси
See Also:
  • View.getPreferredSpan(int)

getViewCount

public int getViewCount()
Возвращает количество областей просмотра в этой области просмотра. Поскольку по умолчанию это не составная область просмотра, возвращается 0.
Overrides:
getViewCount в классе View
Returns:
количество областей просмотра >= 0
See Also:
  • View.getViewCount()

getView

public View getView(int n)
Получает n-ую дочернюю область просмотра. Поскольку по умолчанию нет дочерних элементов, это возвращает null.
Overrides:
getView в классе View
Parameters:
n - номер области просмотра для получения, >= 0 && < getViewCount()
Returns:
область просмотра

getChildAllocation

public Shape getChildAllocation(int index, Shape a)
Получает распределение для заданной дочерней области просмотра. Это позволяет узнать, где расположены различные области просмотра, не предполагая, что области просмотра хранят свое расположение. Возвращает null, поскольку по умолчанию нет дочерних областей просмотра.
Overrides:
getChildAllocation в классе View
Parameters:
index - индекс дочернего элемента, >= 0 && < getViewCount()
a - распределение для этой области просмотра.
Returns:
распределение для дочернего элемента

getViewIndex

public int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочерней области просмотра, представляющей заданную позицию в модели. По умолчанию у области просмотра нет дочерних элементов, поэтому эта реализация возвращает -1, чтобы указать, что для любой позиции нет допустимого индекса дочернего элемента.
Overrides:
getViewIndex в классе View
Parameters:
pos - позиция >= 0
b - смещение
Returns:
индекс области просмотра, представляющей заданную позицию, или -1, если никакая область просмотра не представляет эту позицию
Since:
1.3

modelToView

public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
Обеспечивает отображение из координатного пространства модели документа в координатное пространство области просмотра, отображаемой на нее.
Specified by:
modelToView в классе View
Parameters:
pos - позиция для преобразования >= 0
a - выделенная область для рендеринга
b - смещение в сторону предыдущего символа или следующего символа, представленного смещением, в случае, если позиция является границей двух областей просмотра.
Returns:
возвращается ограничивающая рамка заданной позиции
Throws:
BadLocationException - если заданная позиция не представляет допустимое расположение в связанном документе
IllegalArgumentException - для неверного аргумента смещения
See Also:
  • View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или предыдущему символу в модели.

Ожидается, что это будет вызываться потоком GUI, удерживая чтение блокировки на связанной модели. Реализуется для поиска дочернего представления и определения его размещения с блокировкой объекта ChildLocator и для вызова viewToModel в дочернем представлении с блокировкой объекта ChildState для предотвращения взаимодействия с потоком макета.

Specified by:
viewToModel in class View
Parameters:
x - координата X >= 0
y - координата Y >= 0
a - область, выделенная для отрисовки
biasReturn - возвращаемый сдвиг
Returns:
местоположение в модели, которое наилучшим образом представляет данную точку в представлении >= 0. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или предыдущему символу в модели.

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
Предоставляет способ определения следующего визуально представленного местоположения модели, в котором можно разместить курсор. Некоторые представления могут быть невидимыми, они могут не быть в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым местоположениям в модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция будет рассчитана автоматически. Если значение < -1, будет выброшено BadLocationException.
Overrides:
getNextVisualPositionFrom in class View
Parameters:
pos - позиция для преобразования
a - область, выделенная для отрисовки
direction - направление от текущей позиции, которое можно представить как клавиши со стрелками, обычно имеющиеся на клавиатуре; это может быть одно из следующих:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - массив, содержащий проверенный сдвиг
b - сдвиг
Returns:
местоположение в модели, которое наилучшим образом представляет следующую позицию визуального местоположения
Throws:
BadLocationException - заданная позиция не является допустимой позицией в документе
IllegalArgumentException - если direction недопустима

© 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/AsyncBoxView.html

Spec-Zone.ru

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