Spec-Zone.ru › OpenJDK 17

Класс ZoneView

java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
javax.swing.text.ZoneView
Все реализованные интерфейсы:
SwingConstants
public class ZoneView extends BoxView
ZoneView — это реализация View, которая создаёт зоны, для которых дочерние представления не создаются и не хранятся, пока они не понадобятся для отображения или преобразования модель/представление. Это позволяет значительно сократить потребление памяти в ситуациях, когда представляемая модель очень большая, создавая объекты представления только для области, которая активно просматривается/редактируется. Размер дочерних элементов можно оценить каким-либо способом или рассчитать асинхронно, сохранив только результат.

ZoneView расширяет BoxView, чтобы обеспечить ящик, который реализует зоны для своих дочерних элементов. Зоны — это специальные реализации View (дочерние элементы экземпляра этого класса), которые представляют только часть модели, за которую отвечает экземпляр ZoneView. Зоны не создают дочерние представления до тех пор, пока не будет сделана попытка отобразить их. Представление в виде ящика хорошо подходит для этого, потому что:

  • Ящики — это широко используемые представления, и наличие ящика, предоставляющего это поведение, даёт существенную возможность подключить это поведение к иерархии представлений из фабрики представлений.
  • Ящики выкладываются в одном направлении, поэтому их легко разделить на зоны надёжным способом.
  • Ящики обычно имеют простые отношения с моделью (т. е. они создают дочерние представления, которые непосредственно представляют дочерние элементы).
  • Оценить размер ящиков проще, чем некоторые другие формы.

По умолчанию поведение контролируется двумя свойствами: maxZoneSize и maxZonesLoaded. Установка maxZoneSize в Integer.MAX_VALUE привела бы к созданию только одной зоны. Это фактически превратит представление в реализацию паттерна декоратор. Установка maxZonesLoaded в значение Integer.MAX_VALUE приведет к тому, что зоны никогда не будут разгружаться. Для простоты зоны создаются на границах, представленных дочерними элементами элемента, за который отвечает представление. Зоны могут быть любой реализацией View, но по умолчанию используется реализация AsyncBoxView, которая эффективно поддерживает довольно большие зоны.

С момента:
1.3
См. также:
  • View

Краткое описание полей

Поля, объявленные в классе 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

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

Конструктор Описание
ZoneView(Element elem, int axis)
Создаёт ZoneView.

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

Модификатор и тип Метод Описание
protected View createZone(int p0, int p1)
Создать представление для представления зоны для заданного диапазона в модели (который должен быть в пределах ответственности этого объекта).
int getMaximumZoneSize()
Получить текущий максимальный размер зоны.
int getMaxZonesLoaded()
Получить текущую установку количества зон, разрешённых для загрузки одновременно.
protected int getViewIndexAtPosition(int pos)
Возвращает индекс дочернего представления, представляющий заданную позицию в модели.
void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
Предоставляет уведомление о том, что что-то было вставлено в документ в место, за которое отвечает это представление.
protected boolean isZoneLoaded(View zone)
Определить, находится ли зона в загруженном состоянии.
protected void loadChildren(ViewFactory f)
Загружает все дочерние элементы для инициализации представления.
void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
Предоставляет уведомление о том, что что-то было удалено из документа в месте, за которое отвечает это представление.
void setMaximumZoneSize(int size)
Установить желаемый максимальный размер зоны.
void setMaxZonesLoaded(int mzl)
Устанавливает текущую установку количества зон, разрешённых для загрузки одновременно.
protected void unloadZone(View zone)
Разгрузить зону (Преобразовать зону в её состояние экономии памяти).
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
Поведение суперкласса попытается обновить дочерние представления, что в данном случае нежелательно, так как дочерние элементы являются зонами, а не непосредственно затронутыми изменениями в связанном элементе.
protected void zoneWasLoaded(View zone)
Вызывается зоной при её загрузке.

Методы, объявленные в классе javax.swing.text.BoxView

baselineLayout, baselineRequirements, calculateMajorAxisRequirements, calculateMinorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel

Методы, объявленные в классе javax.swing.text.CompositeView

getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent

Методы, объявленные в классе javax.swing.text.View

append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModel

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

ZoneView

public ZoneView(Element elem, int axis)
Создаёт объект ZoneView.
Параметры:
elem - элемент, за который отвечает данный вид
axis - либо View.X_AXIS, либо View.Y_AXIS

Подробное описание методов

getMaximumZoneSize

public int getMaximumZoneSize()
Получить текущий максимальный размер зоны.
Возвращает:
текущий максимальный размер зоны

setMaximumZoneSize

public void setMaximumZoneSize(int size)
Установить желаемый максимальный размер зоны. Размер зоны может быть больше, чем этот размер, если отдельный дочерний вид больше этого размера, поскольку зоны формируются на границах дочерних видов.
Параметры:
size - количество символов, которое зона может представлять, прежде чем попытаться разбить зону на меньший размер.

getMaxZonesLoaded

public int getMaxZonesLoaded()
Получить текущую настройку количества зон, которые разрешено загружать одновременно.
Возвращает:
текущую настройку количества зон, которые разрешено загружать одновременно

setMaxZonesLoaded

public void setMaxZonesLoaded(int mzl)
Устанавливает текущую настройку количества зон, которые разрешено загружать одновременно. Это вызовет IllegalArgumentException, если mzl меньше 1.
Параметры:
mzl - желаемое максимальное количество зон для активной загрузки, должно быть больше 0
Исключения:
IllegalArgumentException - если mzl меньше 1

zoneWasLoaded

protected void zoneWasLoaded(View zone)
Вызывается зоной при загрузке. Это происходит, когда предпринимается попытка отображения или выполнения преобразования модель/вид на зоне, которая находилась в незагруженном состоянии. Это реализовано для проверки, достигнуто ли максимальное количество зон, и для разгрузки самой старой зоны, если это так.
Параметры:
zone - дочерний вид, который только что был загружен.

unloadZone

protected void unloadZone(View zone)
Разгрузка зоны (преобразование зоны в состояние экономии памяти). Ожидается, что зоны будут представлять подмножество дочерних элементов элемента, за который отвечает этот вид. Поэтому стандартная реализация состоит в простом удалении всех дочерних элементов.
Параметры:
zone - дочерний вид, который нужно установить в незагруженное состояние.

isZoneLoaded

protected boolean isZoneLoaded(View zone)
Определяет, находится ли зона в загруженном состоянии. Ожидается, что зоны будут представлять подмножество дочерних элементов элемента, за который отвечает этот вид. Таким образом, стандартная реализация возвращает true, если вид имеет дочерние элементы. param zone дочерний вид
Параметры:
zone - зона
Возвращает:
является ли зона загруженной.

createZone

protected View createZone(int p0, int p1)
Создание вида для представления зоны для заданного диапазона в модели (который должен находиться в пределах ответственности данного объекта). Это вызывается логикой управления зонами для создания новых зон. Подклассы могут предоставить другую реализацию для зоны, изменив этот метод.
Параметры:
p0 - начало желаемой зоны. Должно быть >= getStartOffset() и < getEndOffset(). Это значение также должно быть < p1.
p1 - конец желаемой зоны. Должно быть > getStartOffset() и <= getEndOffset(). Это значение также должно быть > p0.
Возвращает:
вид для представления зоны для заданного диапазона в модели

loadChildren

protected void loadChildren(ViewFactory f)
Загрузка всех дочерних элементов для инициализации вида. Это вызывается методом setParent. Эта реализация переопределена для того, чтобы не загружать дочерние элементы напрямую (так как они создаются зонами). Этот метод создает начальный набор зон. Однако зоны фактически не заполняются до тех пор, пока не будет сделана попытка отобразить их или выполнить преобразование координат модель/вид.
Переопределяет:
loadChildren в классе CompositeView
Параметры:
f - фабрика видов
См. также:
  • CompositeView.setParent(javax.swing.text.View)

getViewIndexAtPosition

protected int getViewIndexAtPosition(int pos)
Возвращает индекс дочернего вида, представляющий данную позицию в модели.
Переопределяет:
getViewIndexAtPosition в классе CompositeView
Параметры:
pos - позиция >= 0
Возвращает:
индекс вида, представляющего данную позицию, или -1, если такой вид не найден

updateChildren

protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
Поведение родительского класса попытается обновить дочерние виды, что в этом случае нежелательно, поскольку дочерние элементы являются зонами и не затрагиваются непосредственно изменениями в связанном элементе. Эта реализация переопределена для того, чтобы ничего не делать и вернуть false.
Переопределяет:
updateChildren в классе View
Параметры:
ec - информация об изменении для элемента, за который отвечает этот вид. Это не должно быть null если этот метод вызывается
e - информация об изменениях из связанного документа
f - фабрика для создания дочерних видов
Возвращает:
является ли представление дочерних элементов элементом, за который отвечает этот вид. Некоторые виды создают дочерние элементы, представляющие часть элемента, за который они отвечают, и должны возвращать false. Эта информация используется для определения того, следует ли перенаправлять представления в диапазоне добавленных элементов или нет
См. также:
  • 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)

insertUpdate

public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
Уведомление о вставке чего-либо в документ в месте, за которое отвечает этот вид. В основном делегируется родителю, но переопределяется для обновления соответствующей зоны (т.е. определения, требуется ли разделить зону на 2 или более зон).
Переопределяет:
insertUpdate в классе View
Параметры:
changes - информация об изменениях из связанного документа
a - текущее распределение вида
f - фабрика для перестроения, если у вида есть дочерние элементы
См. также:
  • View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

removeUpdate

public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
Уведомление об удалении чего-либо из документа в месте, за которое отвечает этот вид. В основном делегируется родителю, но переопределяется для обновления соответствующих зон (т.е. определения, требуется ли удалить зоны или объединить их с другой зоной).
Переопределяет:
removeUpdate в классе View
Параметры:
changes - информация об изменениях из связанного документа
a - текущее распределение вида
f - фабрика для перестроения, если у вида есть дочерние элементы
См. также:
  • View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

© 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/ZoneView.html

Spec-Zone.ru

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