Spec-Zone.ru › OpenJDK 8

Класс AsyncBoxView

  • java.lang.Object
    • javax.swing.text.View
      • javax.swing.text.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(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, значение setSize по главной оси изменит требования по главной оси, и инкрементные изменения будут игнорироваться до тех пор, пока все дочерние элементы не будут обновлены (что приведет к автоматическому установлению свойства в false). Если свойство false, значение majorSpan считается точным, и инкрементные изменения будут добавлены в итог по мере их вычисления.

С:
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, чтобы делать/хранить больше.

majorRequirementChange

protected void majorRequirementChange(AsyncBoxView.ChildState cs,
                                      float delta)

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

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

minorRequirementChange

protected void minorRequirementChange(AsyncBoxView.ChildState cs)

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

flushRequirementChanges

protected void flushRequirementChanges()

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

replace

public void replace(int offset,
                    int length,
                    View[] views)

Вызывает суперкласс для обновления дочерних представлений и обновляет записи состояния для дочерних элементов. Ожидается, что этот метод будет вызван при наличии write-блокировки на модели, чтобы взаимодействие с потоком компоновки не происходило (т.е. поток компоновки получает read-блокировку перед выполнением каких-либо действий).

Переопределяет:
replace в классе View
Параметры:
offset - начальное смещение в дочерних представлениях >= 0
length - количество существующих представлений для замены >= 0
views - дочерние представления для вставки

loadChildren

protected void loadChildren(ViewFactory f)

Загружает все дочерние элементы для инициализации представления. Вызывается методом setParent. Дочерние классы могут переопределить этот метод, чтобы инициализировать свои дочерние представления другим способом. По умолчанию создается дочернее представление для каждого дочернего элемента.

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

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

getViewIndexAtPosition

protected int getViewIndexAtPosition(int pos,
                                     Position.Bias b)

Возвращает индекс дочернего представления, представляющего заданную позицию в модели. Реализовано для поиска представления в случае, когда для каждого дочернего элемента есть дочернее представление.

Параметры:
pos - позиция >= 0
Возвращает:
индекс представления, представляющего заданную позицию, или -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
Возвращает:
индекс представления, представляющего заданную позицию, или -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 - выделенная область для отрисовки
Возвращает:
местоположение в модели, которое наилучшим образом представляет данную точку в представлении >= 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 - массив, содержащий проверенные смещения
Возвращает:
местоположение в модели, которое наилучшим образом представляет следующую визуальную позицию
Выбрасывает:
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.

Spec-Zone.ru

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