Spec-Zone.ru › OpenJDK 21

Класс 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)
Создаёт виджет-бокc, выполняющий асинхронное вычисление размера.
Параметры:
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, значение setSize по главной оси изменит требования по главной оси, и промежуточные изменения будут проигнорированы, пока не будут обновлены все дочерние элементы (что автоматически установит свойство в 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 in class 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 in class View
Parameters:
parent - родитель представления, null, если родителя нет

preferenceChanged

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

setSize

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

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

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

paint

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

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

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

getPreferredSpan

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

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальный размер этого представления вдоль оси.
Overrides:
getMinimumSpan in class 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 in class 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 in class View
Returns:
количество представлений >= 0
See Also:
  • View.getViewCount()

getView

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

getChildAllocation

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

getViewIndex

public int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, представляющего данную позицию в модели. По умолчанию представление не имеет дочерних элементов, поэтому эта реализация возвращает -1, чтобы указать, что для любой позиции нет допустимого индекса дочернего элемента.
Overrides:
getViewIndex in class 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 in class 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 - позиция для преобразования
b - сдвиг
a - область, выделенная для отрисовки
direction - направление от текущей позиции, которое можно представить как клавиши со стрелками, обычно расположенные на клавиатуре; это может быть одно из следующих значений:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - массив, содержащий проверенный сдвиг
Returns:
местоположение в модели, которое наилучшим образом представляет следующее расположение визуальной позиции
Throws:
BadLocationException - заданная позиция не является допустимой позицией в документе
IllegalArgumentException - если direction недопустимо

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

Spec-Zone.ru

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