Класс AsyncBoxView
- Все реализованные интерфейсы:
SwingConstants
public class AsyncBoxView extends View
Во время обращения к дочернему представлению приобретается блокировка чтения на связанном документе, чтобы модель оставалась стабильной во время доступа.
- С момента:
- 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 |
Создаёт представление ящика, выполняющее асинхронную выкладку. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected AsyncBoxView.ChildState |
createChildState |
Новые записи ChildState создаются с помощью этого метода, чтобы разрешить подклассам расширять записи ChildState для выполнения/хранения большего объёма. |
protected void |
flushRequirementChanges() |
Опубликовать изменения в настройках вверх к родительскому представлению. |
float |
getBottomInset() |
Получить нижнюю часть отступа вокруг представления. |
Shape |
getChildAllocation |
Получает выделение для данного дочернего представления. |
protected AsyncBoxView.ChildState |
getChildState |
Получить объект, представляющий состояние выкладки дочернего элемента по заданному индексу. |
protected boolean |
getEstimatedMajorSpan() |
Определяет, оценивается ли основная длина в настоящее время? |
protected float |
getInsetSpan |
Получить отрезок по оси, занимаемый отступами. |
protected LayoutQueue |
getLayoutQueue() |
Получить очередь для использования в выкладке. |
float |
getLeftInset() |
Получить левую часть отступа вокруг представления. |
int |
getMajorAxis() |
Получить главную ось (ось, по которой дочерние элементы выкладываются). |
float |
getMaximumSpan |
Определяет максимальную длину для этого представления по оси. |
float |
getMinimumSpan |
Определяет минимальную длину для этого представления по оси. |
int |
getMinorAxis() |
Получить второстепенную ось (ось, ортогональную оси выкладки). |
int |
getNextVisualPositionFrom |
Предоставляет способ определения следующего визуально представленного местоположения модели, в котором можно разместить курсор. |
float |
getPreferredSpan |
Определяет предпочтительную длину для этого представления по оси. |
float |
getRightInset() |
Получить правую часть отступа вокруг представления. |
float |
getTopInset() |
Получить верхнюю часть отступа вокруг представления. |
View |
getView |
Получить n-е дочернее представление. |
int |
getViewCount() |
Возвращает количество представлений в этом представлении. |
int |
getViewIndex |
Возвращает индекс дочернего представления, представляющий заданную позицию в модели. |
protected int |
getViewIndexAtPosition |
Получает индекс дочернего представления, представляющий заданную позицию в модели. |
protected void |
loadChildren |
Загружает все дочерние элементы для инициализации представления. |
protected void |
majorRequirementChange |
Требования изменились по главной оси. |
protected void |
minorRequirementChange |
Требования изменились по второстепенной оси. |
Shape |
modelToView |
Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, отображённого на него. |
void |
paint |
Отобразить представление с использованием заданного выделения и поверхности рендеринга. |
void |
preferenceChanged |
Дочерние представления могут вызывать это у родителя, чтобы указать, что предпочтение изменилось и должно быть переоценено для выкладки. |
void |
replace |
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния для дочерних элементов. |
void |
setBottomInset |
Установить нижнюю часть отступа вокруг представления. |
protected void |
setEstimatedMajorSpan |
Установить свойство estimatedMajorSpan, которое определяет, должно ли значение основной длины рассматриваться как оцениваемое. |
void |
setLeftInset |
Установить левую часть отступа вокруг представления. |
void |
setParent |
Установить родителя представления. |
void |
setRightInset |
Установить правую часть отступа вокруг представления. |
void |
setSize |
Установить размер представления. |
void |
setTopInset |
Установить верхнюю часть отступа вокруг представления. |
protected void |
updateLayout |
Обновить выкладку в ответ на получение уведомления о изменении из модели. |
int |
viewToModel |
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. |
Методы, объявленные в классе 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
Подробное описание полей
locator
protected AsyncBoxView.ChildLocator locator
Подробное описание конструкторов
AsyncBoxView
public AsyncBoxView(Element elem, int axis)
- Параметры:
-
elem- элемент модели, который нужно отобразить -
axis- ось, вдоль которой будут выкладываться элементы. Может быть X_AXIS или Y_AXIS.
Подробное описание методов
getMajorAxis
public int getMajorAxis()
- Возвращает:
- главную ось
getMinorAxis
public int getMinorAxis()
- Возвращает:
- второстепенную ось
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)
- Параметры:
-
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)
- Параметры:
-
v- представление - Возвращает:
- новое состояние дочернего элемента
majorRequirementChange
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Этот метод реализован для обозначения изменения основной оси, чтобы будущая проверка необходимости публикации требований в родительское представление учитывала основную ось. Если интервал по основной оси не является приблизительным, он обновляется заданной разностью, чтобы отразить инкрементное изменение. Разница игнорируется, если интервал по основной оси является приблизительным.
- Параметры:
-
cs- состояние дочернего элемента -
delta- разница
minorRequirementChange
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
- Параметры:
-
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- фабрика представлений - См. также:
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos, Position.Bias b)
- Параметры:
-
pos- позиция ≥ 0 -
b- смещение позиции - Возвращает:
- индекс представления, представляющего заданную позицию, или -1, если такое представление отсутствует
updateLayout
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
- Overrides:
-
updateLayoutв классеView - Parameters:
-
ec- изменения элемента, за который отвечает эта область просмотра (может быть null, если изменений не было). -
e- информация о изменении из связанного документа -
a- текущее распределение области просмотра - See Also:
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:
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:
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:
getMaximumSpan
public float getMaximumSpan(int axis)
- Overrides:
-
getMaximumSpanв классеView - Parameters:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS - Returns:
- размах, который область просмотра хотела бы отобразить >= 0. Как правило, области просмотра сообщается отобразить размах, который возвращается, хотя это не гарантируется. Родитель может выбрать изменение размера или разрыв области просмотра.
- Throws:
-
IllegalArgumentException- для неверного типа оси - See Also:
getViewCount
public int getViewCount()
- Overrides:
-
getViewCountв классеView - Returns:
- количество областей просмотра >= 0
- See Also:
getView
public View getView(int n)
- Overrides:
-
getViewв классеView - Parameters:
-
n- номер области просмотра для получения, >= 0 && < getViewCount() - Returns:
- область просмотра
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
- Overrides:
-
getChildAllocationв классеView - Parameters:
-
index- индекс дочернего элемента, >= 0 && < getViewCount() -
a- распределение для этой области просмотра. - Returns:
- распределение для дочернего элемента
getViewIndex
public int getViewIndex(int pos, Position.Bias b)
- 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:
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Ожидается, что это будет вызываться потоком GUI, удерживая чтение блокировки на связанной модели. Реализуется для поиска дочернего представления и определения его размещения с блокировкой объекта ChildLocator и для вызова viewToModel в дочернем представлении с блокировкой объекта ChildState для предотвращения взаимодействия с потоком макета.
- Specified by:
-
viewToModelin classView - 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
BadLocationException.
- Overrides:
-
getNextVisualPositionFromin classView - Parameters:
-
pos- позиция для преобразования -
a- область, выделенная для отрисовки -
direction- направление от текущей позиции, которое можно представить как клавиши со стрелками, обычно имеющиеся на клавиатуре; это может быть одно из следующих:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.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