Расширяемость пользовательского интерфейса в Office 2010

Источник: apocalypse

Представив в Office 2007 пользовательский интерфейс "Лента", мы также представили модель RibbonX (расширяемость ленты) - новый способ программной настройки пользовательского интерфейса Office. RibbonX позволяет сторонним разработчикам и поставщикам решений изменять ленту, добавляя свои вкладки и группы в зависимости от потребностей своих клиентов.

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

Расширение представления Backstage

Представление Backstage - это новая, интегрированная часть пользовательского интерфейса Office. Она выводит на новый уровень функции работы с файлами (печать, общий доступ, распространение, совместная работа и т. д.) так же, как лента вывела на новый уровень функциональные возможности работы с документами. Улучшая расширяемость в Office 2010, мы уделили большое внимание возможности сторонних разработчиков расширять представление Backstage доступными и понятными способами.

Вы можете спросить: "Когда следует расширять возможности ленты, а когда - представления Backstage"? Если вы создаете решение, которое предназначено для сценариев изменения документов и создания содержимого (то есть новые функциональные возможности будут улучшать работу пользователя в документе), следует расширять ленту. С другой стороны, если ваши клиенты нуждаются в решении, позволяющем работать с документами, а также с процедурами и пользовательскими рабочими процессами, с которыми связаны эти документы, то рекомендуется расширять Backstage.

Пример 1. Эффективное управление проектами и процессами с помощью пользовательской вкладки Backstage

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

Ниже приведена надстройка, которая служит для добавления новой вкладки Contoso Process в представление Backstage; все новые элементы пользовательского интерфейса созданы с помощью новой модели расширения Backstage. Вкладка Contoso Process служит для отображения метаданных электронной таблицы, этапа работы с этой таблицей, а также необходимых действий для перемещения электронной таблицы на следующий этап обработки. Группы "График этапа разработки" (Schedule For Design Phase) и "Неразрешенные вопросы по разработке" (Open Design Issues) отмечены красным цветом, что означает необходимость неотложного рассмотрения этих вопросов. Диаграмма справа - это "полная картина", то есть сводные данные о том, на каком этапе процесса находятся все связанные электронные таблицы. Нетрудно представить, как можно получить все эти метаданные из библиотеки SharePoint, в которой размещены электронные таблицы.

В пользовательском интерфейсе Contoso Process отображаются пользовательские метаданные и еще один зависящий от контекста пользовательский интерфейс для управления процессами

После разрешения всех вопросов, связанных с разработкой, в верхней части вкладки становится доступной кнопка "Завершение этапа разработки" (Exit Design Phase). Нажатие этой кнопки переводит электронную таблицу на этап рассмотрения, содержимое вкладки динамически обновляется, отображается новое состояние и требования для нового этапа работы.

Пользовательский интерфейс Contoso Process динамически обновляется для отображения нового этапа работы с электронной таблицей

Пример 2. Интеграция пользовательских функций со встроенными вкладками Backstage

Предположим, вы проектировщик решений, и одним из основных сценариев для ваших клиентов является совместная работа над документами. Клиентам нравятся функциональные возможности, которые содержатся на вкладке Share (Общий доступ) в представлении Backstage, однако им также хотелось бы напрямую обмениваться документами через Windows Live Hotmail и Facebook. Возможности расширения Backstage позволяют создавать пользовательские функции и размещать их на встроенной вкладке Share.

Вот как будет выглядеть пользовательская форма "Отправить с помощью электронной почты" (Send Using E-Mail) с группой "Отправить через Hotmail" (Send via Hotmail) (в правом нижнем углу изображения):

Пользовательская группа "Отправить через Hotmail" (Send via Hotmail), интегрированная во встроенную форму "Отправить с помощью электронной почты" (Send Using E-Mail)

А вот как будет выглядеть вкладка Share с новой задачей "Разместить в Facebook" (Post to Facebook) и соответствующей формой:

Встроенная вкладка Share расширена с помощью пользовательской задачи "Разместить в Facebook" (Post to Facebook)

Пример 3. Добавление пользовательских команд быстрой работы с файлами в представление Backstage

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

С помощью расширения представления Backstage можно без труда заменить встроенную команду "Закрыть" (Close) пользовательским элементом "Сохранить и закрыть" (Save and Close), который будет служить для сохранения документа перед его закрытием.

Панель навигации в представлении Backstage до и после изменения встроенного элемента управления "Закрыть" (Close) на "Сохранить и закрыть" (Save and Close)

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

Пользовательские настройки Backstage определяются в том же файле разметки, в котором содержатся пользовательские настройки ленты и контекстного меню; Backstage просто является очередным узлом верхнего уровня. Внутренняя иерархия Backstage во многом схожа с лентой. В основном, как и на ленте, в представлении Backstage используются вкладки, которые и являются блоками сборки. Вкладки Backstage могут содержать один или два столбца или группы. На пользовательской вкладке Contoso Process в приведенном ранее примере содержатся два столбца:

В отличие от ленты представление Backstage может содержать кнопки на самом верхнем уровне. Эти кнопки отображаются как быстрые команды в панели навигации, аналогично команде "Сохранить и закрыть" (Save and Close) из приведенного ранее примера.

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

Дополнительные сведения о возможности расширения Backstage, структуре и функциональных возможностях этого представления будут содержаться в подготавливаемой документации по бета-версии. После предоставления доступа к бета-версии Office 2010 документация будет опубликована в центре разработчиков Office на сайте MSDN и будет содержать полную XML-схему Backstage, список идентификаторов встроенных элементов управления, подробную вступительную статью о возможностях расширения Backstage, а также примеры кода расширения Backstage.

Настройка меню Office в Office 2007

Если в вашем решении используются пользовательские настройки меню Office в Office 2007, они будут работать и в Office 2010. Все прочие функциональные возможности, добавленные в меню Office, будут отображаться во всплывающем окне надстроек в панели навигации Backstage:

Пользовательские добавления в меню Office (из Office 2007) отображаются в панели навигации Backstage

Улучшения в платформе RibbonX

Часто разработчики, создающие решения, связанные с лентой, просят задействовать активацию вкладки и автоматическое масштабирование группы. Активация вкладки позволяет разработчикам активировать вкладку по требованию, то есть перемещать вкладку на передний план (как при выборе) в ответ на некоторое событие. Автоматическое масштабирование группы позволяет изменять расположение групп ленты в соответствии с горизонтальным размером окна. Улучшение расширяемости контекстного меню - это еще одна часто запрашиваемая функциональная возможность. Все эти просьбы были учтены в Office 2010.

Поддержка активации вкладки

Представьте, что вы создали решение Excel с несколькими пользовательскими вкладками. Если каждая пользовательская вкладка относится к определенному типу данных, мы рекомендуем выводить определенную вкладку на передний план при работе пользователя с соответствующим типом данных. Это достигается с помощью метода ActivateTab для объекта IRibbonUI (предоставление этому методу строкового параметра, указывающего, какую пользовательскую вкладку активировать):

IRibbonUI.ActivateTab(String tabID).

Можно использовать "параллельный" метод ActivateTabMso для активации встроенной вкладки и метод ActivateTabQ для активации вкладки, которая совместно используется несколькими надстройками (ActivateTabQ нуждается в дополнительном строковом параметре, в котором будет указано пространство имен целевой надстройки).

Автоматическое масштабирование пользовательской группы

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

Предположим, клиенты хотят использовать ваше решение для работы в не полностью развернутых окнах, чтобы на экране одновременно помещалось несколько окон. Однако им не нравится, что при уменьшении размеров окна команды в созданной вами группе приобретают вид отдельной кнопки, и чтобы достичь какой-либо команды, нужно делать лишний щелчок. Вам следует лишь указать в Office 2010, что группа будет автоматически изменять макет (для свойства autoScale следует задать значение "true"), не определяя при этом когда и как ваша группа должна масштабироваться. При изменении размеров окна элементы группы будут размещены самым оптимальным образом.

В следующем примере показано, как группа надстройки будет масштабироваться при установке значения autoScale=true. Обратите внимание, что следует назначить значок самой группе, так как этот значок будет использоваться, если понадобится представить всю группу в виде одной кнопки:

В Office 2010 макет пользовательской группы может быть изменен для оптимального размещения в измененном окне приложения

Расширяемость контекстного меню

Если ваши решения основаны на Office и одной из важнейших задач является частое использование функциональных возможностей, зависящих от контекста, то вы наверняка рассматривали возможность настройки меню, вызываемых щелчком правой кнопкой мыши. Некоторые контекстные меню можно расширить с помощью объектной модели CommandBars. Однако есть контекстные меню, которые невозможно изменить таким образом. Например, PowerPoint 2007 содержит контекстные меню, которые недоступны посредством объектной модели CommandBars. А некоторые типы элементов управления (галереи, кнопки с разделителем) не могут быть добавлены в контекстные меню с помощью объектной модели CommandBars.

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

Настроенное контекстное меню ячейки Excel с пользовательской кнопкой, галереей и разделителем

Заключение

Новая платформа расширения возможностей Backstage и ленты позволяет создавать решения Office 2010, которые превосходят все возможности, которые были доступны в прошлом. Надеемся, что вы начнете использовать эти новые функциональные возможности в предварительной версии Office 2010, и будем рады вашим отзывам.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=23136