Класс FlowView.FlowStrategy
- java.lang.Object
-
- javax.swing.text.FlowView.FlowStrategy
- Вложенный класс:
- FlowView
public static class FlowView.FlowStrategy extends Object
Стратегия поддержания физической формы потока. Реализация по умолчанию полностью бессостоятельна и пересчитывает весь поток, если макет недействителен для данного FlowView. Альтернативные стратегии могут быть реализованы путём наследования и могут выполнять инкрементальный ремонт макета или альтернативное поведение разрыва.
- С момента:
- 1.3
Конструкторы
| Конструктор и описание |
|---|
FlowStrategy()
|
Методы
| Модификатор и тип | Метод и описание |
|---|---|
protected void |
adjustRow(FlowView fv,
int rowIndex,
int desiredSpan,
int x)
Корректирует заданную строку, если это возможно, чтобы она вписалась в область макета. |
void |
changedUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление от документа о том, что атрибуты были изменены в месте, за которое отвечает этот вид. |
protected View |
createView(FlowView fv,
int startOffset,
int spanLeft,
int rowIndex)
Создаёт вид, который можно использовать для представления текущей части потока. |
protected View |
getLogicalView(FlowView fv)
Этот метод предоставляет стратегиям потока доступ к логическому представлению FlowView. |
void |
insertUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление о том, что что-то было вставлено в документ в месте, за которое отвечает данный вид потока. |
void |
layout(FlowView fv)
Обновляет поток в заданном FlowView. |
protected int |
layoutRow(FlowView fv,
int rowIndex,
int pos)
Создаёт строку представлений, которые поместятся в область макета строки. |
void |
removeUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление о том, что что-то было удалено из документа в месте, за которое отвечает данный вид потока. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
FlowStrategy
public FlowStrategy()
Методы
insertUpdate
public void insertUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление о том, что что-то было вставлено в документ в месте, за которое отвечает данный вид потока. Стратегия должна обновить соответствующую изменённую область (которая зависит от используемой стратегии ремонта).
- Параметры:
-
e- информация о изменении из связанного документа -
alloc- текущее распределение представления внутри отступов. Это значение будет null, если представление ещё не отображено. - См. также:
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
removeUpdate
public void removeUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление о том, что что-то было удалено из документа в месте, за которое отвечает данный вид потока.
- Параметры:
-
e- информация о изменении из связанного документа -
alloc- текущее распределение представления внутри отступов. - См. также:
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
changedUpdate
public void changedUpdate(FlowView fv,
DocumentEvent e,
Rectangle alloc)
Предоставляет уведомление от документа о том, что атрибуты были изменены в месте, за которое отвечает этот вид.
- Параметры:
-
fv-FlowViewсодержащий изменения -
e-DocumentEventописывающий изменения, внесённые в документ -
alloc- Границы представления - См. также:
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
getLogicalView
protected View getLogicalView(FlowView fv)
Этот метод предоставляет стратегиям потока доступ к логическому представлению FlowView.
layout
public void layout(FlowView fv)
Обновляет поток в заданном FlowView. По умолчанию это приводит к перестроению всех строк (дочерних представлений) для соответствия заданным ограничениям для каждой строки. Это вызывается методом FlowView.layout для обновления дочерних представлений в потоке.
- Параметры:
-
fv- представление для перестроения потока
layoutRow
protected int layoutRow(FlowView fv,
int rowIndex,
int pos)
Создаёт строку представлений, которые поместятся в область макета строки. Это вызывается методом layout. Этот метод реализован для заполнения строки многократным вызовом метода createView до тех пор, пока не будет исчерпана доступная область, не будет встречен принудительный разрыв или метод createView не вернёт null. Если оставшаяся область была исчерпана, будет вызван метод adjustRow для выполнения корректировок строки, чтобы она соответствовала заданной области.
- Параметры:
-
rowIndex- индекс строки для заполнения представлениями. Предполагается, что строка пуста при входе. -
pos- Текущая позиция в дочерних элементах этого элемента представления, с которого начать. - Возвращает:
- позицию для начала следующей строки
adjustRow
protected void adjustRow(FlowView fv,
int rowIndex,
int desiredSpan,
int x)
Корректирует заданную строку, если это возможно, чтобы она вписалась в область макета. По умолчанию это будет пытаться найти наибольший вес разрыва, ближайший к концу строки. Если встречен принудительный разрыв, разрыв будет расположен там.
- Параметры:
-
rowIndex- строка для корректировки в соответствии с текущей областью макета. -
desiredSpan- текущая область макета >= 0 -
x- позиция, с которой начинается r.
createView
protected View createView(FlowView fv,
int startOffset,
int spanLeft,
int rowIndex)
Создаёт представление, которое можно использовать для представления текущей части потока. Это может быть как целое представление из логического представления, так и фрагмент логического представления.
- Параметры:
-
fv- представление, содержащее поток -
startOffset- начальная позиция для создаваемого представления -
spanLeft- оставшаяся область для заполнения строки -
rowIndex- строка, в которую будет помещено представление
© 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.