Класс 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:
-
updateLayoutin classView - Parameters:
-
ec- изменения элемента, за который отвечает этот вид (может быть null, если изменений не было). -
e- информация об изменении из связанного документа -
a- текущее распределение вида - See Also:
setParent
public void setParent(View parent)
loadChildren, если у этого представления еще нет дочерних элементов. Дочерние элементы не должны загружаться в конструкторе, поскольку действие установки родителя может привести к попытке поиска по иерархии (например, для получения контейнера-хоста). Если у этого представления есть дочерние элементы (представление перемещается из одного места в иерархии представлений в другое), метод loadChildren не будет вызван.- Overrides:
-
setParentin classView - Parameters:
-
parent- родитель представления, null, если родителя нет
preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height)
- Overrides:
-
preferenceChangedin classView - Parameters:
-
child- дочернее представление -
width- true, если изменились предпочтения по ширине -
height- true, если изменились предпочтения по высоте - See Also:
setSize
public void setSize(float width, float height)
Так как ось основных размеров обновляется асинхронно и должна быть суммой размещённых дочерних элементов, вызов игнорируется для оси основных размеров. Так как ось дополнительных размеров является гибкой, работа помещается в очередь для изменения размеров дочерних элементов, если изменяется область оси дополнительных размеров.
- Overrides:
-
setSizein classView - Parameters:
-
width- ширина >= 0 -
height- высота >= 0
paint
public void paint(Graphics g, Shape alloc)
Эта реализация определяет, является ли желаемая область для отрисовки (т.е. область без обрезки) актуальной. Если актуальной, то отрисовываются дочерние элементы. Если не актуальной, задача построения желаемой области помещается в очередь макета как задача с высоким приоритетом. Это позволяет потоку событий отрисовывать, если готово, и откладывать до более позднего времени, если не готово (так как запросы отрисовки могут быть перепланированы).
- Specified by:
-
paintin classView - Parameters:
-
g- поверхность отрисовки -
alloc- область выделения для отрисовки - See Also:
getPreferredSpan
public float getPreferredSpan(int axis)
- Specified by:
-
getPreferredSpanin classView - Parameters:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS - Returns:
- размер, который представление желает иметь для отрисовки >= 0. Как правило, представлению говорят отрисовываться в указанный размер, хотя никакой гарантии нет. Родитель может выбрать изменение размера или разбиение представления.
- Throws:
-
IllegalArgumentException- для некорректного типа оси
getMinimumSpan
public float getMinimumSpan(int axis)
- Overrides:
-
getMinimumSpanin classView - Parameters:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS - Returns:
- размер, который представление желает иметь для отрисовки >= 0. Как правило, представлению говорят отрисовываться в указанный размер, хотя никакой гарантии нет. Родитель может выбрать изменение размера или разбиение представления.
- Throws:
-
IllegalArgumentException- для некорректного типа оси - See Also:
getMaximumSpan
public float getMaximumSpan(int axis)
- Overrides:
-
getMaximumSpanin classView - Parameters:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS - Returns:
- размер, который представление желает иметь для отрисовки >= 0. Как правило, представлению говорят отрисовываться в указанный размер, хотя никакой гарантии нет. Родитель может выбрать изменение размера или разбиение представления.
- Throws:
-
IllegalArgumentException- для некорректного типа оси - See Also:
getViewCount
public int getViewCount()
- Overrides:
-
getViewCountin classView - Returns:
- количество представлений >= 0
- See Also:
getView
public View getView(int n)
- Overrides:
-
getViewin classView - Parameters:
-
n- номер представления, >= 0 && < getViewCount() - Returns:
- представление
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
- Overrides:
-
getChildAllocationin classView - Parameters:
-
index- индекс дочернего элемента, >= 0 && < getViewCount() -
a- выделение для этого представления. - Returns:
- выделение для дочернего элемента
getViewIndex
public int getViewIndex(int pos, Position.Bias b)
- Overrides:
-
getViewIndexin classView - Parameters:
-
pos- позиция >= 0 -
b- смещение - Returns:
- индекс представления, представляющего данную позицию, или -1, если представление не представляет эту позицию
- Since:
- 1.3
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
- Specified by:
-
modelToViewin classView - 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- позиция для преобразования -
b- сдвиг -
a- область, выделенная для отрисовки -
direction- направление от текущей позиции, которое можно представить как клавиши со стрелками, обычно расположенные на клавиатуре; это может быть одно из следующих значений:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.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