openjdk.ruOpenJDK на русском

JEP 209: JavaFX Scene Builder Update

Обновление JavaFX Scene Builder

ОтветственныйSimon Vienot
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск8u40
Компонентclient-libs
Обсуждениеopenjfx dash dev at openjdk dot java dot net
ТрудоёмкостьM
ДлительностьM
Связан сJEP 205: New Controls for JavaFX
JEP 204: JavaFX Accessibility
РецензентыEric Le Ponner
ОдобренRichard Bair
Создан2014/06/25 17:51
Обновлён2014/10/01 16:14
Задача8048125

Аннотация

Обновить Scene Builder (SB), чтобы он поддерживал новые возможности JavaFX, появившиеся в выпуске 8u40, а также устранить наиболее критичные ограничения выпуска SB 2.0, в частности обработку ссылок FXML. Значительных новых возможностей добавлено не будет.

Цели

  • Дать пользователю возможность открывать и редактировать документы FXML, содержащие новые компоненты пользовательского интерфейса JFX, появившиеся в 8u40 (Spinner, Dialogs и FormattedTextField).

  • Дать пользователю возможность перетаскивать новые компоненты пользовательского интерфейса из палитры в документ.

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

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

  • Сделать поддержку FXML более надёжной.

Что не является целью

  • Обеспечить полные возможности редактирования для новых компонентов пользовательского интерфейса.

  • Добавить новые жесты прямого манипулирования.

  • Обеспечить возможность визуального отображения в режиме проектирования компонентов, не являющихся узлами JFX.

  • Предоставить расширенные возможности для проектирования пользовательского интерфейса со специальными возможностями.

  • Сделать SB полностью доступным для пользователей специальных возможностей.

Мотивация

Выпуск JDK 8u40 приносит в JavaFX важные изменения: новые компоненты пользовательского интерфейса и поддержку специальных возможностей. Scene Builder необходимо обновить, чтобы он поддерживал эту новую функциональность. Помимо необходимости сделать новые возможности доступными пользователю, например добавить новые компоненты пользовательского интерфейса во встроенную библиотеку, мы должны обновить SB, чтобы пользователь мог работать с документами, содержащими любой из новых компонентов пользовательского интерфейса. Это связано с тем, что SB поставляется как самодостаточный пакет приложения с собственной приватной копией JRE. Приватная JRE определяет набор встроенных компонентов, экземпляры которых SB может создавать, поэтому она всегда должна соответствовать последнему выпуску платформы. Нам также нужно устранить основные ограничения выпуска SB 2.0, особенно те, которые не позволяют сохранять целостность содержимого (и форматирования) документов FXML.

Описание

  • Поддержка элемента управления Spinner

Элемент управления Spinner будет доступен в разделе Controls панели Library, чтобы пользователь мог перетащить его на панель Content или Hierarchy, а затем позиционировать его или переместить к другому родителю, редактировать его свойства — так же, как сейчас это делается с элементом управления ComboBox.

  • Поддержка элемента управления FormattedTextField

Элемент управления FormattedText будет доступен в разделе Controls панели Library, чтобы пользователь мог перетащить его на панель Content или Hierarchy, а затем позиционировать его или переместить к другому родителю, редактировать его свойства — так же, как сейчас это делается с элементом управления TextField. StringConverter, используемый элементом управления, не будет предоставляться Scene Builder, и пользователю придётся задавать его программно.

  • Поддержка новых компонентов Dialog(s)

Компоненты Dialog и Dialogs будут доступны в разделе Miscellaneous панели Library, чтобы пользователь мог перетащить их на панели Content и Hierarchy при условии, что они размещаются в корне документа. Пользователь сможет редактировать свойства Dialog и Dialogs с помощью панели Inspector. Отобразить содержимое Dialog(s) внутри панели Content будет невозможно, поскольку сейчас SB может отображать только корневые компоненты, являющиеся узлами JFX (Node), а Dialog(s) узлами не являются. Содержимое Dialog(s) можно будет предварительно просмотреть в отдельном окне.

  • Поддержка специальных возможностей

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

  • Устранение основных ограничений существующей поддержки FXML

Scene Builder 2.0.1 будет поддерживать конструкции fx:reference и $fxid, чтобы документы FXML, использующие эти конструкции, можно было безопасно редактировать и они оставались корректными.

Тестирование

Это небольшое обновление Scene Builder не вводит значительных новых возможностей или сценариев работы с пользовательским интерфейсом. Значительных изменений существующего интерфейса SB также не планируется. Должно быть возможно повторно использовать существующие тестовые фреймворки и дополнить существующие наборы тестов новыми тестовыми сценариями, аналогичными существующим.

Зависимости

  • Доступность API новых компонентов пользовательского интерфейса (JEP 205) и его пригодность для использования в FXML.

  • Возможный пересмотр синтаксиса FXML в связи с поддержкой специальных возможностей в платформе (JEP 204) может потребовать значительной работы в SB.