Класс 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, определяющее, рассматривается ли основной размер как приблизительный. Если это свойство истинно, значение setSize по основной оси изменит требования по основной оси, и инкрементные изменения будут игнорироваться, пока все дочерние элементы не будут обновлены (что автоматически установит свойство в ложь). Если свойство ложно, значение 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, чтобы смещения дочерних элементов вычислялись правильно.

Переопределяет:
updateLayout в классе View
Параметры:
ec - изменения элемента, за который отвечает это представление (может быть null, если изменений не было).
e - информация об изменении из связанного документа
a - текущее распределение представления
См. также:
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 не будет вызываться.

Переопределяет:
setParent в классе View
Параметры:
parent - родитель представления, null, если его нет

preferenceChanged

public void preferenceChanged(View child,
                              boolean width,
                              boolean height)

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

Переопределяет:
preferenceChanged в классе View
Параметры:
child - дочернее представление
width - true, если предпочтения по ширине изменились
height - true, если предпочтения по высоте изменились
См. также:
JComponent.revalidate()

setSize

public void setSize(float width,
                    float height)

Устанавливает размер представления. Это должно вызвать перерасчет представления, если представление кэширует информацию о макете.

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

Переопределяет:
setSize в классе View
Параметры:
width - ширина >= 0
height - высота >= 0

paint

public void paint(Graphics g,
                  Shape alloc)

Отображает представление с использованием заданного распределения и поверхности рендеринга.

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

Определено в:
paint в классе View
Параметры:
g - поверхность рендеринга для использования
alloc - выделенная область для рендеринга
См. также:
View.paint(java.awt.Graphics, java.awt.Shape)

getPreferredSpan

public float getPreferredSpan(int axis)

Определяет предпочтительный размах для данного представления вдоль оси.

Определено в:
getPreferredSpan в классе View
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
размах, который представление хотело бы отображать >= 0. Как правило, представлению говорят отображаться в размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разбиение представления.
Исключения:
IllegalArgumentException - для недействительного типа оси
См. также:
View.getPreferredSpan(int)

getMinimumSpan

public float getMinimumSpan(int axis)

Определяет минимальный размах для данного представления вдоль оси.

Переопределяет:
getMinimumSpan в классе View
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
размах, который представление хотело бы отображать >= 0. Как правило, представлению говорят отображаться в размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разбиение представления.
Исключения:
IllegalArgumentException - для недействительного типа оси
См. также:
View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)

Определяет максимальный размах для данного представления вдоль оси.

Переопределяет:
getMaximumSpan в классе View
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
размах, который представление хотело бы отображать >= 0. Как правило, представлению говорят отображаться в размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разбиение представления.
Исключения:
IllegalArgumentException - для недействительного типа оси
См. также:
View.getPreferredSpan(int)

getViewCount

public int getViewCount()

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

Переопределяет:
getViewCount в классе View
Возвращает:
количество представлений >= 0
См. также:
View.getViewCount()

getView

public View getView(int n)

Получает n-е дочернее представление. Поскольку по умолчанию нет дочерних элементов, это возвращает null.

Переопределяет:
getView в классе View
Параметры:
n - номер представления для получения, >= 0 && < getViewCount()
Возвращает:
представление

getChildAllocation

public Shape getChildAllocation(int index,
                                Shape a)

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

Переопределяет:
getChildAllocation в классе View
Параметры:
index - индекс дочернего элемента, >= 0 && < getViewCount()
a - распределение для этого представления.
Возвращает:
распределение для дочернего элемента

getViewIndex

public int getViewIndex(int pos,
                        Position.Bias b)

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

Переопределяет:
getViewIndex в классе View
Параметры:
pos - позиция >= 0
b - смещение
Возвращает:
индекс представления, представляющего данную позицию, или -1, если представление не представляет эту позицию
С:
1.3

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException

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

Определено в:
modelToView в классе View
Параметры:
pos - позиция для преобразования >= 0
a - выделенная область для рендеринга
b - смещение в сторону предыдущего символа или следующего символа, представленного смещением, в случае, если позиция является границей двух представлений.
Возвращает:
возвращается прямоугольник, содержащий данную позицию
Исключения:
BadLocationException - если данная позиция не представляет действительное местоположение в связанном документе
IllegalArgumentException - для недействительного аргумента смещения
См. также:
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, чтобы избежать взаимодействия с потоком макета.

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

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos,
                                     Position.Bias b,
                                     Shape a,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException

Предоставляет способ определения следующего визуально представленного местоположения модели, в котором можно разместить курсор. Некоторые представления могут быть невидимыми, они могут не быть в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым местоположениям в модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция будет вычислена автоматически. Если значение < -1, будет выброшено BadLocationException.

Переопределяет:
getNextVisualPositionFrom в классе View
Параметры:
pos - позиция для преобразования
a - выделенная область для рендеринга
direction - направление от текущей позиции, которое можно рассматривать как клавиши со стрелками на клавиатуре; это может быть одно из следующего:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - массив, содержащий проверенное смещение
b - смещение
Возвращает:
местоположение в модели, которое лучше всего представляет следующее визуальное положение
Исключения:
BadLocationException - заданная позиция не является допустимой позицией в документе
IllegalArgumentException - если direction недопустимо

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/AsyncBoxView.html

Spec-Zone .ru
спецификации, руководства, описания, API