Класс 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)

Создает CompositeView для данного элемента.

Краткое описание методов

Модификатор и тип Метод Описание
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 pos, Shape a, Position.Bias b)

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

Shape modelToView​(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)

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

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 вызываться не будет.

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

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
b - смещение
Возвращает:
индекс представления, представляющего заданную позицию, или -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, а View на ЗАПАД — индекс 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/CompositeView.html

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