Система для обеспечения хостинга объектов графической компоновки/представления
Реферат
Изобретение относится к вычислительным компонентам для упорядочивания графических элементов, отображаемых через графический пользовательский интерфейс. Технический результат заключается в расширении функциональных возможностей за счет поддержки компоновок для видимых изображений приложения, которым отведен набор графических элементов. Система презентаторов предоставляет базовый класс презентаторов и набор методов интерфейса, выполняемых механизмом представления, для создания и интеграции расширяемого набора классов презентаторов для обработки данных графических элементов различных типов во время операции компоновки в заданном видимом изображении. Система презентаторов позволяет реализовать комплексные операции компоновки отображения через вызовы механизма представления. Указанные комплексные операции компоновки отображения включают в себя: разбиение на страницы, частичное вычисление, пошаговое вычисление, множество проб, изменение возможностей/операций компоновки. 4 н. и 47 з.п. ф-лы, 15 ил.
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к вычислительным устройствам. В частности, настоящее изобретение относится к вычислительным компонентам для упорядочивания графических элементов, отображаемых через графический документный/пользовательский интерфейс.
Уровень техники
Отображение и/или визуализация графических выходных данных для приложения, которое выполняется в вычислительной системе, включает в себя множество задач. Одной из таких задач является управление компоновкой/представлением. Управление компоновкой/представлением касается упорядочивания и «отделки» (украшения) набора элементов изображения в выделенных для них местах (например, прямоугольниках). Хотя термин «компоновка» и термин «представление» могут в других контекстах по смыслу различаться, в данном описании эти термины следует трактовать как взаимозаменяемые и эквивалентные. Элементы отображения, обработанные системой компоновки/представления, предоставляют графические выходные данные на компоненты визуализации системы графического вывода и драйверов графического отображения. Указанные компоненты визуализации приводят в действие аппаратные средства графического отображения, такие как мониторы и принтеры.
Операции компоновки/представления, выполняемые вычислительными системами, охватывают множество разнообразных функций, выполняемых над графическими элементами отображения. Примером такой операции является упорядочивание текста в рамках заданных размеров графического пользовательского интерфейса редакторского приложения. Операция компоновки определяет содержание (контент) и размещение строк текста в обозначенном прямоугольном пространстве. Другим примером является кадрирование элемента (например, диалогового окна, панели инструментальных средств, панели управляющих элементов и т.д.) с унифицированной границей. Эти операции здесь также называют «возможностями» (опциями). Компоненты визуализации компьютерной системы создают графические выходные данные на основе состояния элементов отображения, которые, возможно, были модифицированы выполненными ранее операциями/возможностями компоновки/представления.
Известны различные механизмы представления. Например, «пользовательский модуль» Microsoft Windows выполняет операции компоновки применительно к окнам высокого уровня на пользовательском графическом интерфейсе. Администратор диалогового окна Microsoft Windows размещает объекты на заранее определенных позициях и позволяет группировать объекты. Позиционирование объектов осуществляется в логическом порядке и не зависит от физического устройства. Система JAVA SWING выполняет базовые операции размещения применительно к объектам в видимом изображении на основе свойств, заданных на объектах.
Операции компоновки/представления выполняются в настоящее время несколькими способами. Операцию компоновки элементов отображения может полностью выполнять само приложение. Операция компоновки (или «представления») инкапсулирована в приложение. Приложение выполняет «отделку»/компонует элементы для одного видимого изображения (или изображений), связанного(ых) с текущим состоянием приложения. Приложение упорядочивает элементы в области отображения, выделенной данному приложению. После этого приложение визуализирует отображаемые выходные данные, соответствующие упорядоченным элементам отображения, передавая их в графическую систему/драйверы.
Другой вариант конфигурации обработки компоновки, включенный в операционную систему Microsoft Windows XP, обеспечивает поддержку заранее определенного набора возможностей компоновки, которые могут быть востребованы приложениями. Набор возможностей компоновки содержит специализированные операции компоновки/представления для элементов отображения графического пользовательского интерфейса для приложений. Набор заранее определенных возможностей компоновки/представления, такой как, например, генератор границ для предоставляемых прямоугольников, уменьшает объем работ по программированию для разработчиков приложения, касающихся конкретных аспектов организации и представления элементов графического отображения. Этот набор заранее определенных возможностей также облегчает совместимость с некоторыми выполняющимися базовыми возможностями/функциями отображения, к примеру с вышеупомянутыми границами. Приложения дополняют заранее определенные функциональные возможности компоновки дополнительными операциями компоновки, встроенными в сами приложения.
Известная архитектура обработки компоновки, включающая в себя заранее определенные возможности компоновки, которые могут быть востребованы приложением, упрощает программирование задач компоновки, с которыми сталкиваются приложения в ходе упорядочивания видимого изображения, перед предоставлением графических данных и команд компонентам визуализации компьютерной системы. Однако известная архитектура обработки компоновки с трудом поддерживает расширение или модификации, касающиеся набора заранее определенных возможностей компоновки, которые могут быть востребованы приложениями. Таким образом, новые возможности компоновки размещают, например, непосредственно в программе приложения, вместо того чтобы включить эти возможности в набор заранее определенных возможностей компоновки, предлагаемых архитектурой представления/компоновки. Далее в ходе выполнения приложение производит вычисления для компоновки используя комбинацию заранее определенных функциональных возможностей компоновки и выполняемых внутри приложения операций компоновки/представления.
Сущность изобретения
Настоящее изобретение содержит систему презентаторов (модулей представления) для их включения в состав системы управления компоновкой графических выходных данных. Указанное управление компоновкой направлено на способ, которым объекты упорядочивают, задают размеры и размещают в пространстве отображения. Указанные системы обрабатывают компоновку от имени программы, предоставляющей графические элементы, которые содержат данные, представляющие отображаемый контент программы (например, блок текста, который необходимо упорядочить на отображаемой или распечатываемой странице). Презентаторы выполняют дополнительную роль по отношению к графическим элементам (которые определяют данные) путем задания состояний отображения для представления контента графических элементов. Как таковые, презентаторы поддерживают описание компоновки для соответствующего графического элемента.
Согласно изобретению система презентаторов выполняет роль ведущего узла и упорядочивает презентаторы, связанные с графическими элементами в видимом изображении. Система презентаторов, выполняя роль поддержки процесса получения (вывода) презентаторов множества типов, включает в себя базовый класс презентаторов (модулей представления), из которого получают классы презентаторов. После этого презентаторы конкретизируются исходя из выведенных классов презентаторов.
Система презентаторов также включает в себя ведущий интерфейс презентаторов. Ведущий интерфейс содержит способ для компоновки графических элементов в видимом изображении в соответствии с презентаторами, связанными с графическими элементами. Как таковая, компоновка графических элементов в видимом изображении задается соответствующими презентаторами.
Краткое описание чертежей
Хотя признаки настоящего изобретения детально изложены в прилагаемой формуле изобретения, изобретение и его преимущества лучше всего можно понять из нижеследующего подробного описания вместе с сопроводительными чертежами, на которых:
фиг. 1 - блок-схема, изображающая приведенную в качестве примера вычислительную систему для выполнения одного варианта изобретения;
фиг. 2 - схема высокого уровня, изображающая основные компоненты архитектуры управления компоновкой, включающей систему презентаторов для выполнения поддержки графической компоновки в вычислительной системе, где воплощено настоящее изобретение;
фиг. 3 - схема, изображающая взаимосвязи между графическими элементами и презентаторами, определяющими графический документный/пользовательский интерфейс в системе, где воплощено настоящее изобретение;
фигуры 4а и 4b - итоговая структура базового класса презентаторов, из которой выводят классы объектов-презентаторов согласно требованиям пользователя, для выполнения конкретных задач компоновки/визуализации в системе, где воплощено настоящее изобретение;
фиг. 5 - итоговая структура дочернего посреднического класса;
фиг. 6 - итоговая структура интерфейса класса обработчиков уведомлений;
фиг. 7 - итоговая структура класса узла обработчиков уведомлений;
фиг. 8 - итоговая структура класса видимого изображения;
фиг. 9 - итоговое представление частей структуры BoxSizeInfo (информация о размерах прямоугольника);
фиг. 10 - итоговое представление частей структуры дескриптора страницы;
фиг. 11 - итоговая структура класса механизма представления;
фиг. 12 - блок-схема, дающая итоговое представление о примерных шагах для обработки изменения в графическом элементе на основе обработчика уведомлений;
фиг. 13 - блок-схема, дающая итоговое представление о примерных шагах для выполнения повторных вычислений и визуализации видимого изображения, содержащего набор презентаторов, согласно варианту настоящего изобретения; и
фиг. 14 - блок-схема, дающая итоговое представление о примерных шагах для выполнения обновления в презентаторе (и связанных с ним затронутых дочерних презентаторах) в ответ на изменение в относящемся к нему графическом элементе.
Подробное описание чертежей
Ниже раскрыта архитектура пользовательского интерфейса и компоновки/преставления документа.
Раскрытая архитектура компоновки/представления включает в себя компоненты (презентаторы, модули представления) графической обработки/визуализации компоновки, которые реализуют аспекты видимого изображения соответствующих базовых данных (графических элементов) для документного/пользовательского интерфейса. Система презентаторов хостирует (размещает в себе) презентаторы. Выполняя свою ведущую роль, система презентаторов организует и координирует обновление видимого изображения, содержащего набор презентаторов, в ответ на изменения соответствующих графических элементов. Таким образом, система презентаторов обеспечивает механизм, который связывает состояние (например, состояние данных) графических элементов с состояниями видимого изображения, обновляемыми, кэшируемыми и визуализируемыми с помощью соответствующих объектов-презентаторов.
Одним из аспектов архитектуры компоновки/представления на основе системы презентаторов, в которой воплощено настоящее изобретение, является высокая степень расширяемости применительно к типам презентаторов, которыми она управляет. Базовый класс презентаторов, предоставляемый системой презентаторов, облегчает расширение набора типов презентаторов (классов объектов), доступных для компоновки и визуализации информации, обеспечиваемой соответствующим графическим элементом. Различные типы презентаторов, получаемые из базового класса презентаторов, включают в себя конкретные способы компоновки/визуализации в качестве переопределений для способов по умолчанию, задаваемых базовым классом презентаторов. Объекты презентаторов, созданные исходя из набора классов объектов презентаторов, реализуют возможности компоновки/представления согласно состоянию данных соответствующего графического элемента.
Система презентаторов управляет презентаторскими объектами, созданными (заданными) исходя из набора классов объектов презентаторов. Система презентаторов реализует управление (то есть создание, удаление и т.д.) на протяжении всего времени существования объектов презентаторов. Система презентаторов обеспечивает обработку, связанную с отслеживанием «загрязненности» презентаторов, для избирательного обновления только измененных презентаторов. Система презентаторов поддерживает сцепление презентаторов для предоставления элементов «отделки» (украшения) главным презентаторам. Система презентаторов также координирует обновление и визуализацию презентаторов.
В одном варианте изобретения благодаря наличию обработчиков уведомлений облегчается уведомление об изменениях графических элементов, потенциально влияющих на состояния видимого изображения. Обработчики уведомлений предоставляют возможность обработки уведомлений об изменениях, выделяемых из процесса обработки изменений, выполняемого презентаторами. Каждый тип элемента презентатора связан с типом обработчика уведомлений. Каждый обработчик уведомлений обрабатывает изменения соответствующего графического элемента. Если обновление необходимо, то тогда обработчик уведомлений инициирует установку свойства «загрязненности» в соответствующем объекте презентатора. Установленное свойство «загрязненности» вызывает повторные вычисления для объекта презентатора в ответ на изменения соответствующего графического элемента.
Архитектура компоновки/представления интерфейса пользователя, описанная здесь в качестве примера, включена в состав операционной системы, которая обеспечивает хостинг приложений, имеющих графические пользовательские/документные интерфейсы, и ознакомится с ценами на услуги colocation в москве. Приложения, презентаторы и компоненты операционной системы для визуализации, зависящие от конкретного устройства, а также драйверы, зависящие от конкретного устройства, визуализируют команды/данные управления устройствами вывода графических данных интерфейса/документа для отображения на аппаратных средствах устройств отображения (например, мониторы, принтеры и т.д.). Возможности (опции) компоновки визуализированных выходных данных базируются, по меньшей мере частично, на обработке компоновки/представления и визуализации, выполняемых презентаторами, хостируемыми системой презентаторов.
Архитектура представления позволяет разорвать связь между состоянием данных отображаемого элемента и состоянием его видимого изображения. Такое разъединение обеспечивает расширяемую платформу с широкими возможностями ее настройки пользователем для создания новых и специализированных возможностей для базового графического элемента. В одном варианте изобретения элемент отображения представлен объектом-графическим элементом (представляющим состояние данных элемента) и, по меньшей мере одним, связанным с ним объектом презентатора (представляющим состояние видимого изображения) для компоновки (размещения) элемента в конкретном видимом изображении. Презентатор выполняет настроенное пользователем обновление компоновки для связанного с ним элемента. Презентатор также визуализирует изображение элемента после обновления компоновки.
Использование объектов презентатора устраняет связь между состоянием данных отображаемого элемента и его отображения в видимом изображении. Вследствие этого каждый графический элемент (источник данных отображения) потенциально способен иметь множество презентаторов, обеспечивающих отдельные видимые изображения графического элемента (например, полномасштабное и свернутое изображение фотографического элемента). Возможность связывания множества презентаторов с одним графическим элементом позволяет также связать один элемент с множеством мест внутри поля (например, расщепление одного графического элемента на множество колонок). Кроме того, система презентаторов поддерживает сцепление множества отдельных презентаторов различных типов с одним элементом, в результате чего поддерживается закрепление множества различных элементов «отделки», настроенных пользователем, за базовым видимым изображением для элемента. Далее со ссылками на чертежи описываются эти и другие аспекты примерной архитектуры компоновки/визуализации изображений.
На фиг. 1 в качестве примера показана подходящая операционная среда 100 для реализации архитектуры компоновки/представления отображений на основе системы презентаторов. Операционная среда 100 является лишь одним примером подходящей операционной среды, и ее не следует рассматривать как какое-либо ограничение сферы использования или функциональных возможностей изобретения. Другие хорошо известные вычислительные системы, среды и/или конфигурации, которые могут подойти для использования с данным изобретением, включают в себя, но не ограничиваются ими: персональные компьютеры, компьютеры-серверы, портативные/настольные вычислительные устройства, переносные вычислительные устройства, многопроцессорные системы, системы на базе микропроцессоров, сетевые персональные компьютеры, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств и т.п. Раскрытая здесь архитектура управления компоновкой, к примеру архитектура, показанная на фиг.1, включающая в себя систему презентаторов, отвечает ряду различных требований, в том числе расширяемости, интеграции и единообразия в отношении функциональных возможностей отображения для вычислительной системы.
Изобретение описано в общем контексте набора этапов и процессов, реализуемых по командам, таким как программные модули, выполняемым компьютером. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют отдельные абстрактные типы данных. Хотя приведенный в качестве примера вариант описан со ссылками на локально выполняемые операции в единой компьютерной системе, изобретение потенциально можно включить в состав сетевых узлов, работающих в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, связанными между собой через сеть связи. В распределенной вычислительной среде программные модули обычно находятся как на локальных, так и в удаленных компьютерных запоминающих средах, в том числе запоминающих устройствах.
Обратимся к фиг.1, где приведенная в качестве примера система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не только, блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, в том числе системную память, с блоком 120 обработки. Системная шина может представлять собой шинные структуры любого из нескольких типов, в том числе: шину памяти или контроллер памяти, периферийную шину и локальную шину, с использованием любой из множества различных шинных архитектур. В качестве примера, но не как ограничение, такие архитектуры включают в себя: шину с архитектурой промышленного стандарта (ISA), шину с микроканальной архитектурой (MCA), шину с расширенной архитектурой ISA (EISA), локальную шину, разработанную Ассоциацией по стандартам видеооборудования (VESA), и шину межсоединений периферийных компонентов (PCI), известную также как шина Mezzanine.
Компьютер 110 обычно включает в себя множество различных считываемых компьютером сред. Считываемая компьютером среда может представлять собой любую имеющуюся среду, которая может быть доступна компьютеру 110, и включает в себя как энергозависимую, так и энергонезависимую среду, съемную и несъемную среду (носители). Как пример, но не ограничение, считываемая компьютером среда может содержать компьютерную запоминающую среду и среду связи. Компьютерная запоминающая среда включает в себя как энергозависимую, так и энергонезависимую, как съемную, так и несъемную среды, реализованные любым способом или по любой технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя, но не только: ОЗУ (RAM), ПЗУ (ROM), электрически стираемое ППЗУ (EEPROM), флэш-память или другую технологию памяти, ПЗУ на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другое запоминающее устройство на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске либо другие магнитные запоминающие устройства, или любую другую среду, которую можно использовать для запоминания требуемой информации и которая может быть доступна компьютеру 110. Среда связи обычно воплощает считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей, либо другой механизм транспортировки данных, и включает в себя любую среду для доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или несколько характеристик, устанавливаемых или изменяемых таким образом, чтобы обеспечить кодирование информации в этом сигнале. В качестве примера, но не как ограничение, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная (RF), инфракрасная или иная беспроводная среда. В сферу считываемой компьютером среды могут быть также включены комбинации из любых вышеупомянутых сред.
Системная память 130 включает в себя компьютерную запоминающую среду в виде энергозависимой и/или энергонезависимой памяти, такой как память 131 только для считывания (ROM) и память 132 с произвольным доступом (RAM). Базовая система 133 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают пересылать информацию между элементами в компьютере 110, к примеру во время запуска, иногда хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны и/или в данный момент обрабатываются блоком 120 обработки. В качестве примера, но не как ограничение, на фиг. 1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие среды. В качестве примера на фиг. 1 показан только накопитель 140 на жестких дисках, который выполняет считывание с или запись на несъемную, энергонезависимую магнитную среду (носитель), накопитель 151 на магнитном диске, который осуществляет считывание с или запись на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптическом диске, который осуществляет считывание с и запись на съемный энергонезависимый оптический диск 156, такой как CD ROM, либо другой оптический носитель. К другим съемным/несъемным энергозависимым/энергонезависимым запоминающим средам, которые можно использовать в приведенной в качестве примера операционной среде, относятся, но не только: кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровая видеолента, твердотельное ОЗУ (RAM), твердотельное ПЗУ (ROM) и т.п. Накопитель 141 на жестких дисках обычно подсоединен к системной шине 121 через несъемный интерфейс памяти, такой как интерфейс 140, а дисковод 151 на магнитном диске и дисковод 155 на оптическом диске обычно подсоединены к системной шине 121 через съемный интерфейс памяти, такой как интерфейс 150.
Накопители и связанные с ними компьютерные запоминающие среды, описанные выше и показанные на фиг. 1, обеспечивают сохранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1 в качестве примера показано, что накопитель 141 на жестких дисках хранит операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут совпадать либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 представлены здесь разными ссылочными позициями, чтобы показать, что они являются, как минимум, разными копиями. Пользователь может ввести команды и информацию в компьютер 20 через устройства ввода, такие как клавиатура 162 и указательное устройство 161, под которым обычно подразумевается мышь, шаровой манипулятор или сенсорная клавиатура. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую тарелку, сканер или т.п. Эти и другие устройства ввода часто подсоединяют к блоку 120 обработки через пользовательский интерфейс 180 ввода, который соединен с системной шиной, хотя эти устройства могут быть подсоединены через другие интерфейсные и шинные структуры, такие как параллельный порт, игровой порт или универсальная последовательная шина (USB). Через интерфейс, такой как видеоинтерфейс 190, к системной шине 121 также может быть подсоединен монитор 191 либо устройство отображения другого типа. Вдобавок к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые могут быть подсоединены через выходной периферийный интерфейс 195.
Компьютер 110 потенциально действует в сетевом окружении, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство или другой общий сетевой узел и обычно включает в себя многие либо все элементы, описанные выше в связи с компьютером 110, хотя на фиг. 1 показано только запоминающее устройство 181. Логические соединения, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды широко распространены в офисах, корпоративных компьютерных сетях, интрасетях и Интернет.
При использовании в сетевой среде LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 либо другое средство для установления связи по сети WAN 173, такой как Интернет. Модем 172, который может быть встроенным либо внешним, может быть подсоединен к системной шине 121 через входной интерфейс 160 пользователя либо другой подходящий механизм. В сетевой среде программные модули, изображенные применительно к компьютеру 110 или его частям, могут храниться в удаленном запоминающем устройстве. В качестве примера, но не как ограничение, на фиг. 1 показаны удаленные прикладные программы 185, находящиеся в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения приведены в качестве примера, и что можно использовать другие средства для установления линии связи между компьютерами.
На фиг. 2 представлена схема высокого уровня, идентифицирующая программные модули и программы, а также конкретизированные объекты и компоненты данных архитектуры системы управления компоновкой/представлением, в которой воплощено настоящее изобретение. Приведенная в качестве примера архитектура системы управления компоновкой/представлением, показанная на фиг. 2, включает в себя систему 200 презентаторов, которая поддерживает компоновку/представление отображаемых объектов на основе набора иерархически упорядоченных объектов презентаторов, связанных с создаваемым видимым изображением 202, исходя из класса объекта видимого изображения (смотри фиг.8, описанную ниже) при запросе приложения 204, выполняющегося в операционной системе 205.
В одном варианте изобретения каждое видимое изображение (например, видимое изображение 202) имеет соответствующую систему презентаторов (например, систему 200 презентаторов), которая отвечает за поддержание отображаемых объектов в видимом изображении. В одном варианте изобретения изображение 202 представляет собой визуальный корневой объект для всех визуальных объектов, которые создаются системой 200 презентаторов. Отображаемый контент в видимом изображении 202 базируется на графических элементах 206 во вспомогательном запоминающем устройстве 208. Приложение 204 является источником графических элементов 206 во вспомогательном запоминающем устройстве 208. На фиг. 3, описанной ниже, показан пример, где представлены взаимосвязи между видимыми изображениями, системами презентаторов, деревьями презентаторов для видимых изображений и деревьями графических элементов, связанными с приложением.
Архитектура системы управления компоновкой/представлением, изображенная на фиг. 2, разделена на множество функциональных компонентов. Линии между изображенными компонентами представляют пути взаимодействия между компонентами. Настоящее изобретение не сводится к конкретной компоновке компонентов и показанным в качестве примера взаимодействиям между компонентами в иллюстративном варианте, изображенном на фиг.2. Наоборот, описанные ниже функциональные возможности компонентов сгруппированы в различных сочетаниях согласно альтернативным вариантам изобретения.
В одном варианте изобретения приложение 204 вызывает метод-конструктор на прикладном программном интерфейсе классов объектов - видимых изображений (смотри структуру классов видимых изображений на фиг. 8, описанной ниже) для создания корневого объекта для экземпляра объекта - видимого изображения 202. Вызов метода для создания видимого изображения 202 проходит через ссылку к корневому графическому элементу графических элементов 206, находящихся во вспомогательном запоминающем устройстве 208. После создания видимого изображения 202 вызов метода DoLayout (выполнить компоновку) на видимом изображении 202 создает дерево презентаторов для видимого изображения 202 с корневым объектом-презентатором, соответствующим корневому графическому элементу, изначально переданному методу-конструктору, который создал видимое изображение 202. Дерево презентаторов (на фиг. 2 не показано) для видимого изображения 202 содержит набор презентаторов, которые ответственны за организацию и визуализацию выходных данных для видимого изображения 202.
В одном варианте изобретения каждое видимое изображение (например, видимое изображение 202) обладает системой презентаторов (например, система 200 презентаторов). Таким образом, в ответ на вызов метода DoLayout видимое изображение 202 инициирует создание нового дерева презентаторов и возвращает его вызывающей стороне (например, приложение 204). В исходном состоянии видимое изображение 202 вызывает метод-конструктор из класса объектов-механизмов представления для создания экземпляра механизма 212 представления, включающего в себя ведущий прикладной программный интерфейс презентаторов (ведущий API презентаторов). Механизм 212 представления включает в себя выполняемую программу для координации и организации выполнения операций компоновки/представления в вычислительной системе, поддерживающей графические выходные данные. Функции, выполняемые/координируемые механизмом 212 представления, включают в себя: создание объектов презентаторов (как корневой, так и дочерней версии), координацию повторных вычислений состояний отображения презентаторов, визуализацию, управление презентаторами на протяжении всего времени их существования, отслеживание «загрязненности», сцепление множества презентаторов с одним элементом и выполнение пошаговой компоновки. Примеры вызываемых методов на ведущем API презентаторов механизма 212 представления описаны ниже со ссылками на фиг. 12. Эти методы представляют собой запросы высокого уровня, которые создают и поддерживают дерево объектов презентаторов для видимого изображения 202. Идентифицированные задачи, выполняемые механизмом 212 представления, приведены в качестве примеров, и специалистам в данной области техники должно быть понятно, что в альтернативных вариантах изобретения механизм 212 представления может решать дополнительные/альтернативные задачи.
Механизм 212 представления строит систему 200 презентаторов для обработки объектов презентаторов, связанных с видимым изображением 202. В одном варианте изобретения система 200 презентаторов включает в себя базовый класс 216 презентаторов. Базовый класс 216 презентаторов является базовым классом с полным набором возможностей для создания подклассов презентаторов и объектов презентаторов, способных использовать функциональные возможности управления компоновкой для системы, описанной ниже. Базовый класс 216 презентаторов содержит шаблон, включающий в себя виртуальный (переопределяемый) программный код и структуры данных, из которых получают набор классов 214 презентаторов. Классы 214 презентаторов содержат набор специализированных типов презентаторов, соответствующих видимым изображениям графических элементов, имеющим конкретные свойства/режимы отображения. Созданные с учетом требований пользователя классы 214 презентаторов, полученные из базового класса 216 презентаторов, например, компонуют контент, упорядочивают дочерние презентаторы, создают визуалы для закрепленных за ними элементов, разбивают по страницам контент для типографских документов и в пошаговом режиме обновляют визуалы, включающие в себя графические элементы 206. Специализированные функциональные возможности каждого класса презентаторов в наборе классов 214 презентаторов устанавливаются путем переопределения и добавления виртуальных способов, определенных базовым классом 216 презентаторов. Объекты презентаторов, конкретизированные, исходя из набора классов 214 презентаторов, представляют и обрабатывают аспекты отображения графических элементов 206.
В одном варианте изобретения набор классов 214 объектов презентаторов, включающий в себя как заранее определенные классы 218 презентаторов, так и внешние классы 220 презентаторов, является расширяемым. Для набора заранее определенных классов 218 презентаторов предусмотрена система 200 презентаторов. Внешние классы 220 объектов презентаторов обычно устанавливаются независимо от системы 200 презентаторов. Однако выполненное должным образом объединение внешних классов 210 объектов презентаторов с системой 200 презентаторов облегчается опубликованной спецификацией на интерфейс для базового класса 216 презентаторов (описанного ниже со ссылками на фигуры 4а и 4b). Разработчик внешних классов 220 презентаторов переопределяет/модифицирует машинный программный код и структуры данных, связанные с настроенными в соответствии с требованиями пользователя методами компоновки/визуализации базового класса 216 презентаторов для обеспечения функций задания размеров, позиционирования дочерних презентаторов и визуализации с учетом требований пользователя. После этого в наборе внешних классов 220 объектов презентаторов устанавливают новый класс презентаторов, напр