Ниже описаны наиболее значимые изменения платформы Eclipse и SWT, вошедшие в выпуск Eclipse 3.2, которые будут интересны разработчикам модулей.
Описание новых функций, предназначенных для конечных пользователей платформы, можно найти в разделе Новое в этом выпуске Руководства пользователя рабочей среды.
Изменения в платформе
|
|
Изменение структуры среды выполнения |
Для того чтобы увеличить гибкость среды выполнения Eclipse и предоставить возможность независимо использовать динамические компоненты, модуль org.eclipse.core.runtime был разбит на несколько модулей:
Для управления работой динамических фрагментов добавлены новые API. Изменение структуры среды выполнения никак не скажется на работе других модулей. За дополнительной информацией обратитесь к руководству по миграции Eclipse 3.2. |
Общий навигатор |
Новый модуль org.eclipse.ui.navigator предоставляет среду для создания
программ просмотра, объединяющих данные из нескольких моделей доменов.
Среда допускает декларативное дополнение содержимого, меток, действий, фильтров
и других функций. Модуль org.eclipse.ui.navigator.resources
предоставляет реализацию этой среды в виде панели Структура проектов и
декларативные расширения программы просмотра для модели IResource.
|
Вкладки свойств |
Были добавлены вкладки свойств. Они заменяют страницу свойств, позволяя
работать со свойствами, показанными на панели Свойства, с помощью произвольных
средств управления. Свойства организованы в виде вкладок и разделов в
соответствии с реестром расширений.
За дополнительной информацией обратитесь к статье The Eclipse Tabbed Properties View. |
API файловой системы |
Новый модуль org.eclipse.core.filesystem предоставляет новый базовый API для взаимодействия с файловыми системами. Этот API стал использоваться в платформе вместо API java.io. Это означает, что ресурсы можно создавать в любых базовых файловых системах, а в модули можно включать поддержку новых типов файловых систем. В мастеры проектов и связанных ресурсов добавлены возможности для создания ресурсов, связанных с другими файловыми системами. Модули с определениями альтернативных файловых систем можно встроить в мастер с помощью точки расширения org.eclipse.ui.ide.filesystemSupport. |
Функции импорта и экспорта теперь поддерживают список категорий |
Точки расширения |
Подсказки к аннотациям в текстовых редакторах |
Из компонента JDT Text в Platform Text были перенесены всплывающие подсказки к аннотациям.
Поддержка всплывающих подсказок для текста, вертикальной линейки и обзорной
линейки устанавливается с помощью TextSourceViewerConfiguration , применяемого в текстовых редакторах:
|
Навигация по аннотациям в текстовых редакторах |
Из компонента JDT Text в Platform Text была перенесена навигация по
аннотациям. Теперь она доступна во всех текстовых редакторах:
|
Помощь в заполнении полей JFace |
JFace оказывает поддержку пользователям в заполнении полей форм и окон диалога. В пакете org.eclipse.jface.fieldassist предусмотрены классы, позволяющие выбрать для любых управляющих элементов изображения и текст всплывающей подсказки. С их помощью можно обозначать обязательные поля, выводить информацию об ошибочном заполнении полей или оказывать помощью при заполнении полей. Кроме того, пакет позволяет задать варианты содержимого для управляющего элемента, в том числе всплывающие окна диалога с вариантами содержимого, вспомогательные всплывающие окна с более подробной информацией и возможность просмотра вариантов вручную или их автоматического (упреждающего) применения.
|
Улучшенный элемент JFace TreeViewer |
AbstractTreeViewer теперь позволяет создать в дереве несколько одинаковых элементов с разными цепочками родительских элементов. Для применения этой возможности клиенты должны активировать карту элементов, вызвав setUseHashLookup(true). TreeViewer теперь поддерживает деревья SWT.VIRTUAL. Предусмотрен соответствующий источник содержимого ILazyTreeContentProvider, который возвращает содержимое по мере необходимости. |
Поддержка динамического содержимого справки |
Справочная система теперь поддерживает динамическое формирование содержимого справки. Разделы, созданные с помощью XHMTL, могут содержать специальный код Eclipse для динамической фильтрации содержимого в зависимости от значений os/ws/arch, наличия модулей, активированных функций и т.п. В несколько документов можно включить общее содержимое. Наконец, модули могут предоставлять фрагменты XHTML, подключаемые по ссылкам к другим документам. Это позволяет разработчикам справки создать динамическую документацию, адаптирующуюся к текущему контексту. |
Улучшена функция поиска по справке |
В функции индексации и поиска было внесено несколько существенных улучшений. С помощью точки расширения можно зарегистрировать дополнительных агентов поиска, которые могут пополнить индекс Lucene. Теперь справочная система поддерживает агентов поиска XHTML, которые могут индексировать динамические документы справки, созданные с помощью XHMTL (см. приведенную выше информацию). Кроме того, теперь в индексе показаны те документы, которые раньше не входили в его состав (такие как памятки и страницы приветствия). Результаты поиска помечаются разными значками, а службе поиска можно передать право на выполнение действия 'open'. |
Неполадки можно объединять в группы |
Неполадки на панели неполадок можно объединять в группы. Предусмотрен ряд стандартных групп, отражающих уровень серьезности и тип неполадки. Дополнительные группы можно добавить с помощью точки расширения org.eclipse.ui.ide.markerSupport. |
Улучшена справка в окнах диалога |
Большинство окон диалога в Eclipse теперь содержат стандартную кнопку справки, расположенную в нижнем левом углу. Эта кнопка позволяет открыть контекстную справку, которая вызывается нажатием F1 (в Windows). Кроме того, теперь справка отображается внутри окна диалога, а не в отдельном окне. Для использования этой функции в пользовательских окнах следует создавать подкласс нового класса TrayDialog, а не класса Dialog. Для тех действий, которые предусматривают открытие окон диалога, можно предусмотреть памятки, отображаемые в этих окнах. |
Ссылки на команды в информации, приведенной в помощью пользователю |
Справка, памятки и вводная информация теперь могут содержать ссылки,
при выборе которых запускаются команды. С помощью таких ссылок можно открывать
страницы параметров, запускать мастеры, показывать панели, открывать проекции
и выполнять другие действия. Набор команд весьма разнообразен, поэтому ссылки
на команды могут применяться для различных целей. Ссылки на команды добавлены
во многие разделы Руководства пользователя рабочей среды.
На следующем рисунке показан раздел справки с двумя ссылками на команды: |
Поддержка запуска команд из памяток |
Теперь можно запускать команды из памяток.
Следующий файл содержит команды для открытия панели Поиск и Структура пакетов.
<?xml version="1.0" encoding="UTF-8"?> <cheatsheet title="Пример команд в памятке"> <intro> <description>Памятка показывает структуру пакетов</description> </intro> <item title="Показать панель Поиск"> <description>На этом шаге вызывается команда, открывающая панель поиска.</description> <command serialization= "org.eclipse.search.ui.views.SearchView"/> </item> <item title="Шаг 2"> <description>На этом шаге вызывается команда с параметрами, вызывающая структуру пакетов.</description> <command serialization="org.eclipse.ui.views.showView( org.eclipse.ui.views.showView.viewId= org.eclipse.jdt.ui.PackageExplorer)"/> <onCompletion> Пример команд завершен. </onCompletion> </item> </cheatsheet> |
Сообщение о выполнении |
В шаг внутри памятки можно добавить сообщение о выполнении,
отображаемое после выполнения шага.
|
Составные памятки |
В Eclipse 3.2 поддерживаются составные памятки.
Составная памятка представляет большое руководство по устранению неполадки,
поделенное на несколько задач, для каждой из которых предусмотрена собственная
памятка. Задачи можно объединять в группы. Составные памятки, запущенные из
окна выбора памяток, открываются на панели памяток. Для каждой задачи
предусмотрено описание. Для навигации пользователя по задачам используются
гиперссылки.
В составной памятке показан иерархический список задач с информацией об их состоянии. В правой или нижней панели отображаются отдельные задачи. Содержимое составной памятки определяется в файле XML. В файле содержимого можно определить зависимости между задачами, указывающие, что задачу можно выполнять только после завершения других обязательных задач. |
Предметный указатель справки |
Теперь в справке предусмотрен предметный указатель, в котором можно
регистрировать ключевые слова из документации, задавая ссылки на
соответствующие справочные документы. Предметный указатель доступен как на
панели Справка, так и в окне Справка (панель показана ниже).
Примечание: Содержимое предметного указателя пока недоступно в SDK (предметный указатель отображается только при наличии содержимого). |
Средство преобразования справочных документов XHTML |
В PDE предусмотрена новая утилита для быстрого преобразования
справочных документов модулей в формате HML в формат XHTML. Помимо корректного
преобразования из HTML в XHTML, утилита обновляет расширение файла и
оглавление, а также добавляет необходимые привязки для поддержки динамического
содержимого и поиска по содержимому XHTML. После завершения преобразования
можно воспользоваться новыми функциями справки выпуска 3.2,
включающими в себя динамическую фильтрацию содержимого, многократное
использование содержимого и динамическое создание содержимого. Все эти функции
работают с содержимым в формате XHTML.
Для вызова этой функции выберите в контекстном меню проекта модуля пункт Инструменты PDE > Преобразовать файлы справки в формат XHTML. |
Универсальное приветствие |
В этом выпуске предусмотрено универсальное приветствие, которое
основано на опыте многочисленных реализаций страниц приветствия и может
применяться в любом продукте. Можно выбрать один из 7
стандартных вариантов: Обзор, Первые шаги, Учебники, Примеры, Новое в этом
выпуске, Web-ресурсы и Миграция (в Eclipse SDK используется 4 из этих вариантов).
Универсальное приветствие позволяет задать макет страницы и степень важности
каждого дополнения и обеспечивает полную поддержку тем.
Кроме того, оно обеспечивает поддержку презентаций HTML и SWT на всех платформах.
Предусмотренная в универсальном приветствии страница параметров позволяет предоставить конечным пользователям возможность настройки приветствия. Ее можно включить в состав любого продукта. Дополнительную информацию об этой функции можно найти в статье Universal Welcome specification. |
Поддержка конфигурации и тем в приветствии |
Начальная среда предоставляет расширенные возможности для настройки.
Компонент настройки начальной среды можно дополнять, что позволяет однократно
вычислять состав групп, выполнять подстановку переменных и определять путь
метки на позднем этапе. Эти возможности активно используются в универсальном
приветствии, однако они доступны и для других реализаций приветствия.
Тема представляет собой именованный набор файлов CSS, свойств и изображений, совокупность которых определяет внешний вид приветствия. В универсальном приветствии предусмотрена возможность выбора темы. В выпуске 3.2 на выбор предоставляется две темы: 'Круги' и 'Пурпурная сеть'. |
Поддержка пространства имен для точек расширения Ant |
Точки расширения org.eclipse.ant.core, antTasks и antTypes теперь позволяют указывать URI определения. Описание всех внесенных изменений приведено в информации об ошибке 133190. |
Поддержка коллективной работы для интеграции логических моделей |
Был добавлен API, позволяющий логическим моделям участвовать в коллективных операциях.
С помощью этого API модуль совместной работы может выполнять следующие действия:
|
Изменения в SWT
|
|
Индикатор сортировки в таблицах и деревьях |
Таблицы и деревья теперь поддерживают отображение индикатора последовательности сортировки в заголовке столбцов. Фрагменты кода SWT, демонстрирующие сортировку по столбцу (простую) и сортировку по столбцу (в виртуальной таблице). |
Изменение порядка столбцов в деревьях |
В Eclipse 3.1 была добавлена возможность изменять порядок столбцов в таблице. Теперь эта возможность добавлена для деревьев. Порядок столбцов в дереве можно изменять, перетаскивая заголовки столбцов мышью, либо задавать в программе. Пример фрагмента кода. |
Расширенная поддержка темы в XP |
В Windows XP SWT показывает фактурный фон в окнах с вкладками. Для этого фона прозрачны все группы, метки, выключатели и другие управляющие элементы. Кроме того, пользовательские виджеты, такие как StyledText, теперь показывают правильную границу для основной темы Windows XP. Инструкции по использованию оболочки Windows XP можно найти в SWT FAQ. |
Анимированные изображения GIF |
Анимированные изображения формата GIF можно сохранять в файле. Пример приведен во фрагменте кода SWT. |
Уведомление об изменении внешнего вида рабочего стола |
При изменении внешнего вида рабочего стола, например темы, шрифта или
цветов по умолчанию, для |
Уведомление Dispose |
Ранее при получении события |
Подсказки для столбцов |
С помощью метода
|
Вертикальный элемент CoolBar |
С помощью стиля |
Поддержка OpenGL |
Теперь OpenGL можно использовать в приложениях SWT. Интерфейс OpenGL использует библиотеки OpenGL других разработчиков, в том числе LWJGL. Примеры приведены в следующих фрагментах кода SWT: |
Виртуальное дерево |
Теперь дерево поддерживает стиль SWT.VIRTUAL. Это позволяет быстро создавать деревья с большим объемом данных. Элементы TreeItem создаются по запросу. Пример приведен во фрагменте кода SWT. |
Кнопки с изображениями и текстом |
На кнопках помимо текста могут быть показаны изображения. Эта функция поддерживается в Windows XP, Mac OS X и GTK. |
HIView в Mac OS X |
SWT теперь использует HIView в Mac OS X. Это позволяет решить многие проблемы с усечением и изменением размера. |
Встроенные в текст объекты |
С помощью TextLayout в текст можно встраивать объекты, например изображения и виджеты. При этом можно указывать характеристики глифов, такие как наклон и ширина. Объекты обтекаются текстом. Пример приведен во фрагменте кода SWT. |
Настройка отступов и выравнивание текста |
Теперь TextLayout поддерживает отступы и выравнивание текста. Пример приведен во фрагменте кода SWT. |
Подъем базовой линии текста |
С помощью TextLayout и TextStyle можно поднять базовую линию для фрагмента текста. Пример приведен во фрагменте кода SWT. |
Поддержка цветов HSB |
Существует возможность создавать цвета, указывая оттенок, насыщенность и яркость. Кроме того, можно получить перечисленные характеристики заданного цвета. Пример приведен во фрагменте кода SWT |
Выравнивание и отступы в StyledText |
Теперь StyledText поддерживает отступы и выравнивание текста. Пример приведен во фрагменте кода SWT |
Встроенные объекты в StyledText |
Теперь StyledText позволяет встраивать в текст объекты, например изображения и виджеты. Объекты обтекаются текстом. Пример приведен во фрагменте кода SWT |
Фоновое изображение |
Теперь для управляющих элементов можно выбирать фоновое изображение. Фон может наследоваться дочерними виджетами, например метками. Пример приведен во фрагменте кода SWT |
Загрузка изображений системными средствами |
Теперь конструктор |
Перетаскивание текста |
Если событие Пример приведен во фрагменте кода SWT |
Новый виджет ExpandBar |
Виджет ExpandBar позволяет показывать и скрывать наборы виджетов щелчком на заголовке. ExpandBar состоит из нескольких элементов, заголовки которых могут содержать изображение и название. Пример приведен в этом фрагменте кода SWT. |
Маркеры в StyledText |
StyledText поддерживает списки различных стилей, в том числе маркированные, нумерованные, с прописными или строчными буквами, а также пользовательские стили. Пример приведен в этом фрагменте кода SWT. |
Пользовательский способ рисования дерева |
Виджет Tree поддерживает пользовательский способ рисования отдельных ячеек. Приложение может улучшить внешний вид дерева, настроив вывод данных. В приложении можно настраивать высоту строк дерева, что позволяет выводить в них несколько строк текста. Кроме того, можно добавлять по несколько изображений в одну ячейку, изменять шрифт и цвет произвольное число раз и изменять способ выделения. Примеры приведены в следующих фрагментах кода: |
Пользовательский способ рисования таблицы |
Виджет Table поддерживает пользовательский способ рисования отдельных ячеек. Сохраняя общий стиль таблицы, пользователи могут настраивать внешний вид ячеек, представляя данные в формате, отличном от текста с изображением, отображая несколько строк текста в одной ячейке, применяя различные шрифты и цвета в одной ячейке и переопределяя стандартный способ выделения. Примеры приведены в следующих фрагментах кода: |
Визуальные эффекты перетаскивания в таблице и дереве |
Виджеты Table и Tree теперь поддерживают визуальные эффекты перетаскивания. |
Новый класс Tooltip |
Новый класс ToolTip позволяет создавать всплывающие подсказки, которые не связаны напрямую с управляющим элементом. Эти всплывающие подсказки могут располагаться в любом месте. Они могут иметь формат, стандартный для платформы, либо показанный ниже формат BALLOON. |