Класс CompositeView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
- Все реализованные интерфейсы:
- SwingConstants
- Прямые известные подклассы:
- BoxView
public abstract class CompositeView extends View
CompositeView — это абстрактная View реализация, которая управляет одним или несколькими дочерними представлениями. (Обратите внимание, что CompositeView предназначена для управления относительно небольшим количеством дочерних представлений.) CompositeView предназначена для использования в качестве отправной точки для View реализаций, таких как BoxView, которые будут содержать дочерние View. Подклассы, которые хотят управлять набором дочерних View должны использовать метод replace(int, int, javax.swing.text.View[]). Поскольку View вызывает replace во время уведомления DocumentListener, вам обычно не нужно вызывать replace напрямую.
Хотя CompositeView не накладывает политику размещения на свои дочерние View элементы, она позволяет вставлять дочерние View элементы, которые она будет содержать. Отступы можно задать, используя либо setInsets(short, short, short, short), либо setParagraphInsets(javax.swing.text.AttributeSet).
Помимо абстрактных методов класса View, подклассы CompositeView должны переопределить:
-
isBefore(int, int, java.awt.Rectangle)— используется для проверки, находится ли заданнаяViewпозиция перед визуальным пространствомCompositeView. -
isAfter(int, int, java.awt.Rectangle)— используется для проверки, находится ли заданнаяViewпозиция после визуального пространстваCompositeView. -
getViewAtPoint(int, int, java.awt.Rectangle)— возвращает представление в заданной визуальной позиции. -
childAllocation(int, java.awt.Rectangle)— возвращает границы конкретного дочернегоViewэлемента.getChildAllocationвызоветchildAllocationпосле смещения границ наInsetэлементыCompositeView.
Поля
Поля унаследованные от класса 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 Конструкторы
| Конструктор и описание |
|---|
CompositeView(Element elem) Создает |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
protected abstract void |
childAllocation(int index,
Rectangle a) Возвращает выделение для данного дочернего элемента. |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias) Определяет, в каком направлении располагается следующее представление. |
protected short |
getBottomInset() Получает нижний отступ. |
Shape |
getChildAllocation(int index,
Shape a) Получает выделение для данного дочернего представления для отрисовки. |
protected Rectangle |
getInsideAllocation(Shape a) Преобразует неизменяемое выделение, переданное представлению, в изменяемое выделение, которое представляет внутреннее выделение (т.е. |
protected short |
getLeftInset() Получает левый отступ. |
protected int |
getNextEastWestVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet) Возвращает следующую визуальную позицию курсора в направлении восток или запад. |
protected int |
getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet) Возвращает следующую визуальную позицию курсора в направлении север или юг. |
int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet) Предоставляет способ определения следующей визуально представленной модели местоположения, куда можно разместить курсор. |
protected short |
getRightInset() Получает правый отступ. |
protected short |
getTopInset() Получает верхний отступ. |
View |
getView(int n) Возвращает n-е представление в этом контейнере. |
protected abstract View |
getViewAtPoint(int x,
int y,
Rectangle alloc) Получает дочернее представление в заданных координатах. |
protected View |
getViewAtPosition(int pos,
Rectangle a) Получает дочернее представление, которое представляет заданную позицию в модели. |
int |
getViewCount() Возвращает количество дочерних представлений этого представления. |
int |
getViewIndex(int pos,
Position.Bias b) Возвращает индекс дочернего представления, представляющий заданную позицию в модели. |
protected int |
getViewIndexAtPosition(int pos) Получает индекс дочернего представления, представляющий заданную позицию в модели. |
protected abstract boolean |
isAfter(int x,
int y,
Rectangle alloc) Проверяет, лежит ли точка после диапазона прямоугольника. |
protected abstract boolean |
isBefore(int x,
int y,
Rectangle alloc) Проверяет, лежит ли точка перед диапазоном прямоугольника. |
protected void |
loadChildren(ViewFactory f) Загружает все дочерние элементы для инициализации представления. |
Shape |
modelToView(int p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a) Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ней. |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b) Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ней. |
void |
replace(int offset,
int length,
View[] views) Заменяет дочерние представления. |
protected void |
setInsets(short top,
short left,
short bottom,
short right) Устанавливает отступы для представления. |
protected void |
setParagraphInsets(AttributeSet attr) Устанавливает отступы из атрибутов абзаца, указанных в заданных атрибутах. |
void |
setParent(View parent) Устанавливает родительского элемента представления. |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias) Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. |
Методы унаследованные от класса javax.swing.text.View
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, setSize, updateChildren, updateLayout, viewToModel Методы унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
CompositeView
public CompositeView(Element elem)
Создаёт CompositeView для заданного элемента.
- Параметры:
-
elem- элемент, за который отвечает этот вид
Методы
loadChildren
protected void loadChildren(ViewFactory f)
Загружает всех дочерних элементов для инициализации представления. Вызывается методом setParent(javax.swing.text.View). Подклассы могут переопределить этот метод для инициализации дочерних представлений иным образом. По умолчанию создаётся дочернее представление для каждого дочернего элемента.
- Параметры:
-
f- фабрика представления - См. также:
setParent(javax.swing.text.View)
setParent
public void setParent(View parent)
Устанавливает родителя представления. Переопределяется для обеспечения поведения суперкласса и вызова метода loadChildren в том случае, если у представления еще нет дочерних элементов. Дочерние элементы не должны загружаться в конструкторе, поскольку при установке родителя они могут попытаться найти своего родителя в иерархии (например, для получения содержащего Container элемента). Если у этого представления есть дочерние элементы (представление перемещается из одного места в иерархии представлений в другое), метод loadChildren не будет вызван.
getViewCount
public int getViewCount()
Возвращает количество дочерних представлений этого представления.
- Переопределяет:
-
getViewCountв классеView - Возвращает:
- количество представлений >= 0
- См. также:
getView(int)
getView
public View getView(int n)
Возвращает n-е представление в этом контейнере.
- Переопределяет:
-
getViewв классеView - Параметры:
-
n- номер нужного представления, >= 0 && < getViewCount() - Возвращает:
- представление в индексе
n
replace
public void replace(int offset,
int length,
View[] views) Заменяет дочерние представления. Если нет представлений для удаления, это действует как вставка. Если нет представлений для добавления, это действует как удаление. Удаляемые представления получат родителя null, и внутренняя ссылка на них будет удалена, чтобы они могли быть удалены сборщиком мусора.
- Переопределяет:
-
replaceв классеView - Параметры:
-
offset- начальный индекс в дочерних представлениях для вставки новых представлений; >= 0 и <= getViewCount -
length- количество существующих дочерних представлений для удаления; должно быть значением >= 0 и <= (getViewCount() - offset) -
views- дочерние представления для добавления; это значение может бытьnullдля указания отсутствия добавляемых представлений (полезно для удаления)
getChildAllocation
public Shape getChildAllocation(int index,
Shape a) Получает выделение для данного дочернего представления для отрисовки. Это позволяет узнать, где расположены различные представления.
- Переопределяет:
-
getChildAllocationв классеView - Параметры:
-
index- индекс дочернего элемента, >= 0 && < getViewCount() -
a- выделение для этого представления - Возвращает:
- выделение для дочернего элемента
modelToView
public Shape modelToView(int pos,
Shape a,
Position.Bias b)
throws BadLocationException Обеспечивает отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ним.
- Определено в:
-
modelToViewв классеView - Параметры:
-
pos- позиция для преобразования >= 0 -
a- выделенная область для отрисовки -
b- значение смещения, либоPosition.Bias.ForwardлибоPosition.Bias.Backward - Возвращает:
- прямоугольник границ заданной позиции
- Исключения:
-
BadLocationException- если заданная позиция не представляет действительное расположение в связанном документе - См. также:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
modelToView
public Shape modelToView(int p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a)
throws BadLocationException Обеспечивает отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ним.
- Переопределяет:
-
modelToViewв классеView - Параметры:
-
p0- позиция для преобразования >= 0 -
b0- смещение в сторону предыдущего или следующего символа, представленного p0, в случае, если позиция является границей двух представлений; либоPosition.Bias.ForwardлибоPosition.Bias.Backward -
p1- позиция для преобразования >= 0 -
b1- смещение в сторону предыдущего или следующего символа, представленного p1, в случае, если позиция является границей двух представлений -
a- выделенная область для отрисовки - Возвращает:
- возвращается прямоугольник границ заданной позиции
- Исключения:
-
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[] bias) Обеспечивает отображение из координатного пространства представления в логическое координатное пространство модели.
- Определено в:
-
viewToModelв классеView - Параметры:
-
x- координата x расположения представления для преобразования >= 0 -
y- координата y расположения представления для преобразования >= 0 -
a- выделенная область для отрисовки -
bias- либоPosition.Bias.ForwardлибоPosition.Bias.Backward - Возвращает:
- расположение в модели, которое лучше всего представляет заданную точку в представлении >= 0
- См. также:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException Предоставляет способ определения следующего визуально представленного расположения модели, в которое можно поместить курсор. Некоторые представления могут быть невидимыми, они могут быть не в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым расположениям в модели. Это вспомогательный метод для getNextNorthSouthVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[]) и getNextEastWestVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[]). Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция будет рассчитана автоматически. Если значение < -1, будет выброшено исключение BadLocationException.
- Переопределяет:
-
getNextVisualPositionFromв классеView - Параметры:
-
pos- позиция для преобразования -
b- значение смещения, либоPosition.Bias.ForwardлибоPosition.Bias.Backward -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно рассматривать как клавиши со стрелками на клавиатуре; может быть одним из следующих:-
SwingConstants.WEST -
SwingConstants.EAST -
SwingConstants.NORTH -
SwingConstants.SOUTH
-
-
biasRet- массив, содержащий проверенное смещение - Возвращает:
- расположение в модели, которое лучше всего представляет следующую позицию визуального расположения
- Исключения:
-
BadLocationException- заданная позиция не является допустимой позицией в документе -
IllegalArgumentException- еслиdirectionнедопустимо
getViewIndex
public int getViewIndex(int pos,
Position.Bias b) Возвращает индекс дочернего представления, представляющий заданную позицию в модели. Реализовано для вызова метода getViewIndexByPosition для обратной совместимости.
- Переопределяет:
-
getViewIndexв классеView - Параметры:
-
pos- позиция >= 0 - Возвращает:
- индекс представления, представляющего заданную позицию, или -1, если представление не представляет эту позицию
- С:
- 1.3
isBefore
protected abstract boolean isBefore(int x,
int y,
Rectangle alloc) Проверяет, находится ли точка до диапазона прямоугольника.
- Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
alloc- прямоугольник - Возвращает:
- true, если точка расположена до указанного диапазона
isAfter
protected abstract boolean isAfter(int x,
int y,
Rectangle alloc) Проверяет, находится ли точка после диапазона прямоугольника.
- Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
alloc- прямоугольник - Возвращает:
- true, если точка расположена после указанного диапазона
getViewAtPoint
protected abstract View getViewAtPoint(int x,
int y,
Rectangle alloc) Получает дочернее представление в заданных координатах.
- Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
alloc- выделение родителя при входе, которое должно быть изменено на выделение дочернего элемента при выходе - Возвращает:
- дочернее представление
childAllocation
protected abstract void childAllocation(int index,
Rectangle a) Возвращает выделение для заданного дочернего элемента.
- Параметры:
-
index- индекс дочернего элемента, >= 0 && < getViewCount() -
a- выделение внутренней области поля при входе и выделение дочернего элемента с указанным индексом при выходе.
getViewAtPosition
protected View getViewAtPosition(int pos,
Rectangle a) Извлекает дочерний элемент представления, соответствующий заданной позиции в модели. Эта функция реализована для извлечения элемента в случае, если для каждого дочернего элемента существует соответствующий дочерний элемент представления.
- Параметры:
-
pos- позиция >= 0 -
a- выделение внутренней области поля при входе и выделение представления, содержащего позицию, при выходе - Возвращает:
- представление, соответствующее заданной позиции, или
nullесли такого представления нет
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos)
Извлекает индекс дочернего элемента представления, соответствующий заданной позиции в модели. Эта функция реализована для извлечения элемента в случае, если для каждого дочернего элемента существует соответствующий дочерний элемент представления.
- Параметры:
-
pos- позиция >= 0 - Возвращает:
- индекс представления, соответствующего заданной позиции, или -1, если представление не найдено
getInsideAllocation
protected Rectangle getInsideAllocation(Shape a)
Преобразует неизменяемое выделение, заданное для представления, в изменяемое выделение, представляющее внутреннее выделение (т.е. границы заданного выделения с удалёнными отступами сверху, слева, снизу и справа). Ожидается, что возвращаемое значение будет дополнительно изменено для представления выделения дочернего элемента. Эта функция реализована для повторного использования переменной экземпляра, чтобы избежать создания чрезмерного количества прямоугольников. Как правило, результат вызова этого метода передаётся методу childAllocation.
- Параметры:
-
a- выделение, заданное для представления - Возвращает:
- выделение, представляющее внутреннюю область представления после удаления всех отступов; если заданное выделение было
null, возвращаемое значение равноnull
setParagraphInsets
protected void setParagraphInsets(AttributeSet attr)
Устанавливает отступы из атрибутов абзаца, заданных в указанных атрибутах.
- Параметры:
-
attr- атрибуты
setInsets
protected void setInsets(short top,
short left,
short bottom,
short right) Устанавливает отступы для представления.
- Параметры:
-
top- верхний отступ >= 0 -
left- левый отступ >= 0 -
bottom- нижний отступ >= 0 -
right- правый отступ >= 0
getLeftInset
protected short getLeftInset()
Получает левый отступ.
- Возвращает:
- отступ >= 0
getRightInset
protected short getRightInset()
Получает правый отступ.
- Возвращает:
- отступ >= 0
getTopInset
protected short getTopInset()
Получает верхний отступ.
- Возвращает:
- отступ >= 0
getBottomInset
protected short getBottomInset()
Получает нижний отступ.
- Возвращает:
- отступ >= 0
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException Возвращает следующую визуальную позицию курсора в направлении север-юг.
- Параметры:
-
pos- позиция для преобразования >= 0 -
b- значение смещения, либоPosition.Bias.Forward, либоPosition.Bias.Backward -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно представить как стрелочные клавиши на клавиатуре; может быть одним из следующих:-
SwingConstants.NORTH -
SwingConstants.SOUTH
-
-
biasRet- массив, содержащий проверенное смещение - Возвращает:
- местоположение в модели, которое лучше всего представляет следующую позицию север или юг
- Исключения:
BadLocationException-
IllegalArgumentException- еслиdirectionнедопустима - См. также:
getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
getNextEastWestVisualPositionFrom
protected int getNextEastWestVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException Возвращает следующую визуальную позицию курсора в направлении восток-запад.
- Параметры:
-
pos- позиция для преобразования >= 0 -
b- значение смещения, либоPosition.Bias.Forward, либоPosition.Bias.Backward -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно представить как стрелочные клавиши на клавиатуре; может быть одним из следующих:-
SwingConstants.WEST -
SwingConstants.EAST
-
-
biasRet- массив, содержащий проверенное смещение - Возвращает:
- местоположение в модели, которое лучше всего представляет следующую позицию запад или восток
- Исключения:
BadLocationException-
IllegalArgumentException- еслиdirectionнедопустима - См. также:
getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
flipEastAndWestAtEnds
protected boolean flipEastAndWestAtEnds(int position,
Position.Bias bias) Определяет, в каком направлении находится следующее представление. Рассмотрим View с индексом n. Обычно View расположены слева направо, так что View на ВОСТОК будет иметь индекс n + 1, а View на ЗАПАД — индекс n - 1. В некоторых ситуациях, таких как с двунаправленным текстом, возможно, что View на ВОСТОК находится не по индексу n + 1, а по индексу n - 1, или что View на ЗАПАД находится не по индексу n - 1, а по индексу n + 1. В этом случае этот метод возвращает true, указывая, что View расположены в обратном порядке.
Этот метод безусловно возвращает false. Подклассы должны переопределять этот метод, если существует возможность расположения View в обратном порядке.
- Параметры:
-
position- позиция в модели -
bias- либоPosition.Bias.Forward, либоPosition.Bias.Backward - Возвращает:
- false
© 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.