Spec-Zone.ru › OpenJDK 8

Класс Вид

  • java.lang.Object
    • javax.swing.text.View
Все реализованные интерфейсы:
SwingConstants
Прямые известные подклассы:
AsyncBoxView, ComponentView, CompositeView, GlyphView, IconView, ImageView, PlainView

public abstract class View
extends Object
implements SwingConstants

Важная часть пакета text — это класс View. Как следует из названия, он представляет собой вид модели текста или фрагмента модели текста. Именно этот класс отвечает за внешний вид компонента текста. Вид не предназначен для того, чтобы быть чем-то совершенно новым, что нужно изучить, а скорее, напоминает лёгкий компонент.

По умолчанию вид очень лёгкий. Он содержит ссылку на родительский вид, из которого он может извлекать много информации без хранения состояния, и ссылку на часть модели (Element). Вид не обязан точно представлять элемент в модели, это просто типичное и, следовательно, удобное отображение. В качестве альтернативы вид может хранить несколько объектов Position, чтобы поддерживать своё местоположение в модели (то есть представлять фрагмент элемента). Это обычно результат форматирования, когда виды разбиваются на части. Удобство существенной связи с элементом упрощает создание фабрик для создания видов и отслеживание фрагментов вида при изменении модели, когда вид должен отразить изменения в модели. Простые виды, следовательно, напрямую представляют элемент, а сложные — нет.

Вид отвечает за следующие действия:

Участие в компоновке.

Вид имеет метод setSize, который похож на doLayout и setSize в Component в совокупности. Вид имеет метод preferenceChanged, который похож на invalidate в Component за исключением того, что можно сделать недействительной только одну ось, и определяется дочерний элемент, запрашивающий изменение.

Вид выражает желаемый размер в терминах трёх значений: минимального, предпочтительного и максимального размера. Компоновка в виде может выполняться независимо по каждой оси. Для корректной реализации View минимальный размер будет <= предпочтительного, который в свою очередь будет <= максимального размера.

The above text describes this graphic.

Минимальный набор методов для компоновки:

  • getMinimumSpan
  • getPreferredSpan
  • getMaximumSpan
  • getAlignment
  • preferenceChanged
  • setSize

Метод setSize должен быть готов к вызову несколько раз (то есть он может вызываться даже если размер не изменился). Метод setSize обычно вызывается, чтобы убедиться, что компоновка View завершена перед выполнением операции с ним, требующей актуальной компоновки. Размер вида всегда должен устанавливаться в значение, находящееся в пределах минимального и максимального размера, указанных этим видом. Кроме того, вид всегда должен вызывать метод preferenceChanged в родительском элементе, если он изменил значения для компоновки, которые он хотел бы видеть учтёнными. Родительский View не обязан распознать изменение до тех пор, пока preferenceChanged не будет отправлено. Это позволяет родительским View-реализациям кэшировать требования дочерних элементов при необходимости. Последовательность вызовов выглядит примерно так:

Sample calling sequence between parent view and child view:
       setSize, getMinimum, getPreferred, getMaximum, getAlignment, setSize

Точная последовательность вызовов зависит от функциональности компоновки родительского вида (если у вида есть дочерние элементы). Вид может собрать предпочтения дочерних элементов перед тем, как определить, что он даст каждому из них, или может итеративно обновлять дочерние элементы по одному.

Отображение части модели.

Это делается в методе paint, который очень похож на метод paint компонента. Ожидается, что виды могут потенциально заполнять довольно большую иерархию. Метод View имеет следующие характеристики для отрисовки:

  • Вид получает своё размещение от родителя во время отрисовки, поэтому он должен быть готов повторно выполнить компоновку, если выделенная область отличается от ожидаемой.
  • Система координат совпадает с системой координат размещающего Component (то есть Component возвращаемого методом getContainer). Это означает, что дочерний вид существует в той же системе координат, что и родительский вид, если родитель явно не изменил систему координат. Чтобы запланировать перерисовку, вид может вызвать repaint в размещающем Component.
  • По умолчанию дети не обрезаются. Более эффективно разрешать обрезку вида только в случае необходимости.
  • Объект Graphics не инициализируется каким-либо образом. Вид должен установить все необходимые настройки.
  • Сам по себе View является прозрачным. Хотя вид может отрисоваться в своём полном размещении, обычно этого не происходит. Отрисовка выполняется путём обхода дерева реализаций View. Каждый View отвечает за отрисовку своих детей. Эта функциональность необходима для обеспечения потокобезопасности. Хотя реализации видов необязательно должны быть реализованы с учётом потокобезопасности, другие реализации видов, использующие параллельность, могут полагаться на обход дерева для гарантии потокобезопасности.
  • Порядок расположения видов относительно модели определяется реализацией. Хотя дочерние виды обычно размещаются в том же порядке, что и в модели, они могут быть визуально расположены в совершенно другом порядке. Реализации видов могут иметь порядок Z, если дочерние элементы перекрываются.

Методы для отрисовки:

  • paint
Преобразование между системами координат модели и вида.

Так как объекты вида создаются фабрикой и поэтому нельзя гарантировать их определённую структуру, необходимо уметь выполнять преобразования для правильного определения пространственного представления модели. Методы для этого:

  • modelToView
  • viewToModel
  • getDocument
  • getElement
  • getStartOffset
  • getEndOffset

Компоновка должна быть действительной перед попыткой выполнить преобразование. Преобразование недействительно и не должно выполняться во время распространения изменений из модели через DocumentEvent.

Реагирование на изменения модели.

Если весь вид представлен множеством фрагментов (что лучше всего подходит, если нужно изменить вид, написав наименьшее количество нового кода), было бы непрактично иметь большое количество DocumentListener. Если каждый вид следил бы за моделью, только несколько из них действительно интересовались бы изменениями, которые транслировались в любой момент времени. Поскольку модель не знает о видах, у неё нет способа отфильтровать трансляцию информации о изменениях. Вместо этого, иерархия видов несет ответственность за распространение информации об изменениях. На любом уровне иерархии видов, этот вид знает достаточно о своих детях, чтобы лучше распространить информацию о изменениях дальше. Поэтому изменения транслируются, начиная с корня иерархии видов. Методы для этого:

  • insertUpdate
  • removeUpdate
  • changedUpdate

Поля

Модификатор и тип Поле и описание
static int BadBreakWeight

Вес, указывающий на то, что вид является плохой точкой разрыва для целей форматирования.

static int ExcellentBreakWeight

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

static int ForcedBreakWeight

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

static int GoodBreakWeight

Вес, указывающий на то, что вид поддерживает разрыв, но, вероятно, существуют лучшие варианты.

static int X_AXIS

Ось для операций форматирования/разрыва.

static int 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

Конструкторы

Конструктор и описание
View(Element elem)

Создаёт новый объект View.

Методы

Модификатор и тип Метод и описание
void append(View v)

Добавляет единственный дочерний вид.

View breakView(int axis, int offset, float pos, float len)

Пытается разбить этот вид по заданной оси.

void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)

Получает уведомление от документа о том, что атрибуты были изменены в месте, за которое отвечает этот вид.

View createFragment(int p0, int p1)

Создаёт вид, представляющий часть элемента.

protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)

Пересылает заданное DocumentEvent дочерним видам, которым нужно сообщить об изменении модели.

protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)

Пересылает DocumentEvent заданному дочернему виду.

float getAlignment(int axis)

Определяет желаемое выравнивание этого вида вдоль оси.

AttributeSet getAttributes()

Получает атрибуты для использования при отрисовке.

int getBreakWeight(int axis, float pos, float len)

Определяет, насколько привлекательна возможность разрыва в этом виде.

Shape getChildAllocation(int index, Shape a)

Получает выделение для заданного дочернего вида.

Container getContainer()

Получает контейнер, содержащий вид.

Document getDocument()

Получает модель, связанную с видом.

Element getElement()

Получает структурную часть объекта, к которой сопоставлен этот вид.

int getEndOffset()

Получает часть модели, за которую отвечает этот вид.

Graphics getGraphics()

Получает Graphics для отрисовки.

float getMaximumSpan(int axis)

Определяет максимальную длину этого вида вдоль оси.

float getMinimumSpan(int axis)

Определяет минимальную длину этого вида вдоль оси.

int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)

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

View getParent()

Возвращает родителя вида.

abstract float getPreferredSpan(int axis)

Определяет предпочтительную длину этого вида вдоль оси.

int getResizeWeight(int axis)

Определяет возможность изменения размера вида вдоль заданной оси.

int getStartOffset()

Получает часть модели, за которую отвечает этот вид.

String getToolTipText(float x, float y, Shape allocation)

Возвращает текст всплывающей подсказки в указанном месте.

View getView(int n)

Получает n-ый дочерний вид.

int getViewCount()

Возвращает количество видов в этом виде.

ViewFactory getViewFactory()

Получает реализацию ViewFactory, которая обеспечивает иерархию видов.

int getViewIndex(float x, float y, Shape allocation)

Возвращает индекс дочернего вида, представляющий данное положение в виде.

int getViewIndex(int pos, Position.Bias b)

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

void insert(int offs, View v)

Вставляет единственный дочерний вид.

void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)

Предоставляет уведомление о том, что что-то было вставлено в документ в месте, за которое отвечает этот вид.

boolean isVisible()

Возвращает логическое значение, указывающее, виден ли вид или нет.

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

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

Shape modelToView(int pos, Shape a)

Устаревшее.

abstract Shape modelToView(int pos, Shape a, Position.Bias b)

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

abstract void paint(Graphics g, Shape allocation)

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

void preferenceChanged(View child, boolean width, boolean height)

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

void remove(int i)

Удаляет один из детей в заданной позиции.

void removeAll()

Удаляет всех детей.

void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)

Предоставляет уведомление о том, что что-то было удалено из документа в месте, за которое отвечает этот вид.

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

Заменяет дочерние представления.

void setParent(View parent)

Устанавливает родительский вид для этого вида.

void setSize(float width, float height)

Устанавливает размер представления.

protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)

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

protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)

Обновляет макет в ответ на получение уведомления об изменении от модели.

int viewToModel(float x, float y, Shape a)

Устаревшее.

abstract int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)

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

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

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

Поля

BadBreakWeight

public static final int BadBreakWeight

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

См. также:
getBreakWeight(int, float, float), GoodBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, Значения константного поля

GoodBreakWeight

public static final int GoodBreakWeight

Вес, указывающий, что вид поддерживает разрыв, но, вероятно, существуют лучшие возможности.

См. также:
getBreakWeight(int, float, float), BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, Значения константного поля

ExcellentBreakWeight

public static final int ExcellentBreakWeight

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

См. также:
getBreakWeight(int, float, float), BadBreakWeight, GoodBreakWeight, ForcedBreakWeight, Значения константного поля

ForcedBreakWeight

public static final int ForcedBreakWeight

Вес, указывающий, что вид поддерживает разрыв и должен быть разорван для правильного представления при размещении в виде, который форматирует своих дочерних элементов, разрывая их.

См. также:
getBreakWeight(int, float, float), BadBreakWeight, GoodBreakWeight, ExcellentBreakWeight, Значения константного поля

X_AXIS

public static final int X_AXIS

Ось для операций форматирования/разрыва.

См. также:
Значения константного поля

Y_AXIS

public static final int Y_AXIS

Ось для операций форматирования/разрыва.

См. также:
Значения константного поля

Конструкторы

View

public View(Element elem)

Создает новый объект View.

Параметры:
elem - Element для представления

Методы

getParent

public View getParent()

Возвращает родительский элемент представления.

Возвращает:
родительский элемент или null, если он отсутствует

isVisible

public boolean isVisible()

Возвращает значение булевого типа, указывающее, отображается ли вид или нет. По умолчанию все виды отображаются.

Возвращает:
всегда возвращает true

getPreferredSpan

public abstract float getPreferredSpan(int axis)

Определяет предпочтительный размер для этого представления вдоль оси.

Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
размер, который представление хотело бы отображать. Как правило, представление получает указание отображаться в возвращенном размере, хотя это не гарантируется. Родительский элемент может выбрать изменение размера или разбиение представления
См. также:
getPreferredSpan(int)

getMinimumSpan

public float getMinimumSpan(int axis)

Определяет минимальный размер для этого представления вдоль оси.

Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
минимальный размер, в который можно отобразить представление
См. также:
getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)

Определяет максимальный размер для этого представления вдоль оси.

Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
максимальный размер, в который можно отобразить представление
См. также:
getPreferredSpan(int)

preferenceChanged

public void preferenceChanged(View child,
                              boolean width,
                              boolean height)

Дочерние представления могут вызвать этот метод для родительского элемента, чтобы указать, что предпочтения изменились и должны быть повторно рассмотрены для компоновки. По умолчанию это просто передается наверх следующему родительскому элементу. Корневой вид вызовет revalidate на связанном текстовом компоненте.

Параметры:
child - дочернее представление
width - true, если изменились предпочтения по ширине
height - true, если изменились предпочтения по высоте
См. также:
JComponent.revalidate()

getAlignment

public float getAlignment(int axis)

Определяет желаемое выравнивание для этого представления вдоль оси. Возвращается желаемое выравнивание. Оно должно быть значением >= 0.0 и <= 1.0, где 0 указывает выравнивание по началу, а 1.0 указывает выравнивание по полному размеру, удаляясь от начала. Выравнивание 0,5 будет центром представления.

Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
значение 0,5

paint

public abstract void paint(Graphics g,
                           Shape allocation)

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

Параметры:
g - поверхность рендеринга для использования
allocation - выделенная область для отображения

setParent

public void setParent(View parent)

Устанавливает родительское представление для этого представления. Это гарантированно будет вызвано до любых других методов, если родительское представление работает должным образом. Это также последний вызванный метод, так как он вызывается для указания удаления представления из иерархии. Когда этот метод вызывается для установки родителя в null, он делает то же самое для каждого из своих дочерних элементов, передавая уведомление о том, что они отключены от дерева представлений. Если этот метод переопределен, следует вызвать super.setParent().

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

getViewCount

public int getViewCount()

Возвращает количество представлений в этом представлении. Так как по умолчанию это не составное представление, это возвращает 0.

Возвращает:
количество представлений >= 0
См. также:
getViewCount()

getView

public View getView(int n)

Получает n-е дочернее представление. Поскольку по умолчанию нет дочерних элементов, этот метод возвращает null.

Параметры:
n - номер представления для получения, >= 0 && < getViewCount()
Возвращает:
представление

removeAll

public void removeAll()

Удаляет все дочерние элементы. Это удобный вызов для replace.

С:
1.3

remove

public void remove(int i)

Удаляет одно из дочерних элементов в заданной позиции. Это удобный вызов для replace.

С:
1.3

insert

public void insert(int offs,
                   View v)

Вставляет единственное дочернее представление. Это удобный вызов для replace.

Параметры:
offs - смещение представления для вставки перед >= 0
v - представление
С:
1.3
См. также:
replace(int, int, javax.swing.text.View[])

append

public void append(View v)

Добавляет единственное дочернее представление. Это удобный вызов для replace.

Параметры:
v - представление
С:
1.3
См. также:
replace(int, int, javax.swing.text.View[])

replace

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

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

Параметры:
offset - начальный индекс дочерних представлений для вставки новых представлений. Это должно быть значение >= 0 и <= getViewCount
length - количество существующих дочерних представлений для удаления. Это должно быть значение >= 0 и <= (getViewCount() - offset).
views - дочерние представления для добавления. Это значение может быть null для указания отсутствия добавляемых дочерних элементов (полезно для удаления).
С:
1.3

getViewIndex

public int getViewIndex(int pos,
                        Position.Bias b)

Возвращает индекс дочернего представления, представляющий заданную позицию в модели. По умолчанию у представления нет дочерних элементов, поэтому этот метод реализован для возвращения -1, чтобы указать, что для любой позиции нет допустимого индекса дочернего элемента.

Параметры:
pos - позиция >= 0
Возвращает:
индекс представления, представляющего заданную позицию, или -1, если представление не представляет эту позицию
С:
1.3

getChildAllocation

public Shape getChildAllocation(int index,
                                Shape a)

Извлекает выделение для данного дочернего представления. Это позволяет определить расположение различных представлений, не предполагая, как представления хранят своё расположение. Возвращает null, так как по умолчанию дочерних представлений нет.

Параметры:
index - индекс дочернего элемента, >= 0 && < getViewCount()
a - выделение для этого представления
Возвращает:
выделение для дочернего элемента

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos,
                                     Position.Bias b,
                                     Shape a,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException

Предоставляет способ определения следующего визуально представленного расположения модели, в котором можно разместить курсор. Некоторые представления могут быть невидимыми, они могут не находиться в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым расположениям в модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция будет вычислена автоматически. Если значение < -1, будет выброшено BadLocationException.

Параметры:
pos - позиция для преобразования
a - выделенная область для отрисовки
direction - направление от текущей позиции, которое можно рассматривать как стрелочные клавиши на клавиатуре. Будет иметь одно из следующих значений:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
Возвращает:
местоположение в модели, которое наилучшим образом представляет следующую позицию визуального расположения
Исключение:
BadLocationException - заданная позиция не является допустимой позицией в документе
IllegalArgumentException - если direction не имеет одного из допустимых значений выше

modelToView

public abstract Shape modelToView(int pos,
                                  Shape a,
                                  Position.Bias b)
                           throws BadLocationException

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

Параметры:
pos - позиция желаемого символа (>=0)
a - область представления, которая охватывает запрашиваемый символ
b - смещение в сторону предыдущего символа или следующего символа, в случае если позиция является границей двух представлений; b будет иметь одно из этих значений:
  • Position.Bias.Forward
  • Position.Bias.Backward
Возвращает:
прямоугольник, в координатном пространстве представления, символа в заданной позиции
Исключение:
BadLocationException - если заданная позиция не представляет действительное расположение в связанном документе
IllegalArgumentException - если b не является одним из допустимых Position.Bias значений, перечисленных выше
См. также:
viewToModel(float, float, 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

Предоставляет отображение, для заданного региона, из координатного пространства модели документа в координатное пространство представления. Заданный регион создаётся как объединение позиций первого и последнего символов.

Параметры:
p0 - позиция первого символа (>=0)
b0 - смещение первой позиции символа, в сторону предыдущего или следующего символа, если позиция является границей двух представлений; b0 будет иметь одно из этих значений:
  • Position.Bias.Forward
  • Position.Bias.Backward
p1 - позиция последнего символа (>=0)
b1 - смещение для второй позиции символа, определённое одним из допустимых значений, показанных выше
a - область представления, которая охватывает запрашиваемый регион
Возвращает:
прямоугольник, являющийся объединением области, заданной позициями первого и последнего символов
Исключение:
BadLocationException - если заданная позиция не представляет действительное расположение в связанном документе
IllegalArgumentException - если b0 или b1 не являются одним из допустимых Position.Bias значений, перечисленных выше
См. также:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

public abstract int viewToModel(float x,
                                float y,
                                Shape a,
                                Position.Bias[] biasReturn)

Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или к предыдущему символу в модели.

Параметры:
x - координата X >= 0
y - координата Y >= 0
a - выделенная область для отрисовки
Возвращает:
местоположение в модели, которое наилучшим образом представляет данную точку в представлении >= 0. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или к предыдущему символу в модели.

insertUpdate

public void insertUpdate(DocumentEvent e,
                         Shape a,
                         ViewFactory f)

Сообщает о вставке в документ в место, за которое отвечает данное представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:

  1. updateChildren вызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность исправить макет, перепланировать макет или ничего не делать.

Параметры:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика для использования при перестроении, если у представления есть дочерние элементы
См. также:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

removeUpdate

public void removeUpdate(DocumentEvent e,
                         Shape a,
                         ViewFactory f)

Сообщает об удалении из документа в месте, за которое отвечает данное представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:

  1. updateChildren вызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность исправить макет, перепланировать макет или ничего не делать.

Параметры:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика для использования при перестроении, если у представления есть дочерние элементы
См. также:
removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

changedUpdate

public void changedUpdate(DocumentEvent e,
                          Shape a,
                          ViewFactory f)

Сообщает от документа о изменении атрибутов в место, за которое отвечает это представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:

  1. updateChildren вызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность исправить макет, перепланировать макет или ничего не делать.

Параметры:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика для использования при перестроении, если у представления есть дочерние элементы
См. также:
changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

getDocument

public Document getDocument()

Возвращает модель, связанную с представлением.

Возвращает:
модель представления, null если нет
См. также:
getDocument()

getStartOffset

public int getStartOffset()

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

Возвращает:
начальный смещение в модели >= 0
См. также:
getStartOffset()

getEndOffset

public int getEndOffset()

Извлекает часть модели, за которую отвечает этот вид.

Возвращает:
конечное смещение в модели >= 0
См. также:
getEndOffset()

getElement

public Element getElement()

Извлекает структурную часть объекта, к которой сопоставлен этот вид. Вид может не отвечать за всю часть элемента.

Возвращает:
объект
См. также:
getElement()

getGraphics

public Graphics getGraphics()

Извлечь Graphics для отрисовки. Это можно использовать для определения характеристик шрифта, и оно будет отличаться для просмотра печати и просмотра компонента.

Возвращает:
объект Graphics для отрисовки
С момента:
1.3

getAttributes

public AttributeSet getAttributes()

Извлекает атрибуты, используемые при отрисовке. По умолчанию это просто возвращает атрибуты связанного элемента. Этот метод следует использовать вместо прямого использования элемента для получения доступа к атрибутам, чтобы позволить смешивать атрибуты, специфичные для представления, или позволить представлению иметь преобразование атрибутов, специфичных для представления, подклассами. Каждое представление должно документировать, какие атрибуты оно распознает для целей рендеринга или макета, и всегда должно обращаться к ним через возвращаемый AttributeSet этим методом.

breakView

public View breakView(int axis,
                      int offset,
                      float pos,
                      float len)

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

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

Параметры:
axis - может быть View.X_AXIS или View.Y_AXIS
offset - местоположение в модели документа, которое занимал бы разбитый фрагмент >= 0. Это было бы начальное смещение возвращенного фрагмента
pos - положение вдоль оси, которое занимал бы разбитое представление >= 0. Это может быть полезно для вычислений с отступами
len - указывает расстояние вдоль оси, где желательно потенциальное разбиение >= 0
Возвращает:
фрагмент представления, который представляет заданный интервал, если представление может быть разделено. Если представление не поддерживает поведение разбиения, возвращается само представление.
См. также:
ParagraphView

createFragment

public View createFragment(int p0,
                           int p1)

Создает представление, которое представляет собой часть элемента. Это потенциально полезно во время операций форматирования для взятия размеров фрагментов представления. Если представление не поддерживает фрагментацию (по умолчанию), оно должно вернуть себя.

Параметры:
p0 - начальное смещение >= 0. Это должно быть значение, большее или равное начальному смещению элемента и меньше конечного смещения элемента.
p1 - конечное смещение > p0. Это должно быть значение, меньшее или равное конечному смещению элемента и больше начального смещения элемента.
Возвращает:
фрагмент представления или само представление, если представление не поддерживает разбиение на фрагменты
См. также:
LabelView

getBreakWeight

public int getBreakWeight(int axis,
                          float pos,
                          float len)

Определяет, насколько привлекательной является возможность разрыва в этом представлении. Это можно использовать для определения того, какое представление наиболее привлекательно для вызова breakView в процессе форматирования. Например, представление, представляющее текст, в котором есть пробелы, может быть более привлекательным, чем представление без пробелов. Чем выше вес, тем более привлекательно разбиение. Значение, равное или меньшее BadBreakWeight, не должно рассматриваться для разбиения. Значение, большее или равное ForcedBreakWeight, должно быть разделено.

Это реализовано для предоставления поведения по умолчанию, возвращающего BadBreakWeight, если длина больше длины представления, в этом случае все представление представляет фрагмент. Если представление не настроено для поддержки разбиения, не рекомендуется пытаться разбить представление. Пример представления, поддерживающего разбиение, — LabelView. Пример представления, использующего вес разбиения, — ParagraphView.

Параметры:
axis - может быть View.X_AXIS или View.Y_AXIS
pos - потенциальное расположение начала разбитого представления >= 0. Это может быть полезно для расчета позиций табуляции
len - указывает относительную длину от pos, где требуется потенциальное разбиение >= 0
Возвращает:
вес, который должен быть значением между ForcedBreakWeight и BadBreakWeight
См. также:
LabelView, ParagraphView, BadBreakWeight, GoodBreakWeight, ExcellentBreakWeight, ForcedBreakWeight

getResizeWeight

public int getResizeWeight(int axis)

Определяет возможность изменения размера представления вдоль заданной оси. Значение 0 или меньше означает, что изменение размера невозможно.

Параметры:
axis - может быть View.X_AXIS или View.Y_AXIS
Возвращает:
вес

setSize

public void setSize(float width,
                    float height)

Устанавливает размер представления. Это должно вызвать макетирование представления вдоль данной оси, если оно выполняет какие-либо задачи макетирования.

Параметры:
width - ширина >= 0
height - высота >= 0

getContainer

public Container getContainer()

Извлекает контейнер, в котором размещено представление. Это полезно для таких задач, как планирование перерисовки, выяснение шрифта хостинговых компонентов и т. д. По умолчанию эта реализация перенаправляет запрос на родительское представление.

Возвращает:
контейнер, null если нет

getViewFactory

public ViewFactory getViewFactory()

Извлекает реализацию ViewFactory, которая обеспечивает иерархию представлений. Обычно представления получают это в качестве аргумента для обновлений из модели, когда они, скорее всего, потребуют фабрики, но этот метод служит для предоставления ее в другое время.

Возвращает:
фабрика, null если нет

getToolTipText

public String getToolTipText(float x,
                             float y,
                             Shape allocation)

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

С момента:
1.4
См. также:
JTextComponent.getToolTipText(java.awt.event.MouseEvent)

getViewIndex

public int getViewIndex(float x,
                        float y,
                        Shape allocation)

Возвращает индекс дочернего представления, представляющего данную позицию в представлении. Это выполняет итерацию по всем дочерним элементам, возвращая первый с границами, содержащими x, y.

Параметры:
x - координата x
y - координата y
allocation - текущее выделение представления.
Возвращает:
индекс представления, представляющего данное расположение, или -1, если такое расположение не представлено ни одним представлением
С момента:
1.4

updateChildren

protected boolean updateChildren(DocumentEvent.ElementChange ec,
                                 DocumentEvent e,
                                 ViewFactory f)

Обновляет дочерние представления в ответ на получение уведомления о том, что модель изменилась, и есть запись об изменениях для элемента, за который отвечает это представление. Это реализовано так, чтобы предположить, что дочерние представления напрямую отвечают за дочерние элементы элемента, который представляет это представление. ViewFactory используется для создания дочерних представлений для каждого указанного добавленного элемента в ElementChange, начиная с индекса, указанного в данном ElementChange. Удаляется количество дочерних представлений, представляющих удаленные элементы, указанные.

Параметры:
ec - информация об изменениях для элемента, за который отвечает это представление. Это не должно быть null если этот метод вызывается
e - информация об изменениях из связанного документа
f - фабрика для создания дочерних представлений
Возвращает:
являются ли дочерние представления ответственными за дочерние элементы элемента, за который это представление отвечает. Некоторые представления создают дочерние элементы, которые представляют часть элемента, за который они отвечают, и должны возвращать false. Эта информация используется для определения того, следует ли пересылать представления в диапазоне добавленных элементов или нет
С момента:
1.3
См. также:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdate

protected void forwardUpdate(DocumentEvent.ElementChange ec,
                             DocumentEvent e,
                             Shape a,
                             ViewFactory f)

Пересылает данный DocumentEvent дочерним представлениям, которым необходимо уведомлять об изменении модели. Если были изменения в элементе, за который отвечает это представление, это следует учитывать при пересылке (т.е. новые дочерние представления не должны получать уведомления).

Параметры:
ec - изменения в элементе, за который отвечает этот вид (может быть null, если изменений не было).
e - информация об изменениях из связанного документа
a - текущее распределение вида
f - фабрика, используемая для перестроения, если у вида есть дочерние элементы
С момента:
1.3
См. также:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdateToView

protected void forwardUpdateToView(View v,
                                   DocumentEvent e,
                                   Shape a,
                                   ViewFactory f)

Пересылает DocumentEvent дочернему представлению. Просто отправляет сообщению представление с вызовом insertUpdate, removeUpdate, или changedUpdate, в зависимости от типа события. Вызывается методом forwardUpdate для пересылки события дочерним элементам, которые его нуждаются.

Параметры:
v - дочернее представление, которому пересылается событие
e - информация об изменениях из связанного документа
a - текущее распределение вида
f - фабрика, используемая для перестроения, если у вида есть дочерние элементы
С момента:
1.3
См. также:
forwardUpdate(javax.swing.event.DocumentEvent.ElementChange, javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec,
                            DocumentEvent e,
                            Shape a)

Обновляет макет в ответ на получение уведомления об изменениях от модели. Реализуется для вызова preferenceChanged для перепланирования нового макета, если запись ElementChange не null.

Параметры:
ec - изменения в элементе, за который отвечает этот вид (может быть null, если изменений не было)
e - информация об изменениях из связанного документа
a - текущее распределение вида
С момента:
1.3
См. также:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

modelToView

@Deprecated
public Shape modelToView(int pos,
                                     Shape a)
                              throws BadLocationException

Устарело.

Обеспечивает отображение из координатного пространства модели документа в координатное пространство отображения, связанного с ней. Реализуется для установки смещения по умолчанию в Position.Bias.Forward, что ранее подразумевалось.

Параметры:
pos - позиция для преобразования >= 0
a - выделенная область для отрисовки
Возвращает:
возвращается ограничивающая рамка заданной позиции
Исключения:
BadLocationException - если заданная позиция не представляет действительную локацию в связанном документе
См. также:
modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

@Deprecated
public int viewToModel(float x,
                                   float y,
                                   Shape a)

Устарело.

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

Параметры:
x - координата X >= 0
y - координата Y >= 0
a - выделенная область для отрисовки
Возвращает:
местоположение в модели, наиболее точно представляющее заданную точку в представлении >= 0
См. также:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

© 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