RU2305860C2 - System for providing hosting to objects of graphical composition or representation - Google Patents
System for providing hosting to objects of graphical composition or representation Download PDFInfo
- Publication number
- RU2305860C2 RU2305860C2 RU2004114219/09A RU2004114219A RU2305860C2 RU 2305860 C2 RU2305860 C2 RU 2305860C2 RU 2004114219/09 A RU2004114219/09 A RU 2004114219/09A RU 2004114219 A RU2004114219 A RU 2004114219A RU 2305860 C2 RU2305860 C2 RU 2305860C2
- Authority
- RU
- Russia
- Prior art keywords
- presenters
- presenter
- layout
- graphic
- visible image
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/30—Control of display attribute
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
Description
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящее изобретение относится в целом к вычислительным устройствам. В частности, настоящее изобретение относится к вычислительным компонентам для упорядочивания графических элементов, отображаемых через графический документный/пользовательский интерфейс.The present invention relates generally to computing devices. In particular, the present invention relates to computing components for arranging graphic elements displayed through a graphical document / user interface.
Уровень техникиState of the art
Отображение и/или визуализация графических выходных данных для приложения, которое выполняется в вычислительной системе, включает в себя множество задач. Одной из таких задач является управление компоновкой/представлением. Управление компоновкой/представлением касается упорядочивания и «отделки» (украшения) набора элементов изображения в выделенных для них местах (например, прямоугольниках). Хотя термин «компоновка» и термин «представление» могут в других контекстах по смыслу различаться, в данном описании эти термины следует трактовать как взаимозаменяемые и эквивалентные. Элементы отображения, обработанные системой компоновки/представления, предоставляют графические выходные данные на компоненты визуализации системы графического вывода и драйверов графического отображения. Указанные компоненты визуализации приводят в действие аппаратные средства графического отображения, такие как мониторы и принтеры.The display and / or visualization of graphical output for an application that runs on a computer system involves many tasks. One such task is layout / presentation management. Layout / presentation management refers to organizing and “decorating” (decorating) a set of image elements in places allocated to them (for example, rectangles). Although the term “layout” and the term “presentation” may differ in other contexts, in the present description these terms should be interpreted as interchangeable and equivalent. Display elements processed by the layout / presentation system provide graphical output to visualization components of the graphics output system and graphics display drivers. These visualization components drive graphics hardware such as monitors and printers.
Операции компоновки/представления, выполняемые вычислительными системами, охватывают множество разнообразных функций, выполняемых над графическими элементами отображения. Примером такой операции является упорядочивание текста в рамках заданных размеров графического пользовательского интерфейса редакторского приложения. Операция компоновки определяет содержание (контент) и размещение строк текста в обозначенном прямоугольном пространстве. Другим примером является кадрирование элемента (например, диалогового окна, панели инструментальных средств, панели управляющих элементов и т.д.) с унифицированной границей. Эти операции здесь также называют «возможностями» (опциями). Компоненты визуализации компьютерной системы создают графические выходные данные на основе состояния элементов отображения, которые, возможно, были модифицированы выполненными ранее операциями/возможностями компоновки/представления.Layout / presentation operations performed by computing systems encompass a wide variety of functions performed on graphic display elements. An example of such an operation is the ordering of text within the given sizes of the graphical user interface of the editorial application. The layout operation determines the content (content) and placement of lines of text in the designated rectangular space. Another example is framing an element (for example, a dialog box, toolbar, control panel, etc.) with a uniform border. These operations are also called “features” (options). The components of the visualization of the computer system create graphic output based on the state of the display elements, which may have been modified by previously performed operations / layout / presentation capabilities.
Известны различные механизмы представления. Например, «пользовательский модуль» Microsoft Windows выполняет операции компоновки применительно к окнам высокого уровня на пользовательском графическом интерфейсе. Администратор диалогового окна Microsoft Windows размещает объекты на заранее определенных позициях и позволяет группировать объекты. Позиционирование объектов осуществляется в логическом порядке и не зависит от физического устройства. Система JAVA SWING выполняет базовые операции размещения применительно к объектам в видимом изображении на основе свойств, заданных на объектах.Various presentation mechanisms are known. For example, the Microsoft Windows “user module” performs layout operations for high-level windows on the graphical user interface. The Microsoft Windows dialog box administrator places objects at predefined positions and allows you to group objects. The positioning of objects is carried out in a logical order and does not depend on the physical device. The JAVA SWING system performs basic placement operations for objects in the visible image based on the properties specified on the objects.
Операции компоновки/представления выполняются в настоящее время несколькими способами. Операцию компоновки элементов отображения может полностью выполнять само приложение. Операция компоновки (или «представления») инкапсулирована в приложение. Приложение выполняет «отделку»/компонует элементы для одного видимого изображения (или изображений), связанного(ых) с текущим состоянием приложения. Приложение упорядочивает элементы в области отображения, выделенной данному приложению. После этого приложение визуализирует отображаемые выходные данные, соответствующие упорядоченным элементам отображения, передавая их в графическую систему/драйверы.Layout / presentation operations are currently performed in several ways. The layout operation of the display elements can be completely performed by the application itself. The layout (or “view”) operation is encapsulated in the application. The application performs “decoration” / composes elements for one visible image (or images) associated with the current state of the application. The application arranges the items in the display area allocated to this application. After that, the application visualizes the displayed output data corresponding to the ordered display elements, passing them to the graphics system / drivers.
Другой вариант конфигурации обработки компоновки, включенный в операционную систему Microsoft Windows XP, обеспечивает поддержку заранее определенного набора возможностей компоновки, которые могут быть востребованы приложениями. Набор возможностей компоновки содержит специализированные операции компоновки/представления для элементов отображения графического пользовательского интерфейса для приложений. Набор заранее определенных возможностей компоновки/представления, такой как, например, генератор границ для предоставляемых прямоугольников, уменьшает объем работ по программированию для разработчиков приложения, касающихся конкретных аспектов организации и представления элементов графического отображения. Этот набор заранее определенных возможностей также облегчает совместимость с некоторыми выполняющимися базовыми возможностями/функциями отображения, к примеру с вышеупомянутыми границами. Приложения дополняют заранее определенные функциональные возможности компоновки дополнительными операциями компоновки, встроенными в сами приложения.Another configuration processing configuration option included with the Microsoft Windows XP operating system provides support for a predefined set of layout capabilities that applications may require. The layout feature set contains specialized layout / presentation operations for graphical user interface display elements for applications. A set of predefined layout / presentation capabilities, such as, for example, a border generator for the provided rectangles, reduces the amount of programming work for application developers regarding specific aspects of organizing and representing graphic display elements. This set of predefined capabilities also facilitates compatibility with some basic functionality / display functions that are running, such as the aforementioned boundaries. Applications complement predefined layout functionality with additional layout operations built into the applications themselves.
Известная архитектура обработки компоновки, включающая в себя заранее определенные возможности компоновки, которые могут быть востребованы приложением, упрощает программирование задач компоновки, с которыми сталкиваются приложения в ходе упорядочивания видимого изображения, перед предоставлением графических данных и команд компонентам визуализации компьютерной системы. Однако известная архитектура обработки компоновки с трудом поддерживает расширение или модификации, касающиеся набора заранее определенных возможностей компоновки, которые могут быть востребованы приложениями. Таким образом, новые возможности компоновки размещают, например, непосредственно в программе приложения, вместо того чтобы включить эти возможности в набор заранее определенных возможностей компоновки, предлагаемых архитектурой представления/компоновки. Далее в ходе выполнения приложение производит вычисления для компоновки используя комбинацию заранее определенных функциональных возможностей компоновки и выполняемых внутри приложения операций компоновки/представления.The well-known layout processing architecture, which includes predetermined layout capabilities that may be required by the application, simplifies the programming of the layout tasks that applications encounter when organizing the visible image before providing graphic data and commands to the visualization components of the computer system. However, the known layout processing architecture has difficulty supporting extensions or modifications regarding a set of predefined layout features that may be required by applications. Thus, new layout features are placed, for example, directly in the application program, instead of including these features in the set of predefined layout features offered by the presentation / layout architecture. Further, during execution, the application performs the calculations for the layout using a combination of predefined layout functionality and the layout / presentation operations performed within the application.
Сущность изобретенияSUMMARY OF THE INVENTION
Настоящее изобретение содержит систему презентаторов (модулей представления) для их включения в состав системы управления компоновкой графических выходных данных. Указанное управление компоновкой направлено на способ, которым объекты упорядочивают, задают размеры и размещают в пространстве отображения. Указанные системы обрабатывают компоновку от имени программы, предоставляющей графические элементы, которые содержат данные, представляющие отображаемый контент программы (например, блок текста, который необходимо упорядочить на отображаемой или распечатываемой странице). Презентаторы выполняют дополнительную роль по отношению к графическим элементам (которые определяют данные) путем задания состояний отображения для представления контента графических элементов. Как таковые, презентаторы поддерживают описание компоновки для соответствующего графического элемента.The present invention includes a system of presenters (presentation modules) for inclusion in the composition of the graphical output data layout control system. The specified layout control is directed to the way in which objects are ordered, set dimensions and placed in the display space. These systems process the layout on behalf of a program that provides graphic elements that contain data representing the displayed content of the program (for example, a block of text that needs to be arranged on a displayed or printed page). Presenters perform an additional role with respect to graphic elements (which define data) by setting display states to represent the content of graphic elements. As such, presenters support the layout description for the corresponding graphic element.
Согласно изобретению система презентаторов выполняет роль ведущего узла и упорядочивает презентаторы, связанные с графическими элементами в видимом изображении. Система презентаторов, выполняя роль поддержки процесса получения (вывода) презентаторов множества типов, включает в себя базовый класс презентаторов (модулей представления), из которого получают классы презентаторов. После этого презентаторы конкретизируются исходя из выведенных классов презентаторов.According to the invention, the system of presenters performs the role of the leading node and arranges the presenters associated with graphic elements in the visible image. The system of presenters, playing the role of supporting the process of obtaining (output) presenters of many types, includes the base class of presenters (presentation modules), from which classes of presenters are obtained. After that, presenters are concretized based on the derived classes of presenters.
Система презентаторов также включает в себя ведущий интерфейс презентаторов. Ведущий интерфейс содержит способ для компоновки графических элементов в видимом изображении в соответствии с презентаторами, связанными с графическими элементами. Как таковая, компоновка графических элементов в видимом изображении задается соответствующими презентаторами.The presenter system also includes a leading presenter interface. The host interface comprises a method for arranging graphic elements in a visible image in accordance with presenters associated with graphic elements. As such, the layout of the graphic elements in the visible image is set by the respective presenters.
Краткое описание чертежейBrief Description of the Drawings
Хотя признаки настоящего изобретения детально изложены в прилагаемой формуле изобретения, изобретение и его преимущества лучше всего можно понять из нижеследующего подробного описания вместе с сопроводительными чертежами, на которых:Although the features of the present invention are set forth in detail in the attached claims, the invention and its advantages can best be understood from the following detailed description together with the accompanying drawings, in which:
фиг. 1 - блок-схема, изображающая приведенную в качестве примера вычислительную систему для выполнения одного варианта изобретения;FIG. 1 is a block diagram showing an example computer system for implementing one embodiment of the invention;
фиг. 2 - схема высокого уровня, изображающая основные компоненты архитектуры управления компоновкой, включающей систему презентаторов для выполнения поддержки графической компоновки в вычислительной системе, где воплощено настоящее изобретение;FIG. 2 is a high-level diagram depicting the main components of a layout control architecture including a presenter system for supporting graphic layout in a computing system where the present invention is embodied;
фиг. 3 - схема, изображающая взаимосвязи между графическими элементами и презентаторами, определяющими графический документный/пользовательский интерфейс в системе, где воплощено настоящее изобретение;FIG. 3 is a diagram showing relationships between graphic elements and presenters defining a graphical document / user interface in a system where the present invention is embodied;
фигуры 4а и 4b - итоговая структура базового класса презентаторов, из которой выводят классы объектов-презентаторов согласно требованиям пользователя, для выполнения конкретных задач компоновки/визуализации в системе, где воплощено настоящее изобретение;figures 4a and 4b are the final structure of the base class of presenters, from which classes of objects-presenters are derived according to the requirements of the user, to perform specific layout / visualization tasks in the system where the present invention is embodied;
фиг. 5 - итоговая структура дочернего посреднического класса;FIG. 5 - the final structure of the child intermediary class;
фиг. 6 - итоговая структура интерфейса класса обработчиков уведомлений;FIG. 6 - the final structure of the interface of the class of notification handlers;
фиг. 7 - итоговая структура класса узла обработчиков уведомлений;FIG. 7 - the final structure of the class of the node of the notification handlers;
фиг. 8 - итоговая структура класса видимого изображения;FIG. 8 - the final structure of the class of the visible image;
фиг. 9 - итоговое представление частей структуры BoxSizeInfo (информация о размерах прямоугольника);FIG. 9 - the final representation of parts of the BoxSizeInfo structure (information about the dimensions of the rectangle);
фиг. 10 - итоговое представление частей структуры дескриптора страницы;FIG. 10 is a summary view of parts of the page descriptor structure;
фиг. 11 - итоговая структура класса механизма представления;FIG. 11 - the final structure of the class of the presentation mechanism;
фиг. 12 - блок-схема, дающая итоговое представление о примерных шагах для обработки изменения в графическом элементе на основе обработчика уведомлений;FIG. 12 is a flowchart giving a summary of exemplary steps for processing a change in a graphic element based on a notification handler;
фиг. 13 - блок-схема, дающая итоговое представление о примерных шагах для выполнения повторных вычислений и визуализации видимого изображения, содержащего набор презентаторов, согласно варианту настоящего изобретения; иFIG. 13 is a flowchart giving an overview of exemplary steps for performing recalculations and rendering a visible image containing a set of presenters, according to an embodiment of the present invention; and
фиг. 14 - блок-схема, дающая итоговое представление о примерных шагах для выполнения обновления в презентаторе (и связанных с ним затронутых дочерних презентаторах) в ответ на изменение в относящемся к нему графическом элементе.FIG. 14 is a flowchart giving a summary of exemplary steps for performing an update on a presenter (and associated affiliated presenters) in response to a change in a graphic element relating to it.
Подробное описание чертежейDetailed Description of Drawings
Ниже раскрыта архитектура пользовательского интерфейса и компоновки/преставления документа.The following describes the user interface architecture and layout / presentation of the document.
Раскрытая архитектура компоновки/представления включает в себя компоненты (презентаторы, модули представления) графической обработки/визуализации компоновки, которые реализуют аспекты видимого изображения соответствующих базовых данных (графических элементов) для документного/пользовательского интерфейса. Система презентаторов хостирует (размещает в себе) презентаторы. Выполняя свою ведущую роль, система презентаторов организует и координирует обновление видимого изображения, содержащего набор презентаторов, в ответ на изменения соответствующих графических элементов. Таким образом, система презентаторов обеспечивает механизм, который связывает состояние (например, состояние данных) графических элементов с состояниями видимого изображения, обновляемыми, кэшируемыми и визуализируемыми с помощью соответствующих объектов-презентаторов.The disclosed layout / presentation architecture includes components (presenters, presentation modules) of the graphic processing / visualization of the layout, which implement the aspects of the visible image of the corresponding basic data (graphic elements) for the document / user interface. The system of presenters hosts (hosts) presenters. Fulfilling its leading role, the system of presenters organizes and coordinates the updating of the visible image containing the set of presenters in response to changes in the corresponding graphic elements. Thus, the system of presenters provides a mechanism that associates the state (for example, the state of data) of graphic elements with the states of the visible image, updated, cached and visualized using the corresponding presenter objects.
Одним из аспектов архитектуры компоновки/представления на основе системы презентаторов, в которой воплощено настоящее изобретение, является высокая степень расширяемости применительно к типам презентаторов, которыми она управляет. Базовый класс презентаторов, предоставляемый системой презентаторов, облегчает расширение набора типов презентаторов (классов объектов), доступных для компоновки и визуализации информации, обеспечиваемой соответствующим графическим элементом. Различные типы презентаторов, получаемые из базового класса презентаторов, включают в себя конкретные способы компоновки/визуализации в качестве переопределений для способов по умолчанию, задаваемых базовым классом презентаторов. Объекты презентаторов, созданные исходя из набора классов объектов презентаторов, реализуют возможности компоновки/представления согласно состоянию данных соответствующего графического элемента.One aspect of the layout / presentation architecture based on the presenter system in which the present invention is embodied is a high degree of extensibility with respect to the types of presenters it manages. The base class of presenters provided by the system of presenters facilitates the expansion of the set of types of presenters (object classes) available for composing and visualizing the information provided by the corresponding graphic element. Various types of presenters derived from the base class of presenters include specific layout / visualization methods as overrides for the default methods specified by the base class of presenters. Presenter objects created on the basis of a set of classes of presenter objects realize the layout / presentation capabilities according to the data state of the corresponding graphic element.
Система презентаторов управляет презентаторскими объектами, созданными (заданными) исходя из набора классов объектов презентаторов. Система презентаторов реализует управление (то есть создание, удаление и т.д.) на протяжении всего времени существования объектов презентаторов. Система презентаторов обеспечивает обработку, связанную с отслеживанием «загрязненности» презентаторов, для избирательного обновления только измененных презентаторов. Система презентаторов поддерживает сцепление презентаторов для предоставления элементов «отделки» (украшения) главным презентаторам. Система презентаторов также координирует обновление и визуализацию презентаторов.The presenter system manages presenter objects created (set) based on a set of presenter object classes. The system of presenters implements management (that is, creation, deletion, etc.) throughout the entire existence of presenter objects. The presenters system provides processing related to monitoring the “contamination” of presenters for the selective updating of only modified presenters. The presenter system supports the coupling of presenters to provide elements of “decoration” (decoration) to the main presenters. The presenter system also coordinates the updating and visualization of presenters.
В одном варианте изобретения благодаря наличию обработчиков уведомлений облегчается уведомление об изменениях графических элементов, потенциально влияющих на состояния видимого изображения. Обработчики уведомлений предоставляют возможность обработки уведомлений об изменениях, выделяемых из процесса обработки изменений, выполняемого презентаторами. Каждый тип элемента презентатора связан с типом обработчика уведомлений. Каждый обработчик уведомлений обрабатывает изменения соответствующего графического элемента. Если обновление необходимо, то тогда обработчик уведомлений инициирует установку свойства «загрязненности» в соответствующем объекте презентатора. Установленное свойство «загрязненности» вызывает повторные вычисления для объекта презентатора в ответ на изменения соответствующего графического элемента.In one embodiment of the invention, the presence of notification handlers facilitates notification of changes to graphic elements that potentially affect the state of the visible image. Notification handlers provide the ability to process change notifications that are allocated from presenters' change processing. Each type of presenter item is associated with a type of notification handler. Each notification handler processes changes to the corresponding graphic element. If an update is necessary, then the notification handler initiates the setting of the “pollution” property in the corresponding object of the presenter. The established “pollution” property causes repeated calculations for the presenter object in response to changes in the corresponding graphic element.
Архитектура компоновки/представления интерфейса пользователя, описанная здесь в качестве примера, включена в состав операционной системы, которая обеспечивает хостинг приложений, имеющих графические пользовательские/документные интерфейсы. Приложения, презентаторы и компоненты операционной системы для визуализации, зависящие от конкретного устройства, а также драйверы, зависящие от конкретного устройства, визуализируют команды/данные управления устройствами вывода графических данных интерфейса/документа для отображения на аппаратных средствах устройств отображения (например, мониторы, принтеры и т.д.). Возможности (опции) компоновки визуализированных выходных данных базируются, по меньшей мере частично, на обработке компоновки/представления и визуализации, выполняемых презентаторами, хостируемыми системой презентаторов.The layout / presentation architecture of the user interface described here as an example is included in the operating system, which provides hosting for applications that have graphical user / document interfaces. Device-specific visualization applications, presenters, and operating system components, as well as device-specific drivers, visualize commands / data for controlling graphic / interface output devices for displaying document data (for example, monitors, printers and etc.). The capabilities (options) of the layout of the rendered output are based, at least in part, on the processing of the layout / presentation and visualization performed by the presenters hosted by the presenter system.
Архитектура представления позволяет разорвать связь между состоянием данных отображаемого элемента и состоянием его видимого изображения. Такое разъединение обеспечивает расширяемую платформу с широкими возможностями ее настройки пользователем для создания новых и специализированных возможностей для базового графического элемента. В одном варианте изобретения элемент отображения представлен объектом-графическим элементом (представляющим состояние данных элемента) и, по меньшей мере одним, связанным с ним объектом презентатора (представляющим состояние видимого изображения) для компоновки (размещения) элемента в конкретном видимом изображении. Презентатор выполняет настроенное пользователем обновление компоновки для связанного с ним элемента. Презентатор также визуализирует изображение элемента после обновления компоновки.The presentation architecture allows you to break the connection between the data state of the displayed element and the state of its visible image. This disconnection provides an extensible platform with extensive customization capabilities by the user to create new and specialized capabilities for the base graphic element. In one embodiment of the invention, the display element is represented by a graphic object (representing the state of the element's data) and at least one associated with it a presenter object (representing the state of the visible image) for arranging (placing) the element in a particular visible image. The presenter performs a custom layout update for the item associated with it. The presenter also renders the image of the element after updating the layout.
Использование объектов презентатора устраняет связь между состоянием данных отображаемого элемента и его отображения в видимом изображении. Вследствие этого каждый графический элемент (источник данных отображения) потенциально способен иметь множество презентаторов, обеспечивающих отдельные видимые изображения графического элемента (например, полномасштабное и свернутое изображение фотографического элемента). Возможность связывания множества презентаторов с одним графическим элементом позволяет также связать один элемент с множеством мест внутри поля (например, расщепление одного графического элемента на множество колонок). Кроме того, система презентаторов поддерживает сцепление множества отдельных презентаторов различных типов с одним элементом, в результате чего поддерживается закрепление множества различных элементов «отделки», настроенных пользователем, за базовым видимым изображением для элемента. Далее со ссылками на чертежи описываются эти и другие аспекты примерной архитектуры компоновки/визуализации изображений.Using presenter objects eliminates the relationship between the data state of the displayed item and its display in the visible image. As a result, each graphic element (display data source) is potentially capable of having many presenters providing separate visible images of the graphic element (for example, a full-scale and minimized image of a photographic element). The ability to associate multiple presenters with one graphic element also allows you to associate one element with many places inside the field (for example, splitting one graphic element into many columns). In addition, the system of presenters supports the linking of many individual presenters of various types with one element, as a result of which the fixing of many different "decoration" elements configured by the user to the basic visible image for the element is supported. Next, with reference to the drawings, these and other aspects of an exemplary image composition / rendering architecture are described.
На фиг. 1 в качестве примера показана подходящая операционная среда 100 для реализации архитектуры компоновки/представления отображений на основе системы презентаторов. Операционная среда 100 является лишь одним примером подходящей операционной среды, и ее не следует рассматривать как какое-либо ограничение сферы использования или функциональных возможностей изобретения. Другие хорошо известные вычислительные системы, среды и/или конфигурации, которые могут подойти для использования с данным изобретением, включают в себя, но не ограничиваются ими: персональные компьютеры, компьютеры-серверы, портативные/настольные вычислительные устройства, переносные вычислительные устройства, многопроцессорные системы, системы на базе микропроцессоров, сетевые персональные компьютеры, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств и т.п. Раскрытая здесь архитектура управления компоновкой, к примеру архитектура, показанная на фиг.1, включающая в себя систему презентаторов, отвечает ряду различных требований, в том числе расширяемости, интеграции и единообразия в отношении функциональных возможностей отображения для вычислительной системы.In FIG. 1 illustrates, by way of example, a suitable operating environment 100 for implementing a layout / presentation architecture of mappings based on a presenter system. Operating environment 100 is just one example of a suitable operating environment, and should not be construed as limiting the scope or functionality of the invention. Other well-known computing systems, environments and / or configurations that may be suitable for use with this invention include, but are not limited to: personal computers, server computers, portable / desktop computing devices, portable computing devices, multiprocessor systems, microprocessor-based systems, networked personal computers, minicomputers, universal computers, distributed computing environments that include any of the above systems systems or devices, etc. The layout control architecture disclosed herein, for example, the architecture shown in FIG. 1, including a presenter system, meets a number of different requirements, including extensibility, integration, and uniformity with respect to display functionality for a computing system.
Изобретение описано в общем контексте набора этапов и процессов, реализуемых по командам, таким как программные модули, выполняемым компьютером. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют отдельные абстрактные типы данных. Хотя приведенный в качестве примера вариант описан со ссылками на локально выполняемые операции в единой компьютерной системе, изобретение потенциально можно включить в состав сетевых узлов, работающих в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, связанными между собой через сеть связи. В распределенной вычислительной среде программные модули обычно находятся как на локальных, так и в удаленных компьютерных запоминающих средах, в том числе запоминающих устройствах.The invention is described in the general context of a set of steps and processes implemented by instructions, such as program modules, executed by a computer. Typically, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Although the example embodiment described is described with reference to locally performed operations in a single computer system, the invention can potentially be included in network nodes operating in distributed computing environments where tasks are performed by remote processing devices that are interconnected via a communication network. In a distributed computing environment, program modules are typically located in both local and remote computer storage environments, including storage devices.
Обратимся к фиг.1, где приведенная в качестве примера система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не только, блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, в том числе системную память, с блоком 120 обработки. Системная шина может представлять собой шинные структуры любого из нескольких типов, в том числе: шину памяти или контроллер памяти, периферийную шину и локальную шину, с использованием любой из множества различных шинных архитектур. В качестве примера, но не как ограничение, такие архитектуры включают в себя: шину с архитектурой промышленного стандарта (ISA), шину с микроканальной архитектурой (MCA), шину с расширенной архитектурой ISA (EISA), локальную шину, разработанную Ассоциацией по стандартам видеооборудования (VESA), и шину межсоединений периферийных компонентов (PCI), известную также как шина Mezzanine.Referring to FIG. 1, an exemplary system for implementing the invention includes a general-purpose computing device in the form of a computer 110. Components of a computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 , which associates various system components, including system memory, with processing unit 120. A system bus can be any of several types of bus structures, including: a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of different bus architectures. By way of example, but not limitation, such architectures include: industry standard architecture (ISA) bus, microchannel architecture (MCA) bus, ISA advanced architecture bus (EISA), local bus developed by the Video Equipment Standards Association ( VESA), and the Peripheral Component Interconnect (PCI) bus, also known as the Mezzanine bus.
Компьютер 110 обычно включает в себя множество различных считываемых компьютером сред. Считываемая компьютером среда может представлять собой любую имеющуюся среду, которая может быть доступна компьютеру 110, и включает в себя как энергозависимую, так и энергонезависимую среду, съемную и несъемную среду (носители). Как пример, но не ограничение, считываемая компьютером среда может содержать компьютерную запоминающую среду и среду связи. Компьютерная запоминающая среда включает в себя как энергозависимую, так и энергонезависимую, как съемную, так и несъемную среды, реализованные любым способом или по любой технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя, но не только: ОЗУ (RAM), ПЗУ (ROM), электрически стираемое ППЗУ (EEPROM), флэш-память или другую технологию памяти, ПЗУ на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другое запоминающее устройство на оптических дисках, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске либо другие магнитные запоминающие устройства, или любую другую среду, которую можно использовать для запоминания требуемой информации и которая может быть доступна компьютеру 110. Среда связи обычно воплощает считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей, либо другой механизм транспортировки данных, и включает в себя любую среду для доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или несколько характеристик, устанавливаемых или изменяемых таким образом, чтобы обеспечить кодирование информации в этом сигнале. В качестве примера, но не как ограничение, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная (RF), инфракрасная или иная беспроводная среда. В сферу считываемой компьютером среды могут быть также включены комбинации из любых вышеупомянутых сред.Computer 110 typically includes many different computer readable media. A computer-readable medium can be any available medium that can be accessed by computer 110, and includes both volatile and non-volatile media, removable and non-removable media (media). As an example, but not limitation, a computer-readable medium may comprise a computer storage medium and a communication medium. A computer storage medium includes both volatile and non-volatile, both removable and non-removable media implemented in any way or by any technology for storing information, such as computer-readable instructions, data structures, program modules or other data. A computer storage medium includes, but not only: RAM, ROM, electrically erasable ROM (EEPROM), flash memory or other memory technology, ROM on a compact disc (CD-ROM), digital versatile disks (DVD) or other optical disk storage device, magnetic tapes, magnetic tape, magnetic disk storage device or other magnetic storage device, or any other medium that can be used to store the required information and which can be accessed by computer 110. Communication mediumtypically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier signal, or other data transport mechanism, and includes any information delivery medium. The term "modulated data signal" means a signal that has one or more characteristics set or changed in such a way as to encode information in this signal. By way of example, but not limitation, a communication medium includes a wired medium, such as a wired network or a direct wired connection, and a wireless medium, such as an acoustic, radio frequency (RF), infrared, or other wireless medium. Combinations of any of the aforementioned environments may also be included within the scope of computer-readable media.
Системная память 130 включает в себя компьютерную запоминающую среду в виде энергозависимой и/или энергонезависимой памяти, такой как память 131 только для считывания (ROM) и память 132 с произвольным доступом (RAM). Базовая система 133 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают пересылать информацию между элементами в компьютере 110, к примеру во время запуска, иногда хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны и/или в данный момент обрабатываются блоком 120 обработки. В качестве примера, но не как ограничение, на фиг. 1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.System memory 130 includes a computer storage medium in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) 131 and random access memory (RAM) 132. A basic input / output system (BIOS) 133 containing basic routines that help transfer information between items on a computer 110, for example during startup, is sometimes stored in ROM 131. RAM 132 typically contains data and / or program modules that are directly accessible and / or are currently being processed by processing unit 120. By way of example, but not limitation, in FIG. 1 shows an operating system 134, application programs 135, other program modules 136, and program data 137.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие среды. В качестве примера на фиг. 1 показан только накопитель 140 на жестких дисках, который выполняет считывание с или запись на несъемную, энергонезависимую магнитную среду (носитель), накопитель 151 на магнитном диске, который осуществляет считывание с или запись на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптическом диске, который осуществляет считывание с и запись на съемный энергонезависимый оптический диск 156, такой как CD ROM, либо другой оптический носитель. К другим съемным/несъемным энергозависимым/энергонезависимым запоминающим средам, которые можно использовать в приведенной в качестве примера операционной среде, относятся, но не только: кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровая видеолента, твердотельное ОЗУ (RAM), твердотельное ПЗУ (ROM) и т.п. Накопитель 141 на жестких дисках обычно подсоединен к системной шине 121 через несъемный интерфейс памяти, такой как интерфейс 140, а дисковод 151 на магнитном диске и дисковод 155 на оптическом диске обычно подсоединены к системной шине 121 через съемный интерфейс памяти, такой как интерфейс 150.Computer 110 may also include other removable / non-removable, volatile / non-volatile computer storage media. As an example in FIG. 1 shows only a hard disk drive 140 that reads from or writes to a non-removable, non-volatile magnetic medium (medium), a magnetic disk drive 151 that reads from or writes to a removable non-volatile magnetic disk 152, and an optical drive 155 which reads from and writes to a removable non-volatile optical disk 156, such as a CD ROM, or other optical medium. Other removable / non-removable volatile / non-volatile storage media that can be used in the example operating environment include, but are not limited to: magnetic tape cartridges, flash memory cards, digital versatile disks, digital video tape, solid state RAM (RAM) , solid state ROM (ROM), etc. The hard disk drive 141 is typically connected to the system bus 121 via a non-removable memory interface such as interface 140, and the magnetic disk drive 151 and the optical disk drive 155 are usually connected to the system bus 121 via a removable memory interface such as interface 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.The drives and associated computer storage media described above and shown in FIG. 1 provide for the storage of computer readable instructions, data structures, program modules and other data for computer 110. FIG. 1 as an example, it is shown that the hard disk drive 141 stores the operating system 144, application programs 145, other program modules 146 and program data 147. Note that these components may be the same or different from the operating system 134, application programs 135, and other software modules 136 and program data 137. The operating system 144, application programs 145, other program modules 146 and program data 147 are represented here by different reference numbers to show that they are at least different copies. The user can enter commands and information into the computer 20 through input devices, such as a keyboard 162 and pointing device 161, which is usually understood as a mouse, trackball or touch keyboard. Other input devices (not shown) may include a microphone, joystick, gaming keyboard, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 via an input user interface 180 that is connected to the system bus, although these devices can be connected via other interface and bus structures, such as a parallel port, a game port, or a universal serial bus (USB) . Through an interface, such as video interface 190, a monitor 191 or another type of display device may also be connected to the system bus 121. In addition to the monitor, computers can also include other peripheral output devices, such as speakers 197 and a printer 196, which can be connected via an output peripheral interface 195.
Компьютер 110 потенциально действует в сетевом окружении, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство или другой общий сетевой узел и обычно включает в себя многие либо все элементы, описанные выше в связи с компьютером 110, хотя на фиг. 1 показано только запоминающее устройство 181. Логические соединения, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды широко распространены в офисах, корпоративных компьютерных сетях, интрасетях и Интернет.Computer 110 potentially operates in a networked environment using logical connections to one or more remote computers, such as remote computer 180. Remote computer 180 may be a personal computer, server, router, network personal computer, peer device, or other common network node, and typically includes many or all of the elements described above in connection with computer 110, although in FIG. 1 shows only the storage device 181. The logical connections shown in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are widespread in offices, corporate computer networks, intranets, and the Internet.
При использовании в сетевой среде LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 либо другое средство для установления связи по сети WAN 173, такой как Интернет. Модем 172, который может быть встроенным либо внешним, может быть подсоединен к системной шине 121 через входной интерфейс 160 пользователя либо другой подходящий механизм. В сетевой среде программные модули, изображенные применительно к компьютеру 110 или его частям, могут храниться в удаленном запоминающем устройстве. В качестве примера, но не как ограничение, на фиг. 1 показаны удаленные прикладные программы 185, находящиеся в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения приведены в качестве примера, и что можно использовать другие средства для установления линии связи между компьютерами.When used in a LAN network environment, computer 110 is connected to LAN 171 via a network interface or adapter 170. When used in a WAN network environment, computer 110 typically includes a modem 172 or other means for establishing communication over a WAN 173 network, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via an input user interface 160 or other suitable mechanism. In a networked environment, program modules depicted in relation to computer 110 or parts thereof may be stored in a remote storage device. By way of example, but not limitation, in FIG. 1, remote applications 185 located in memory 181 are shown. It will be appreciated that the network connections shown are exemplary and that other means can be used to establish a communication link between computers.
На фиг. 2 представлена схема высокого уровня, идентифицирующая программные модули и программы, а также конкретизированные объекты и компоненты данных архитектуры системы управления компоновкой/представлением, в которой воплощено настоящее изобретение. Приведенная в качестве примера архитектура системы управления компоновкой/представлением, показанная на фиг. 2, включает в себя систему 200 презентаторов, которая поддерживает компоновку/представление отображаемых объектов на основе набора иерархически упорядоченных объектов презентаторов, связанных с создаваемым видимым изображением 202, исходя из класса объекта видимого изображения (смотри фиг.8, описанную ниже) при запросе приложения 204, выполняющегося в операционной системе 205.In FIG. 2 is a high-level diagram identifying program modules and programs, as well as specific objects and data components of the architecture of a layout / presentation control system in which the present invention is embodied. The exemplary layout / presentation management system architecture shown in FIG. 2 includes a
В одном варианте изобретения каждое видимое изображение (например, видимое изображение 202) имеет соответствующую систему презентаторов (например, систему 200 презентаторов), которая отвечает за поддержание отображаемых объектов в видимом изображении. В одном варианте изобретения изображение 202 представляет собой визуальный корневой объект для всех визуальных объектов, которые создаются системой 200 презентаторов. Отображаемый контент в видимом изображении 202 базируется на графических элементах 206 во вспомогательном запоминающем устройстве 208. Приложение 204 является источником графических элементов 206 во вспомогательном запоминающем устройстве 208. На фиг. 3, описанной ниже, показан пример, где представлены взаимосвязи между видимыми изображениями, системами презентаторов, деревьями презентаторов для видимых изображений и деревьями графических элементов, связанными с приложением.In one embodiment of the invention, each visible image (e.g., visible image 202) has a corresponding presenter system (e.g., presenter system 200) that is responsible for maintaining the displayed objects in the visible image. In one embodiment of the invention, image 202 is a visual root object for all visual objects that are created by
Архитектура системы управления компоновкой/представлением, изображенная на фиг. 2, разделена на множество функциональных компонентов. Линии между изображенными компонентами представляют пути взаимодействия между компонентами. Настоящее изобретение не сводится к конкретной компоновке компонентов и показанным в качестве примера взаимодействиям между компонентами в иллюстративном варианте, изображенном на фиг.2. Наоборот, описанные ниже функциональные возможности компонентов сгруппированы в различных сочетаниях согласно альтернативным вариантам изобретения.The layout / presentation control system architecture shown in FIG. 2, is divided into many functional components. The lines between the components shown represent the interaction paths between the components. The present invention is not limited to a specific arrangement of components and shown as an example of interactions between components in the illustrative embodiment shown in figure 2. Conversely, the functionality of the components described below is grouped in various combinations according to alternative embodiments of the invention.
В одном варианте изобретения приложение 204 вызывает метод-конструктор на прикладном программном интерфейсе классов объектов - видимых изображений (смотри структуру классов видимых изображений на фиг. 8, описанной ниже) для создания корневого объекта для экземпляра объекта - видимого изображения 202. Вызов метода для создания видимого изображения 202 проходит через ссылку к корневому графическому элементу графических элементов 206, находящихся во вспомогательном запоминающем устройстве 208. После создания видимого изображения 202 вызов метода DoLayout (выполнить компоновку) на видимом изображении 202 создает дерево презентаторов для видимого изображения 202 с корневым объектом-презентатором, соответствующим корневому графическому элементу, изначально переданному методу-конструктору, который создал видимое изображение 202. Дерево презентаторов (на фиг. 2 не показано) для видимого изображения 202 содержит набор презентаторов, которые ответственны за организацию и визуализацию выходных данных для видимого изображения 202.In one embodiment of the invention,
В одном варианте изобретения каждое видимое изображение (например, видимое изображение 202) обладает системой презентаторов (например, система 200 презентаторов). Таким образом, в ответ на вызов метода DoLayout видимое изображение 202 инициирует создание нового дерева презентаторов и возвращает его вызывающей стороне (например, приложение 204). В исходном состоянии видимое изображение 202 вызывает метод-конструктор из класса объектов-механизмов представления для создания экземпляра механизма 212 представления, включающего в себя ведущий прикладной программный интерфейс презентаторов (ведущий API презентаторов). Механизм 212 представления включает в себя выполняемую программу для координации и организации выполнения операций компоновки/представления в вычислительной системе, поддерживающей графические выходные данные. Функции, выполняемые/координируемые механизмом 212 представления, включают в себя: создание объектов презентаторов (как корневой, так и дочерней версии), координацию повторных вычислений состояний отображения презентаторов, визуализацию, управление презентаторами на протяжении всего времени их существования, отслеживание «загрязненности», сцепление множества презентаторов с одним элементом и выполнение пошаговой компоновки. Примеры вызываемых методов на ведущем API презентаторов механизма 212 представления описаны ниже со ссылками на фиг. 12. Эти методы представляют собой запросы высокого уровня, которые создают и поддерживают дерево объектов презентаторов для видимого изображения 202. Идентифицированные задачи, выполняемые механизмом 212 представления, приведены в качестве примеров, и специалистам в данной области техники должно быть понятно, что в альтернативных вариантах изобретения механизм 212 представления может решать дополнительные/альтернативные задачи.In one embodiment of the invention, each visible image (e.g., visible image 202) has a presenter system (e.g., presenter system 200). Thus, in response to a call to the DoLayout method, the visible image 202 initiates the creation of a new presenter tree and returns it to the caller (for example, application 204). In the initial state, the visible image 202 calls the constructor method from the class of presentation mechanism objects to create an instance of the
Механизм 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 объектов презентаторов устанавливают новый класс презентаторов, например, путем инсталляции файла, содержащего новый класс объектов в обозначенном каталоге в файловой системе компьютера.In one embodiment of the invention, the set of
В одном варианте изобретения класс 214 презентаторов включает в себя классы презентаторов для реализации возможностей (опций) компоновки, в том числе, например: компоновку контента, упорядочивание дочерних объектов, создание визуалов, страничное разбиение контента документа и пошаговое обновление визуалов (например, страницы HTML, которые покрывают множество дисплейных экранов). Примеры специальных типов презентаторов включают в себя: текстовый презентатор, который обеспечивает измерения и отображение текста, отформатированного различными способами (например, полужирный, италик и т.д.); презентатор изображения, который обеспечивает измерения и отображение заданного изображения; и стыковочный презентатор, который разделяет на части пространство между множеством дочерних презентаторов.In one embodiment of the invention, the
После создания системы 200 презентаторов и классов 214 презентаторов для данного видимого изображения конкретизируют набор объектов презентаторов, связанных с видимым изображением 202, и систему 200 презентаторов, начиная с объекта корневого презентатора. Заметим, что вызов метода-конструктора для класса объекта-механизма представления с целью создания механизма 212 представления идентифицирует корневой графический элемент для видимого изображения 202. После инсталляции механизм 212 представления вызывает графические элементы 206 для определения типа объекта презентатора, связанного с корневым графическим элементом для видимого изображения 202. После определения типа презентатора графического элемента механизм 212 представления вызывает в одном из классов 214 объектов презентаторов метод, соответствующий типу объекта презентатора, идентифицированному графическими элементами 206, с целью задания значений объекта корневого презентатора для видимого изображения 202.After creating a system of 200 presenters and classes of 214 presenters for a given visible image, a set of presenter objects associated with the visible image 202 and a system of 200 presenters are specified, starting with the root presenter object. Note that invoking the constructor method for the class of the presentation engine object to create the
Как показано с помощью пути между классами 214 презентаторов и вспомогательным запоминающим устройством, объекты презентаторов, в том числе корневой презентатор, обращаются к графическим элементам 206 во вспомогательном запоминающем устройстве 208 для определения свойств конкретных графических элементов. Например, объект презентатора для конкретного графического элемента способен идентифицировать любые дочерние графические элементы конкретного графического элемента и тип презентатора для каждого дочернего графического элемента. Далее объект презентатора вызывает для каждого идентифицированного дочернего графического элемента собственный метод 486 (например, GetChildProxyForElement (получить дочерний посредник для элемента)) для реализации дочернего посреднического (прокси-) объекта-посредника из класса 222 дочерних посредников системы 200 презентаторов. Дочерние посреднические (прокси-) объекты являются объектами-упаковщиками (оболочкой) для объектов презентаторов, реализованных (созданных) исходя из классов 214 объектов презентаторов, которые вложены в пространство отображения, выделенное для объекта родительского презентатора. Класс 222 дочерних посредников удовлетворяет требованиям инкапсулирования и безопасности (например, объект дочернего презентатора с помощью объекта родительского презентатора или приложения 204 ограничивает доступ к контенту презентатора, содержащемуся в дочернем презентаторе). В альтернативном варианте уровень инкапсулирования, предоставляемый дочерними посредническими объектами, пропускается, и родительские презентаторы имеют непосредственный доступ к своим дочерним презентаторам.As shown by the path between the
Метод для объекта презентатора для создания объекта дочернего посредника для одного элемента в одном варианте изобретения вызывает метод-конструктор из класса 222 дочерних посредников и передает идентификационные данные дочернего графического элемента для создания нового дочернего посреднического (прокси-) объекта и объекта презентатора для дочернего графического элемента. Сразу после создания (реализации) новый дочерний посреднический объект создает объект презентатора для дочернего графического элемента через конструктор презентатора, соответствующий типу презентатора, заданному на идентифицированном дочернем графическом элементе. В свою очередь, дочерний посреднический объект возвращает собственную ссылку родительскому объекту презентатора. Родительский объект презентатора поддерживает возвращенную ссылку дочернего посреднического объекта в массиве ссылок на дочерние посреднические объекты. Как таковые, записи в массиве дочерних посреднических объектов для презентаторского объекта соответствуют дочерним графическим элементам для родительского графического элемента, с которым связан родительский презентатор.A method for a presenter object to create a child intermediary object for one element in one embodiment of the invention calls a constructor method from the
Другим аспектом архитектуры упорядочивания/представления графических элементов, показанной на фиг.2, является уведомление об изменении. В одном варианте настоящего изобретения для объектов презентаторов, созданных из классов 214 презентаторов, предусмотрен набор классов 224 обработчиков уведомлений. Классы 224 обработчиков уведомлений определяются в соответствии с базовым классом 225 обработчиков уведомлений. Базовый класс 225 обработчиков уведомлений является абстрактным классом, который определяет интерфейс для классов 224 обработчиков уведомлений. Базовый класс 225 обработчиков уведомлений предлагает определение интерфейса из двух виртуальных методов (смотри фиг.6), реализация которого предусмотрена в классах 224 обработчиков уведомлений согласно соответствующим классам 214 презентаторов. Классы 224 обработчиков уведомлений помогают выполнять пошаговое обновление компоновки, причем повторно вычисляются только объекты презентатора, подвергнутые изменениям в наборе соответствующих графических элементов. В одном варианте изобретения обработчик уведомлений задается для комбинаций графического элемента и видимого изображения. В случаях создания множества презентаторов для одной комбинации «графический элемент/видимое изображение» в качестве единственного источника для отслеживания изменений в элементе в целях обновления множества презентаторов для данного элемента в видимом изображении действует единственный обработчик уведомлений. Каждый тип презентаторов задает соответствующий конкретный тип обработчика уведомлений. Когда объект презентатора для элемента создан, для чего потребуется обработчик уведомлений, система презентаторов создает соответствующий обработчик уведомлений заданного типа и связывает обработчик уведомлений с объектом презентатора.Another aspect of the graphical ordering / presentation architecture shown in FIG. 2 is a change notification. In one embodiment of the present invention, presenter objects created from
Экземпляры классов 224 обработчиков уведомлений определяют, какие части объектов презентаторов являются «загрязненными» и, следовательно, требуют обновления. Вначале устанавливают отношения уведомления между графическим элементом и обработчиком уведомлений, созданным для презентатора в видимом изображении (например, в видимом изображении 202 для приложения 204). Обработчик уведомлений принимает уведомления об изменениях, связанные с графическим элементом во вспомогательном запоминающем устройстве 208, через механизм 212 представления в системе 200 презентаторов. Обработчик уведомлений определяет часть, если она имеется, презентатора, на которую повлияло изменение в элементе. Обработчик уведомлений возвращает информацию о части, претерпевшей изменение, в систему 200 презентаторов. Презентатор помечают как «загрязненный» с помощью механизма 212 представления. Система 200 презентаторов накапливает информацию о «загрязненных» презентаторах для всех презентаторов в структуре данных, поддерживаемой для видимого изображения (например, видимое изображение 202). Затем, в ответ на вызов для повторного расчета компоновки для видимого изображения, механизм 212 представления в системе 200 презентаторов активирует метод/операцию обновления только на «загрязненных» презентаторах. Таким образом, классы 224 обработчиков уведомлений позволяют ограничить обновления компоновки объектами презентаторов, претерпевшими изменения, которые были созданы исходя из классов 214 презентаторов.Instances of
Архитектура системы управления компоновкой, в которой воплощено настоящее изобретение, функционирует независимо от каких-либо конкретных аппаратных средств вывода, на которых в конечном счете отображаются выложенные (отображаемые) элементы в соответствии с их определенными видимыми изображениями. Архитектура системы управления компоновкой/представлением, показанная на фиг. 2, выполняет шаг предобработки применительно к графическим выходным данным отображения. В одном варианте изобретения упорядоченные выходные данные, связанные с архитектурой системы управления компоновкой/представлением, не зависят от конкретного устройства. Впоследствии на стадии визуализации объекты презентаторов визуализируют повторно вычисленное видимое изображение на компонентах графического вывода вычислительной системы. Однако в других вариантах изобретения выходные данные системы компоновки/представления возвращают в вызывающее приложение либо с помощью объектов 214 презентаторов, либо с помощью системы 200 презентаторов, и приложение 204 выполняет задачу визуализации. В одном варианте изобретения команды визуализации, если они выданы объектами презентаторами, полученными из классов 214 презентаторов, видимого изображения 202 или приложения 204, поступают в подсистему графики и в драйверы 234 графических устройств на компьютере пользователя. Подсистема графики и драйверы 234 графических устройств подают команды визуализации и данные на конкретное выбранное устройство вывода, такое как монитор 236 или принтер 238.The architecture of the layout control system in which the present invention is embodied operates independently of any particular output hardware on which the laid out (displayed) elements are ultimately displayed in accordance with their defined visible images. The layout / presentation management system architecture shown in FIG. 2, performs a preprocessing step with respect to the graphic display output. In one embodiment of the invention, the ordered output associated with the architecture of the layout / presentation control system is device specific. Subsequently, at the visualization stage, the objects of the presenters visualize the recalculated visible image on the components of the graphic output of the computing system. However, in other embodiments of the invention, the output of the layout / presentation system is returned to the calling application using either the presenter objects 214 or the
Суммируя вышесказанное об архитектуре системы управления компоновкой/представлением, описанной выше, можно утверждать, что система 200 презентаторов предоставляет платформу обработки компоновки, не зависящую от конкретного устройства, для приложений, таких как приложение 204. Обработка компоновки выполняется объектами презентаторами, созданными из набора классов 214 презентаторов, ведомых системой 200 презентаторов. Система 200 презентаторов принадлежит видимому изображению 200. Объекты презентаторов соответствуют конкретным состояниям видимого изображения/визуализациям для графических элементов 206. Выделение состояний видимого изображения (объектов презентаторов) из состояний элементов (графических элементов 206) позволяет выполнить независимое обозначение множества состояний видимого изображения/презентаторов для одного состояния элемента. Компоновка разделяется на видимые изображения, такие как видимое изображение 202, где каждое видимое изображение соответствует области отображения, такой как конкретный прямоугольник на выходном экране, выделенном для приложения 204, или странице документа в выходных данных графического принтера. Выделение данных и состояний видимого изображения позволяет одному элементу порождать множество видимых изображений этого графического элемента и, следовательно, позволяет выполнить отображение одного графического элемента во множестве видов/множеством способов.Summarizing the above about the layout / presentation management system architecture described above, it can be argued that the
Другим аспектом раскрытой здесь архитектуры системы управления компоновкой является ее высокая степень расширяемости. Расширение набора классов 214 презентаторов облегчается базовым классом 216 презентаторов, предоставляемым системой 200 презентаторов и ведущим API презентаторов механизма 212 представления.Another aspect of the layout control system architecture disclosed herein is its high degree of extensibility. The extension of the set of classes of 214 presenters is facilitated by the base class of 216 presenters provided by the system of 200 presenters and the leading presenters API of the
Вышеописанная архитектура системы управления компоновкой поддерживает множество различных расширенных возможностей обработки компоновки для приложений, визуализирующих графические выходные данные на графических пользовательских интерфейсах и принтерах. Способность разделения одного элемента (графического элемента) на множество состояний видимого изображения (презентаторы, модули представления) облегчает разбиение на страницы и разделение элементов на множество колонок (форма разбиения на страницы) в приложениях при визуализации выходных данных принтера или выходного видимого изображения документа на экране дисплея. Такие приложения включают в себя Web-броузеры и программы пословной обработки.The layout architecture described above supports many different advanced layout processing options for applications that visualize graphical output on graphical user interfaces and printers. The ability to separate one element (graphic element) into many states of the visible image (presenters, presentation modules) facilitates paging and separation of elements into many columns (pagination) in applications when visualizing the output of the printer or the output of the visible image of the document on the display screen . Such applications include Web browsers and word processing programs.
Другим преимуществом использования множества презентаторов является способность приложений выполнять множество попыток размещения своего контента в заданном пространстве дисплея. Приложения могут реализовать множество конкретных попыток на различных объектах презентаторов для одного элемента, используя разные входные параметры, а затем предоставить пользователю возможность выбрать наилучшее из отображенных изображений графического элемента (элементов).Another advantage of using multiple presenters is the ability of applications to make many attempts to place their content in a given display space. Applications can implement many specific attempts at different objects of presenters for one element using different input parameters, and then provide the user with the opportunity to choose the best of the displayed images of the graphic element (s).
Еще одним преимуществом, вытекающим из использования вышеописанной архитектуры управления компоновкой, является возможность выполнения пошаговых изменений видимого изображения, содержащего набор презентаторов для набора соответствующих элементов. Изменение реализуется на поэлементной основе во вспомогательном запоминающем устройстве (смотри, например, вспомогательное запоминающее устройство 308 на фиг. 3). Обработчики уведомлений и система 200 презентаторов обеспечивает инфраструктуру для ограничения обновления соответствующего видимого изображения презентаторами, которые были подвергнуты изменениям в соответствующих элементах во вспомогательном запоминающем устройстве.Another advantage arising from the use of the above-described layout control architecture is the ability to perform step-by-step changes to a visible image containing a set of presenters for a set of corresponding elements. The change is implemented on a bit-by-bit basis in the auxiliary storage device (see, for example, auxiliary storage device 308 in FIG. 3). Notification handlers and the
Следующим преимуществом приведенной в качестве примера архитектуры управления компоновкой является возможность «отделки» (украшения) состояний видимого изображения элементов, воплощенных в ранее созданных презентаторах. Это выполняется путем сцепления дополнительных презентаторов с презентатором того типа, который был задан для конкретного типа элементов. Сцепление позволяет разработчикам расширить возможности пользовательских интерфейсов и вывода документов путем добавления границ, фонов и так далее к состоянию видимого изображения, заданного конкретным типом презентатора для элемента.The next advantage of the layout control architecture as an example is the ability to “decorate” (decorate) the states of the visible image of elements embodied in previously created presenters. This is accomplished by linking additional presenters with a presenter of the type that was specified for a particular type of element. Linking allows developers to expand the capabilities of user interfaces and output documents by adding borders, backgrounds, and so on to the state of the visible image specified by the particular type of presenter for the element.
Учитывая приведенное выше описание общей архитектуры системы управления компоновкой, в которой воплощено настоящее изобретение, обратим внимание на фиг. 3, где показаны взаимосвязи между видимыми изображениями, механизмами представления, объектами презентатора в видимых изображениях, графическими элементами и обработчиками уведомлений для конкретного, приведенного в качестве примера, видимого изображения.Considering the above description of the general architecture of the layout management system in which the present invention is embodied, refer to FIG. 3, which shows the relationships between visible images, presentation mechanisms, presenter objects in visible images, graphic elements, and notification handlers for a specific, exemplary, visible image.
Концептуально видимое изображение задает конкретный способ компоновки набора графических элементов, представленных во вспомогательном запоминающем устройстве 208, согласно заданным (указанным) презентаторам. В одном варианте изобретения видимое изображение ограничено прямоугольником в поле вывода (например, экран дисплея). Вдобавок к прямоугольнику и его координатам видимое изображение также задает графические элементы и связанные с ними презентаторы, содержащиеся в видимом изображении. Кроме того, отметим, что в одном варианте изобретения каждое видимое изображение связано со своим собственным экземпляром системы презентаторов (например, система 200а презентаторов для видимого изображения 202а и система 200b презентаторов для видимого изображения 202b).The conceptually visible image defines a specific way of arranging a set of graphic elements represented in the
Как показано на фиг.3, страничная память 308 содержит организованный набор графических элементов (Ex), связанных с видимыми изображениями 202а и 202b. Графические элементы (Ex) являются объектами контента, организованного пользователем. Примеры элементов включают в себя кнопочную или текстовую панель графического пользовательского интерфейса (GUI), окно текстового редактора, отображение битовой карты и т.д. В одном варианте изобретения графические элементы (Ex) во вспомогательном запоминающем устройстве 208 упорядочены в виде дерева. Каждый элемент (Ex) в наборе графических элементов 206, поддерживаемых во вспомогательном запоминающем устройстве 208, связан с набором свойств/заполнителей (которые могут быть определены в явном виде либо заданы неявно через другие явные свойства/заполнители). Одно или более таких свойств/заполнителей на графических элементах задают тип презентатора, который используется для компоновки и визуализации контента графического элемента в сочетании с другими компонентами компьютерной системы. В вариантах изобретения сцепленные презентаторы определены в явном виде или - в альтернативных вариантах - определены неявно через другие свойства, заданные на элементе (например, свойство «граница» двух пикселей предполагает наличие презентатора, привязанного к границе). Типы свойств, заданные для графических элементов, зависят от конкретного графического элемента и включают в себя цвет, шрифт, имя, высоту, ширину и т.д.As shown in FIG. 3, the page memory 308 comprises an organized set of graphic elements (Ex) associated with
Вспомогательное запоминающее устройство 200 потенциально связано с множеством видимых изображений (например, видимые изображения 202а и 202b). Каждое из потенциального множества видимых изображений обладает эксклюзивным набором экземпляров объектов презентаторов, соответствующих набору графических элементов во вспомогательном запоминающем устройстве 208. Таким образом, в случае, когда графический элемент представлен множеством видимых изображений, объект презентатора создается для элемента в каждом видимом изображении (например, презентатор P2 и презентатор P2' для элемента E2). Графический элемент, с которым связан презентатор, задается в поле владельца элемента, и соответствует пунктирным линиям, идущим от презентаторов к соответствующим графическим элементам. Это является просто одним примером архитектуры представления, показанной на фигурах 2 и 3, где поддерживается множество презентаторов, действующих на основе информации, предоставляемой одним графическим элементом.
Как следствие особенностей архитектуры представления, воплощающей вышеописанную способность присоединять множество видимых изображений (и презентаторов) к одной и той же совокупности графических элементов во вспомогательном запоминающем устройстве 208, графический пользовательский интерфейс способен отображать множество видимых изображений одного и того же информационного набора, предоставляемого графическими элементами. Например, в приложении, таком как MICROSOFT's POWERPOINT, поддерживаются одновременно два видимых изображения слайда, главное видимое изображение и видимое изображение для предварительного просмотра (или «набросок») для одного и того же графического элемента слайда.As a consequence of the features of the presentation architecture, embodying the above ability to attach multiple visible images (and presenters) to the same set of graphic elements in
Способность создавать множество экземпляров объектов презентатора для одного графического элемента также облегчает разбиение одного графического элемента на множество страниц/колонок (например, текста документа) (то есть, если один графический элемент разбит на две страницы, то создают два объекта-презентатора для элемента - по одному для каждой страницы). Обратимся к фиг.3, где объект родительского презентатора (например, Р5) получает переданное свойство от графического элемента (например, Е5), указывающего, что контент в элементе (например, текстовый элемент Е8) может быть представлен двумя колонками. Под презентатором Р5 создаются два объекта Р8а и Р8b дочерних презентаторов, соответствующие двум отдельным прямоугольникам для колонки/страницы в документе, для отображения текста, представленного графическим элементом Е8.The ability to create multiple instances of presenter objects for one graphic element also facilitates splitting one graphic element into multiple pages / columns (for example, document text) (that is, if one graphic element is divided into two pages, then two presenter objects for the element are created - by one for each page). Refer to figure 3, where the object of the parent presenter (for example, P5) receives the transferred property from a graphic element (for example, E5) indicating that the content in the element (for example, text element E8) can be represented by two columns. Under the P5 presenter, two objects P8a and P8b of the child presenters are created, corresponding to two separate rectangles for the column / page in the document, to display the text represented by the graphic element E8.
Еще один случай создания множества презентаторов для одного графического элемента возникает тогда, когда для графического элемента выделяются элементы «отделки» (например, границы, фоны, рамки и т.д.). Сцепленный презентатор Q4 для элемента Е4, который обеспечивает границу вокруг прямоугольника, заданного презентатором Р4 для сохранения текста, предоставляемого полем данных в элементе Е4, представляет пример сцепленного презентатора. Презентатор Q4 и презентатор Р4 соединены/связаны с графическим элементом Е4 путем задания графического элемента Е4 в их полях для владельца элемента. В одном варианте изобретения родительский презентатор на основе анализа элемента, соответствующего одному из его дочерних элементов, обнаруживает, что необходим сцепленный презентатор (например, на элементе задана граница двух пикселей). В случае наличия сцепленного презентатора Q4 при вызове самим презентатором Р1 метода для создания дочернего (посреднического) презентатора для дочернего элемента Е4 презентатор Р1, исходя из свойств Е4, определяет, что необходим сцепленный презентатор (Q4). Сначала создается дочерний посредник/презентатор Q4, и идентифицируется как дочерний презентатор презентатора Р1. Презентатор Q4, в свою очередь, создает дочерний посредник/презентатор Р4. Таким образом, Р4 является дочерним презентатором для презентатора Q4. Информация хранится в дочернем посреднике для сцепленного презентатора Q4, идентифицирующего следующий презентатор (Р4) в цепи.Another case of creating many presenters for one graphic element occurs when “decoration” elements (for example, borders, backgrounds, frames, etc.) are highlighted for a graphic element. The concatenated presenter Q4 for element E4, which provides a border around the rectangle defined by presenter P4 to save the text provided by the data field in element E4, is an example of a concatenated presenter. The presenter Q4 and the presenter P4 are connected / connected to the graphic element E4 by setting the graphic element E4 in their fields for the owner of the element. In one embodiment of the invention, the parent presenter, based on an analysis of an element corresponding to one of its child elements, detects that a concatenated presenter is needed (for example, a border of two pixels is defined on the element). If there is an interlocked presenter Q4 when the presenter P1 calls the method to create a child (intermediary) presenter for the child element E4, presenter P1, based on the properties of E4, determines that a concatenated presenter (Q4) is needed. First, a child proxy / presenter Q4 is created, and is identified as a child presenter of the presenter P1. The Q4 presenter, in turn, creates a P4 child intermediary / presenter. Thus, P4 is a child presenter for the Q4 presenter. Information is stored in a child intermediary for the linked presenter Q4, identifying the next presenter (P4) in the chain.
Далее, после того как были описаны приведенные в качестве примера конкретные случаи, где используется множество презентаторов, связанных с одним и тем же графическим элементом, и где создается множество видимых изображений (и систем презентаторов) для набора графических элементов во вспомогательном запоминающем устройстве 208, описываются взаимосвязи между отображаемыми объектами на фиг.3. Как упоминалось выше, видимые изображения 202а и 202b имеют соответственно собственные системы 200а и 200b презентаторов. Система 200а презентаторов создала и поддерживает набор презентаторов 302 для видимого изображения 202а посредством кода и базового класса, включая API, в который записаны классы презентаторов. Система презентаторов 200b создала и поддерживает набор презентаторов 303 для видимого изображения 202b.Further, after specific examples have been described, where a plurality of presenters associated with the same graphic element are used, and where a plurality of visible images (and presenter systems) are created for a set of graphic elements in the
Как показано с помощью линий между презентаторами (Px) и графическими элементами (Ех) во вспомогательном запоминающем устройстве 208, презентаторы (Рх) связаны с соответствующими графическими элементами (Ех). Презентаторы (Рх) представляют состояния видимых изображений для соответствующих графических элементов (Ех). Графические элементы (Ех) во вспомогательном запоминающем устройстве 304 поддерживаются, например, в древовидной структуре, построенной приложением с использованием одного из множества возможных способов. Примеры таких способов включают в себя прогон файла с текстовой разметкой через синтаксический анализатор, использование кода (программы) для создания графических элементов и т.д. Древовидная структура набора презентаторов 302 строится системой 200а презентаторов в ответ на вызов конкретного метода на интерфейсе (например, DoLayout), предоставляемого его механизмом представления. Как было описано ранее со ссылками на фиг.2, узлы дерева объектов презентаторов определяются узлами дерева графических элементов, связанными с конкретным видимым изображением. Графические элементы в видимом изображении определяются корневым графическим элементом, заданным для данного видимого изображения, его дочерними элементами, «внучатыми» элементами и так далее.As shown by the lines between the presenters (Px) and the graphic elements (Ex) in the
Набор презентаторов в видимом изображении 1 имеет иерархическую структуру. Корневой презентатор Р1 имеет два дочерних презентатора Р2 и Р4 (Q4 является презентатором элементов «отделки» на презентаторе Р4). Презентатор Р2 не имеет дочерних презентаторов. Однако презентатор Р4 имеет два дочерних презентатора Р5 и Р7. Презентатор Р5, в свою очередь, имеет дочерние презентаторы Р8а и Р8b, которые связаны с одним графическим элементом Е8. Такое совместное использование/разделение одного графического презентатора между двумя объектами презентаторов возникает, например, когда текстовый графический элемент Е8 делится между двумя колонками родительского текстового графического элемента Е5, который имеет презентатор (Р5) типа TextPresenter (текстовый презентатор). Презентатор Р5 инициирует процесс разделения на колонки, когда он замечает свойства на Е5, запрашивающее разделение контента (Е8) элемента Е5 на две колонки. Презентаторы Р8а и Р8b соответствуют графическому существованию частей графического элемента Е8 в двух колонках.The set of presenters in the
Как было отмечено ранее, один графический элемент может иметь множество связанных с ним объектов презентаторов. В качестве примера были приведены три случая. В первом сценарии, показанном с помощью множества видимых изображений 202а и 202b и соответствующих систем 200а и 200b презентаторов на фиг.3, один графический элемент (например, Е2) имеет соответствующие презентаторы Р2 и Р2', связанные с видимыми изображениями 202а и 202b соответственно. Такие видимые изображения соответствуют, например, изображению-наброску и полноразмерному представлению фотографического изображения (Е2), отображаемого в разных областях пользовательского интерфейса, который формируется приложением для обработки фотографических изображений. В этом случае презентаторы Р2 и Р2' создаются для элемента Е2 в каждом видимом изображении 202а и 202b, содержащем этот элемент. Во втором сценарии, включающем в себя множество презентаторов для одного элемента (например, текстовый элемент Е8), элементы-презентаторы Р8а и Р8b соответствуют двум колонкам в прямоугольнике, определенном одним элементом-презентатором Р5. В альтернативном варианте указанные случаи использования множества презентаторов в видимом изображении со ссылками на один и тот же графический элемент возникают, например, когда родительский элемент выполняет множество попыток при компоновке видимого изображения и сохраняет эти попытки. В третьем сценарии презентатор (например, Q4), который зависит от другого презентатора (например, Р4), с противоположным состоянием данных графического элемента (например, Е4) подсоединен сцеплением к другому презентатору, в результате чего расширяются возможности отображения, обеспечиваемые исходным презентатором. Примером сцепления презентаторов является презентатор границы, обеспечивающий «отделку» границы для основного презентатора.As noted earlier, a single graphic element can have many presenter objects associated with it. Three cases were cited as an example. In the first scenario, shown with the plurality of
Ранее, со ссылками на фиг. 2, было отмечено, что дочерние посреднические объекты, созданные из класса 222 дочерних посредников, являются «оболочкой» для каждого дочернего объекта-презентатора родительского объекта-презентатора. В графическом представлении древовидной структуры презентаторов для видимого изображения 202а дочерние посреднические объекты представлены стрелками на линиях, соединяющих родительский презентатор с его дочерними объектами презентаторов. Дочерние посреднические объекты ограничивают доступ со стороны родительского объекта презентатора к его дочерним объектам презентаторов.Previously, with reference to FIG. 2, it was noted that child intermediaries created from the class of 222 child intermediaries are a “wrapper” for each child presenter object of the parent presenter object. In a graphical representation of the tree structure of the presenters for the
Обработчики (Nx) уведомлений отвечают за уведомление соответствующих презентаторов (Рх) об изменениях состояния данных в их графических элементах (Ех). Обработчики Nx уведомлений не оказывают существенного влияния на работу системы управления представлением/компоновкой. Они только облегчают пошаговые обновления презентаторов, выполняя их только при появлении изменения элемента в видимом изображении.Notification processors (Nx) are responsible for notifying the respective presenters (Px) of data state changes in their graphic elements (Ex). Nx notification handlers do not significantly affect the performance of the presentation / layout management system. They only facilitate step-by-step updates of presenters, performing them only when an element changes in the visible image.
На фигурах 4а и 4b изображено, что базовый класс презентаторов включает в себя набор методов, свойств и полей. В одном варианте изобретения свойства доступны на конкретном объекте-презентаторе, к которому идет обращение, путем инициирования операций получения/установки на объекте. Свойство 400 фона задает значение окраски для фона презентатора. Свойство 402 непрозрачности фона хранит значение, задающее непрозрачность фона. Свойство 404 границы хранит значение, задающее толщину границы, очерчивающей пространство компоновки презентатора по краям. Свойство 404 границы хранит, например, четыре значения, указывающие ширину границы для верхней, нижней, правой и левой сторон прямоугольника, выделенного презентатором. Свойство 406 цвета границы определяет значение, обозначающее цвет границы вокруг презентатора. Свойство 408 стиля границы хранит значение, указывающее один из набора стилей отображения границы. Пример стилей границы включает в себя: сплошной, углубленный, ребристый, вложенный и с возвышением.Figures 4a and 4b show that the base class of presenters includes a set of methods, properties, and fields. In one embodiment of the invention, the properties are available on the particular presenter object that is being accessed by initiating receive / install operations on the object. The
Свойство 410 ограничивающего прямоугольника задает зону (например, прямоугольник), в которой изображаются графические элементы презентатора (или дочерние элементы). Размер по умолчанию свойства 410 ограничивающего прямоугольника совпадает с размером, заданным в поле 460 размера компоновки. Однако размер ограничивающего прямоугольника может превышать размер компоновки, что позволяет презентатору создавать изображение вне размера компоновки.The
С другой стороны, если свойство 414 усечения установлено равным значению «истина», то тогда презентатор (и его дочерние презентаторы) не может быть изображен вне прямоугольника, заданного полем 460 размера компоновки. Если значение свойства 414 усечения установлено равным «истина», то тогда свойство 410 ограничивающего прямоугольника не превышает размер компоновки. Это гарантирует, что изображенный презентатор не воспроизводит графические элементы вне выделенного для него пространства компоновки.On the other hand, if
Свойство 412 дочерних элементов представляет собой массив или, в альтернативном варианте, любую другую подходящую многоэлементную структуру данных, где хранятся ссылки (например, метки, указатели, прямые/косвенные и т.д.) на дочерние презентаторы, вложенные в родительский презентатор, и их преобразованные местоположения в пространстве компоновки родительского презентатора. Свойство 412 дочерних элементов находится на презентаторе при первом использовании в контексте вызова метода OnUpdate (обновление), который описан ниже. Термин «при первом использовании» относится к случаю, когда родительский презентатор последовательно запрашивает набор дочерних элементов, а набор дочерних элементов располагается вместе с презентаторами, соответствующими дочерним графическим элементам графического элемента, который соответствует родительскому презентатору, из дерева графических элементов, во вспомогательном запоминающем устройстве (например, во вспомогательном запоминающем устройстве 208). Свойство 412 дочерних элементов облегчает установление/поддержание иерархии, отражающей вложенные взаимосвязи с презентаторами в видимом изображении. В одном варианте изобретения записи массива имеют ссылки на дочерние посреднические объекты. Дочерние посреднические объекты являются объектами-«оболочками» для дочерних объектов презентаторов, которые вложены в пространство отображения, выделенное для родительского объекта презентатора. «Оболочка» дочернего посреднического объекта удовлетворяет требованиям инкапсулирования и безопасности (например, дочерний презентатор ограничивает доступ к своему контенту со стороны родительского презентатора).The
Свойство 414 усечения, как описано выше, устанавливает, будет ли ограничен контент презентатора путем усечения до размера компоновки презентатора, заданного полем 460 размера презентатора.The
Набор свойств обозначает пространство, выделенное контенту в пространстве презентатора. Вдобавок к свойству 404 границы свойство 416 заполнения задает объем пространства внутри границы, который остается незанятым контентом. Свойство 418 высоты контента задает значение, указывающее высоту контента в презентаторе - высота части презентатора, которая остается после учета значений, заданных в свойстве 404 границы и свойстве 416 заполнения. Свойство 420 ширины контента задает значение, указывающее ширину, выделенную контенту в презентаторе с учетом параметров свойства 404 границы и свойства 416 заполнения. Комбинация свойства 418 высоты контента и свойства 420 ширины контента задает зону презентатора, которую потенциально занимает контент в презентаторе.A set of properties denotes the space allocated to content in the presenter space. In addition to the
Свойство 422 высоты и свойство 424 ширины задают действительную высоту и ширину презентатора, причем эти два значения включают в себя параметры контента, заполнения и границы. Свойство 422 высоты по умолчанию и свойство 424 ширины по умолчанию задают значения по умолчанию, присваиваемые презентатору, когда свойство 422 высоты и свойство 424 ширины не предоставлены для конкретного объекта презентатора. Свойство 430 максимальной ширины и свойство 432 минимальной ширины задают границы для значения, присваиваемого свойству 424 ширины.The height property 422 and the width property 424 specify the actual height and width of the presenter, and these two values include content, fill, and border parameters. The default height property 422 and the default width property 424 specify default values assigned to the presenter when the height property 422 and the width property 424 are not provided for a particular presenter object. The
Еще одним размерным свойством для презентаторов является свойство 434 полей (страницы). Свойство 434 полей задает буферное пространство вне границы презентатора. Свойство 434 полей задается дочерним презентатором и доступно его родительскому презентатору при упорядочивании компоновки с иерархической структурой из вложенных презентаторов.Another dimensional property for presenters is the property of 434 fields (pages).
Свойство 436 видимости задает состояние видимости презентатора. Свойство 436 видимости связано с определением того, каким образом визуализируется графическое изображение, соответствующее презентатору и его дочерним презентаторам (или с определением того, визуализируется ли в принципе это графическое изображение). В одном варианте изобретения потенциальные состояния видимости включают в себя: видимое, сжатое и скрытое.
Ряд свойств презентаторов используют для связывания презентаторов с другими объектами в системе управления компоновкой/представлением. Свойство 438 презентатора задает тип презентатора, который используют для компоновки и визуализации графического элемента. Тип презентатора изначально установлен на графическом элементе, а система 200 презентаторов считывает свойство 438 презентатора из графического элемента и создает объект презентатора, соответствующий типу презентатора, идентифицированному свойством 438 презентатора. Свойство 408 презентатора передается в блок создания, который, в свою очередь, создает экземпляр презентатора идентифицированного типа. Свойство 440 IsMainPresenter определяет, является ли презентатор единственным презентатором либо основным (например, последним) в наборе сцепленных презентаторов, связанных с объектом-графическим элементом. Обратимся к фиг.3, где презентатор Р4 является главным презентатором для цепочки, включающей в себя B4 и Р4. В одном варианте изобретения свойство 440 IsMainPresenter является свойством булева (логического) типа.A number of presenter properties are used to associate presenters with other objects in the layout / presentation management system.
Свойство 442 владельца элемента идентифицирует графический элемент, для которого был задан (создан) презентатор. Вновь обратимся к фиг. 3, где пунктирные линии, соединяющие презентаторы (Px) с соответствующими графическими элементами (Ех), представляют связи, обозначенные контентом свойства 442 владельца элемента. Свойство 444 контекста компоновки задает глобальный контекст, который облегчает обмен сообщениями между презентаторами в процессе компоновки. Значения, хранящиеся в свойстве 444 контекста компоновки, позволяют презентаторам передавать сообщения независимо от системы 200 презентаторов. Свойство 446 обработчика уведомлений задает ссылку на обработчик уведомлений для данного презентатора. Свойство 448 типа обработчика уведомлений задает тип обработчика уведомлений, на который ссылается свойство 446 обработчика уведомлений.Element owner property 442 identifies the graphic element for which the presenter has been defined (created). Referring again to FIG. 3, where the dashed lines connecting the presenters (Px) with the corresponding graphic elements (Ex) represent links indicated by the content of the property 442 of the element owner. The
Свойство 450 «загрязненности» определяет, был ли изменен конкретный презентатор и, следовательно, требуется ли операция обновления. Система 200 презентаторов и соответствующие компоненты архитектуры управления компоновкой поддерживают пошаговую обработку компоновки. Свойство 450 «загрязненности», поддерживаемое каждым презентатором, указывает отдельно по каждому презентатору, требуется ли его обновление.The “pollution”
На фиг. 4а в качестве примера представлен итоговый набор полей базового класса презентаторов. В одном варианте изобретения эти поля являются полями Общей системы поддержки времени выполнения (Common Language Runtime (CLR)) (по аналогии с известными принадлежащими переменными в классах С++). В одном варианте изобретения вышеописанные свойства аналогичны полям. Однако свойства на графических элементах (например, на графических элементах 206) принадлежат и управляются вспомогательным запоминающим устройством (например, вспомогательное запоминающее устройство 208). При изменении свойства это вспомогательное запоминающее устройство уведомляет механизм представления об изменении. Механизм представления (например, механизм 212 представления для системы 200 презентаторов), в свою очередь, уведомляет соответствующие обработчики 224 уведомлений. Таким образом, в случае со свойством уведомление об изменении принимается через один из вышеупомянутых обработчиков уведомлений. С другой стороны, вспомогательное запоминающее устройство 208 не управляет полями (вместо этого полями управляет, например, CLR). Поэтому при изменении поля никакие уведомления об изменениях в механизм представления не передаются.In FIG. 4a, as an example, the final set of fields of the base class of presenters is presented. In one embodiment of the invention, these fields are fields of the Common Language Runtime (CLR) (similar to the well-known belonging variables in C ++ classes). In one embodiment of the invention, the above properties are similar to fields. However, properties on graphic elements (e.g., graphic elements 206) are owned and controlled by auxiliary storage device (e.g., auxiliary storage device 208). When a property changes, this auxiliary storage device notifies the presentation engine of the change. A presentation engine (e.g., a
Поле 460 размера компоновки поддерживает размеры пространства компоновки, выделенного презентатору. Поле 460 размера компоновки используют для упорядочивания соседних презентаторов в компоновке страничного/пользовательского интерфейса. Поле 462 воздействия на компоновку представляет собой набор свойств (например, граница, заполнение и т.д.) презентатора, которые при их изменении влияют на компоновку презентатора. Поле 464 воздействия на компоновку для родительского презентатора представляет набор свойств (например, поля, видимость и т.д.) презентатора, который при изменении элемента (например, элемент А), «загрязняет» (то есть потенциально воздействует на) компоновку первого родительского презентатора для элемента (элемент А), имеющего заданный презентатор. Поле 466 визуализации эффектов является механизмом уведомления, который инициирует аннулирование и повторную визуализацию презентатора.The
Обратимся теперь к методам базового класса 206 презентаторов, перечисленных на фиг. 4b, где способ 470 OnUpdate выполняет измерение и позиционирование задач на презентаторе для одного элемента. Авторы презентаторов переписывают версию базового класса метода 470 OnUpdate для создания/обеспечения режима задания размеров/позиционирования компоновки согласно требованиям пользователя для соответствующего видимого изображения элемента.We now turn to the methods of the base class of 206 presenters listed in FIG. 4b, where the
Первым действием по умолчанию при использовании метода 470 OnUpdate является задание размеров презентатора. Метод 470 OnUpdate получает размеры презентатора в поступившем параметре BoxSizeInfo (информация о размерах прямоугольника). Метод 470 OnUpdate устанавливает размеры, заданные в поле 460 размера компоновки в соответствии с заданными значениями BoxSizeInfo, свойства 428 ширины по умолчанию и свойства 426 высоты по умолчанию. Дополнительные источники информации о размерах/позиционировании для презентатора являются составной частью раскрытой архитектуры обработки компоновки/представления на основе презентаторов, причем указанные источники используют в альтернативных вариантах изобретения.The first default action when using the 470 OnUpdate method is to set the presenter sizes.
Второй задачей по умолчанию при использовании метода 470 OnUpdate является позиционирование дочерних презентаторов в локальном размерном пространстве презентатора. Версия базового класса метода 470 OnUpdate итеративно вызывает метод 470 OnUpdate для дочерних презентаторов, идентифицированных в свойстве 412 дочерних презентаторов для раскрытия их размеров и дочерних презентаторов. После установления и измерения дочерних презентаторов, эти презентаторы позиционируются в родительском презентаторе путем вызова метода преобразования (обсуждаемого ниже) для отдельных дочерних презентаторов. Итеративные вызовы метода 470 OnUpdate для дочерних презентаторов заканчиваются, когда в презентаторе не заданы дополнительные дочерние презентаторы. Вдобавок к регистрации размера в поле 460 размера компоновки и итеративному вызову/позиционированию дочерних презентаторов метод 470 OnUpdate возвращает вызывающей стороне значение, указывающее на то, требуется ли визуализация, принимая во внимание вызов метода 470 OnUpdate.The second default task when using the 470 OnUpdate method is to position the child presenters in the local size space of the presenter. The base class version of the 470 OnUpdate method iteratively calls the 470 OnUpdate method for child presenters identified in the 412 property of the child presenters to reveal their sizes and child presenters. After establishing and measuring the child presenters, these presenters are positioned in the parent presenter by calling the transformation method (discussed below) for the individual child presenters. Iterative calls to the
Метод 471 регистрации «атомов» регистрирует имя строки для презентатора для контекста 444 компоновки, а также любые другие подходящие списки презентаторов, включая те, которые поддерживаются расширениями к презентаторам. Метод 471 регистрации «атомов» вызывается, например, для установления связи с другим презентаторским объектом нестандартным образом (например, методом, не поддерживаемым в данный момент прикладным программным интерфейсом презентаторов). Презентаторы регистрируют «атом», а затем устанавливают объект, с которым они хотят установить связь, используя этот «атом». Например, дочерний презентатор хочет передать источник текста родительскому презентатору. Дочерний презентатор регистрирует «атом» с меткой/ярлыком «Descent» (происхождение) и принимает идентификационные данные для этого «атома». Дочерний презентатор вычисляет «источник» и устанавливает значение в атоме с использованием идентификационных данных. Затем родительский презентатор использует идентификационные данные (которые также получены путем регистрации «Descent») для извлечения хранящейся информации.The
Метод 472 OnUpdateBoundingBox (обновление ограничивающего прямоугольника) создает свойство 410 обновленного ограничивающего прямоугольника для презентатора. Метод 472 OnUpdateBoundingBox вызывается тогда, когда метод 470 OnUpdate возвращает значение (например, «истина», указывающее на то, что необходима повторная визуализация). Реализация по умолчанию метода 472 OnUpdateBoundingBox, предусмотренного в базовом классе презентаторов, сканирует дочерние презентаторы, идентифицированные в свойстве 412 дочерних презентаторов для данного презентатора, и объединяет (то есть выполняет математическое объединение прямоугольников) преобразованные свойства дочернего ограничивающего прямоугольника с размерами презентатора, хранящимися в поле 460 размера компоновки. Реализация базового класса для метода 472 OnUpdateBoundingBox также обращается к свойству 414 усечения, и если его значение равно «истина», то ограничивающие прямоугольники дочерних презентаторов игнорируются. Вместо этого дочерние презентаторы будут усечены до размеров, указанных в поле 460 размера компоновки для их родительского презентатора. Презентаторы, изображение которых выходит за рамки поля 460 размера компоновки, вызывают перезапись упомянутого метода. Такие классы презентаторов, настроенные в соответствии с требованиями пользователя, вызывают базовый презентаторский класс и добавляют дополнительную «красочную зону» в их программу перезаписи. В одном варианте изобретения презентаторам предоставлена возможность оценки «красочной зоны» на предмет того, больше ли она, чем это требуется в действительности. Если зона 410 свойства ограничивающего прямоугольника меньше, чем зона, необходимая для начертания презентатора, то тогда рисунок усекается на основе размеров свойства 410 ограничивающего прямоугольника, заданных для презентатора.
Метод 474 OnRender вызывается для презентаторов, которые запрашивают/требуют повторную визуализацию. Метод 474 OnRender является первоочередным вызовом для презентатора для повторной визуализации презентатора и любого из его дочерних презентаторов. Метод 474 OnRender предпочтительно вызывается после того, как вызван метод 470 OnUpdate на всех «загрязненных» презентаторах в компоновке (например, сцена). В одном варианте изобретения метод 474 OnRender вызывают из презентаторских объектов на основе анализа того, обеспечил ли вызов метода 470 OnUpdate для объекта/презентатора возвратную индикацию о том, что презентатор запрашивает повторную визуализацию. В одном варианте изобретения метод 474 OnRender базового класса выполняет для презентатора операции упорядочивания представления/компоновки независимо от конкретного устройства. Другие компоненты, в том числе подсистема графики и драйверы 234 графических устройств, визуализируют видимое изображение презентатора в формате, привязанном к конкретному устройству. Производные варианты метода 474 OnRender, учитывающие требования пользователя, включают в себя обращения к компонентам компьютерной системы, формирующим графические элементы, для визуализации выходных данных документного/пользовательского интерфейса.
В одном варианте изобретения версия базового класса для метода 474 OnRender визуализирует контент презентатора, включая любые дочерние элементы, на трех этапах обработки компоновки. На этапе OnRenderBeforeChildren (визуализация до дочерних презентаторов) объект презентатора вызывает операции, предназначенные для обработки, до обработки какого-либо из его дочерних презентаторов. В одном варианте изобретения реализация базового класса для метода 474 OnRender предоставляет подключение (ловушку) для настройки и не задает какие-либо операции предобработки на этапе OnRenderBeforeChildren. Однако приведенная в качестве примера настраиваемая замена этого режима по умолчанию, учитывающая конкретные требования пользователя, устанавливает/изображает пользовательский фон для зоны отображения презентатора.In one embodiment of the invention, the base class version for the
Версия базового класса метода 474 OnRender на этапе визуализации дочерних презентаторов обращается к дочерним презентаторам, идентифицированным в свойстве 412 дочерних презентаторов. Метод 474 OnRender вызывается, в свою очередь, для каждого из дочерних презентаторов (для расширения запрашиваемого дочернего презентатора, когда реализован метод 470 OnUpdate). Таким образом, вызов высокого уровня метода 474 OnRender распространяется последовательно на дочерние презентаторы и на их потомки, пока не будет достигнут низ дерева (то есть презентатор, не имеющий дочерних презентаторов). После завершения вызова высокого уровня все дочерние презентаторы в дереве, которые запрашивали повторную визуализацию, окажутся вновь визуализированными.The base class version of the
На этапе OnRenderAfterChildren (визуализация после дочерних презентаторов) презентатор объекта вызывает операции, которые должны выполняться после вызова метода 474 OnRender для дочерних презентаторов, идентифицированных в свойстве 412 дочерних презентаторов. Версия базового класса метода 474 OnRender предоставляет ловушку (подключение) для настройки в соответствии с требованиями конкретного пользователя и не задает какие-либо операции постобработки на этапе OnRenderAfterChildren. Тем не менее, примеры такой настройки включают в себя аннотации, элементы «отделки» и т.д.At the OnRenderAfterChildren stage (visualization after child presenters), the object's presenter invokes operations that must be performed after calling the 474 OnRender method for child presenters identified in the
Если презентатор не визуализирует повторно какие-либо объекты, отличные от дочерних презентаторов, то тогда нет необходимости переписывать версию базового класса метода 474 OnRender. Однако, если самому презентатору необходимо что-то «нарисовать», то тогда базовый класс для метода 474 OnRender переписывается для визуализации графических данных в пространстве, выделенном этому презентатору. Программа замены включает в себя, например, вызовы приложений 230 и/или подсистемы графики и драйверов графических устройств. Сцепленный презентатор находится в дереве презентаторов для конкретного видимого изображения. Если для сцепленного презентатора требуется повторная визуализация, то тогда системой презентаторов будет вызван его метод OnRender таким же образом, как метод OnRender для основного презентатора.If the presenter does not re-render any objects other than child presenters, then there is no need to rewrite the base class version of the 474 OnRender method. However, if the presenter himself needs to draw something, then the base class for the 474 OnRender method is rewritten to visualize the graphic data in the space allocated to this presenter. The replacement program includes, for example, calls to applications 230 and / or the graphics subsystem and graphics device drivers. The concatenated presenter is in the presenters tree for the particular visible image. If a linked presenter requires re-rendering, then the presenter system will call its OnRender method in the same way as the OnRender method for the main presenter.
В контексте этого приложения термин «проверка совпадения» относится к процессу идентификации того, какой презентатор попал в конкретную точку сеточного координатного пространства графического пользовательского интерфейса. Проверку совпадения используют, например, для определения местоположения указателя мыши (например, над каким презентатором он находится), когда пользователь щелкает по одной из кнопок мыши. Метод 476 OnHitTestDetail (детали проверки совпадения) возвращает данные, хранящиеся в структуре HitTestDetail для презентатора. Настроенный в соответствии с требованиями пользователя класс презентатора переписывает реализацию базового класса для метода 476 OnHitTestDetail для помещения в структуру HitTestDetail, чтобы дать возможность презентатору вернуть данные, иные чем совпавший элемент и презентатор, тем самым обеспечивая, например, более подробную информацию, относящуюся к презентатору, такую как часть презентатора, которая действительно попала в указанную точку (например, положение символа относительно текста).In the context of this application, the term “coincidence check” refers to the process of identifying which presenter is at a particular point in the grid coordinate space of the graphical user interface. A match check is used, for example, to determine the location of the mouse pointer (for example, which presenter it is above) when the user clicks on one of the mouse buttons.
Метод 478 OnCreateViewResult (создание результирующего видимого изображения) имеет параметры, описывающие вычисленное состояние презентатора в результирующем объекте видимого изображения. Пользователи запрашивают результирующий объект - видимое изображение для какого-либо элемента в контексте обозначенного видимого изображения. Версия базового класса для метода 478 OnHitTestDetail предоставляет, через результирующий объект-видимое изображение, высоту, ширину и положение верхнего левого угла презентатора. Если требуется дополнительная/альтернативная информация, касающаяся состояния презентатора, такая как количество строк текста, содержащихся в презентаторе, то тогда версия базового класса для метода 478 OnHitTestDetail переопределяется для предоставления требуемой информации через результирующий объект-видимое изображение.Method 478 OnCreateViewResult (creating the resulting visible image) has parameters that describe the calculated state of the presenter in the resulting object of the visible image. Users request a result object — a visible image for an element in the context of the designated visible image. The base class version for method 478 OnHitTestDetail provides, through the resulting object-visible image, the height, width and position of the upper left corner of the presenter. If additional / alternative information is required regarding the state of the presenter, such as the number of lines of text contained in the presenter, then the base class version for the 478 OnHitTestDetail method is redefined to provide the required information through the resulting visual object.
Метод 480 проверки попадания инициирует проверку попадания на поддереве, корнем которого является заданный презентатор. В метод 480 проверки попадания передают координаты точки (в локальных координатах презентатора), где должна быть выполнена проверка попадания. Метод 480 проверки попадания возвращает данные проверки попадания, содержащие результаты проверки попадания для обозначенной точки и презентатора. Результат содержит все визуалы, в которые попадает указанная точка. Визуал является базовым объектом (например, линией), на основе которого презентатор создает отображаемое изображение. Визуал - это графический объект, обладающий способностью реального вычерчивания изображения на выходе графического дисплея. При вызове метода OnRender презентатора для API визуала выдаются несколько вызовов, например, для визуализации текста, изображений, видео и т.д.
Метод 482 OnGetBypassList (получение списка обходов) предоставляет список дочерних презентаторов, вычисленных ранее для идентифицированного презентатора. Этот список дочерних презентаторов облегчает обход дочерних презентаторов в ходе вычисления компоновки (например, путем сравнения нового дочернего презентатора компоновки с ранее вычисленными дочерними презентаторами компоновки и повторного использования ранее вычисленного презентатора, если имеется совпадение с одним из презентаторов в списке). Если презентатор раскрывает свои дочерние презентаторы путем обращения к набору свойства 412 дочерних презентаторов, он не должен подменять данный метод. Однако, если презентатор использует описанный ниже метод 486 GetChildProxyForElement (получение дочернего посреднического презентатора для элемента), то метод 482 OnGetBypassList обычно подменяют.
При использовании системы компоновки, воплощающей настоящее изобретение, в случае вызова метода 486 GetChildProxyForElement перед методом 470 OnUpdate вызывается метод 482 OnGetBypassList, и объект презентатора создает и заполняет список-массив дочерними посредническими объектами (описанными ниже со ссылками на фиг.5), которые он кэшировал из предыдущего вычисления компоновки. Если объект презентатора не имеет кэш для хранения повторно вычисленных дочерних посреднических объектов, то все дочерние презентаторы объекта презентатора вычисляют повторно для каждого вызова метода 470 OnUpdate для презентатора.When using the layout system embodying the present invention, if the
Метод 484 вычисления границ вычисляет и возвращает границы подграфа, имеющего в качестве корня идентифицированный визуал.
Как было объяснено выше, дочерний посреднический объект является объектом-«оболочкой», который действует в качестве посредника между родительским презентатором и дочерним презентатором для конкретного графического элемента. К дочерним посредническим объектам для дочерних презентаторов конкретного объекта презентатора обращаются как к набору в свойстве 412 дочерних презентаторов для объекта презентатора. Метод 486 GetChildProxyForElement является методом для родительского объекта презентатора, который создает дочерний посреднический объект и объект презентатора для заданного элемента. Метод возвращает значение «null», если у заданного элемента нет презентатора.As explained above, the child intermediary object is a wrapper object that acts as an intermediary between the parent presenter and the child presenter for a particular graphic element. Child intermediary objects for child presenters of a particular presenter object are accessed as a set in the
Метод 488 OnBeforeBypass вызывается, когда система 200 презентаторов хочет «обойти» конкретный презентатор (то есть пропустить вызов метода 470 OnUpdate презентатора). Такой обход имеет место, например, тогда, когда презентатор не «загрязнен», и размерные параметры (BoxSizeInfo) (информация о размерах прямоугольника) презентатора, введенные по вызову метода 470 OnUpdate, не изменились с момента последнего вызова метода 470 OnUpdate для данного презентатора. Метод 488 OnBeforeBypass является механизмом, который повышает эффективность функционирования, позволяя презентаторам, которые имеют свой собственный пользовательский набор дочерних посреднических объектов (которые используют метод 486 GetChildProxyForElement), повторно использовать дочерние посреднические объекты своих дочерних презентаторов при выполнении обновления компоновки (например, когда изменению подвергнута только малая часть компоновки).The
Метод 490 OnDisconnectChildren (отсоединение дочерних презентаторов) удаляет все дочерние объекты презентаторов из набора дочерних презентаторов, определенных в свойстве 412 дочерних презентаторов для заданного презентатора. Если свойство 412 по умолчанию для дочерних презентаторов подменено для класса презентаторов, полученного из базового класса 216 презентаторов, то тогда метод 490 OnDisconnectChildren также подменяется, чтобы обеспечить правильное расположение дочерних презентаторов.The
Проход Min/Max представляет собой специальный проход (просмотр) для задания размеров, который используют презентаторы, участвующие в данной операции (например, DockPresenter), при задании размеров дочерних презентаторов для контента. Знание минимального и максимального значений ширины для дочерних презентаторов позволяет родительскому презентатору рационально распределять пространство между множеством дочерних презентаторов, совместно использующих конкретное значение ширины. Без информации о минимальном/максимальном значении, предоставляемой функцией MinMaxPass, участвующему презентатору потребовалось бы множество проходов для рационального задания размера для контента. Метод 492 OnMinWidth (состояние минимальной ширины) вызывается после прохода (просмотра) Min/Max. Метод 492 OnMinWidth вызывает значение MinWidth, которое является побочным результатом вычисления MaxWidth. Версия базового класса для метода 492 OnMinWidth выдает сообщение «I don't care» («Мне безразлично»), которое инициирует прогон вычислений с ProposedSize (предложенный размер) = (0, бесконечность) и оба направления «NotFixed» (не фиксированы).The Min / Max passage is a special passage (viewing) for specifying the sizes used by presenters participating in this operation (for example, DockPresenter) when setting the sizes of child presenters for content. Knowing the minimum and maximum widths for child presenters allows the parent presenter to rationally distribute the space between the set of child presenters sharing a specific width value. Without the minimum / maximum value provided by the MinMaxPass function, the participating presenter would need many passes to rationally set the size for the content.
Метод 494 презентатора является методом конструирования для экземпляра презентатора. Метод 494 презентатора не имеет параметров. Метод 494 презентатора инициируется тогда, когда система 200 презентаторов конкретизирует данный презентатор. Метод 494 презентатора устанавливает экземпляр презентатора, позволяя инициировать другие методы (например, OnUpdate) на презентаторе.
Метод 496 QueueLayoutTask (организация очереди задач компоновки) добавляет определенную задачу компоновки, подлежащую выполнению применительно к данному объекту презентатора, в очередь задач компоновки, выполняемых системой 200 презентаторов. Когда эта заданная задача компоновки окажется в начале очереди, система 200 презентаторов вызывает метод 604 OnLayoutTask (запуск задачи компоновки), который описан ниже, в обработчике уведомлений для данного презентатора.The QueueLayoutTask method 496 (arranging a layout task queue) adds a specific layout task to be performed on a given presenter object to the layout task queue executed by the 200 presenter system. When this specified layout task is at the beginning of the queue, the
Метод 498 OnQueryValue (состояние значения запроса) возвращает значение, соответствующее заданному вычисленному значению для презентатора.The OnQueryValue method 498 (query value state) returns the value corresponding to the specified computed value for the presenter.
Опираясь на описание базового класса 216 презентаторов, обратимся к фиг. 5, которая дает итоговое представление о свойствах и методах приведенного в качестве примера варианта дочернего посреднического класса 222. Как было объяснено ранее, в одном варианте изобретения дочерние посреднические объекты являются оболочками для объектов презентаторов, являющихся дочерними объектами родительского объекта презентатора, причем эти дочерние посреднические объекты поддерживают ограниченный доступ со стороны родительского объекта к ресурсам дочерних объектов презентаторов. Все передачи данных (запросы/ответы) между родительским объектом презентатора и дочерним объектом презентатора направляют через дочерний посредник для данного дочернего презентатора. Дочерний посреднический объект поддерживает ссылку на дочерний презентатор и направляет вызовы/запросы от родительского презентатора на дочерний презентатор.Based on the description of the
В одном варианте системы 200 презентаторов класс 222 дочерних посредников включает в себя свойство 500 владельца элемента, которое указывает элемент в графических элементах 206, с которым связан презентатор дочернего посредника, с которым связана ссылка.In one embodiment of the
Свойство 502 преобразования позиционирует дочерний объект презентатора (и связанные с ним визуалы) внутри его родительского объекта презентатора. Преобразование реализуется через стандартную графическую матрицу преобразования 3х3 в базовом классе визуальных объектов. Когда матрица преобразования установлена, объект визуала, связанный с графическим элементом презентатора, помещает свой дочерний презентатор со смещением, заданным матрицей преобразования.The
Свойство 504 ограничивающего прямоугольника задает границы визуализации дочернего презентатора. Таким образом, границы визуализации дочернего презентатора могут отличаться от размера компоновки для дочернего презентатора.The bounding box property 504 sets the rendering boundaries of the child presenter. Thus, the visualization boundaries of the child presenter may differ from the layout size for the child presenter.
Свойство 506 «загрязненности» задает состояние «загрязненности» презентатора дочернего посредника. В одном варианте системы 200 презентаторов состояние «загрязненности» бывает одним из: чистое, «свидетель загрязнения» (dirty bystander) либо «загрязненное». «Чистое» состояние указывает, что в дочернем презентаторе с момента последнего обновления видимого изображения изменений дочернего презентатора не было. «Загрязненное» состояние указывает на то, что с момента последнего обновления видимого изображения появилось изменение дочернего презентатора. Состояние «свидетель загрязнения» указывает на то, что по меньшей мере один из потомков дочернего презентатора «загрязнен», но сам дочерний презентатор не загрязнен. Указанные состояния позволяют родительским презентаторам оптимизировать операции обновления.The “pollution”
Метод 510 QueryDefaultSizeInfo (запрос информации о размерах по умолчанию) инициализирует размеры дочернего презентатора на основе значений по умолчанию, предоставляемых родительским презентатором данного дочернего презентатора.The QueryDefaultSizeInfo method 510 (querying for size information by default) initializes the sizes of the child presenter based on the default values provided by the parent presenter of the child presenter.
Метод 520 Update (обновление) запрашивает дочерний посредник, чтобы инициировать метод 470 OnUpdate на дочернем презентаторском объекте. Родительский презентатор вызывает метод 520 Update на дочернем посреднике, когда родительский презентатор выполняет поиск для вычисления компоновки дочернего презентатора. Вызов метода 520 Update включает в себя два пересылаемых параметра. Информация о размере прямоугольника задает размеры прямоугольника, в котором дочерним презентатором должна вычисляться компоновка, и если активизировано разбиение на страницы, то родительский презентатор передает страничную информацию в параметре дескриптора страницы (смотри фиг. 10, которая описана ниже). Таким образом, метод 520 Update предоставляет уровень между вызывающей стороной и дочерним объектом-презентатором, который позволяет экранировать/фильтровать указанные запросы к дочернему объекту-презентатору. Метод 520 Update предоставляет механизм обхода вызовов, обычно направляемых к методу OnUpdate на дочернем презентаторе. Например, вызов метода 520 Update инициируют в тех случаях, когда дочерний презентатор не был изменен и не были изменены входные параметры (информация о размерах прямоугольника и описание страницы).The 520 Update method requests the child broker to initiate the
Метод 530 присоединения, выдаваемый родительским презентатором дочернему посреднику, вызывает команду OnRender для дочернего презентатора, связанного с дочерним посредником.The
Метод 540 значения запроса предоставляет значение презентатора, соответствующее вычисленному типу (свойству) значения, идентифицированному в вызове метода. Вызов метода 540 значения запроса делегируется соответствующему методу 498 OnQueryValue на дочернем объекте презентатора.The
Метод 550 запроса размера компоновки предоставляет вычисленные размерные параметры компоновки. Вызов метода 550 запроса размера компоновки делегируется соответствующему методу 496 OnQueryValue на дочернем объекте презентатора. Метод 560 вычисления MinMax предоставляет минимальное и максимальное значения ширины дочернего презентатора.Layout
Обратимся к фиг. 6, где набор базовых классов, связанных с системой 200 презентаторов, включает в себя базовый класс обработчиков уведомлений. Как было объяснено выше, объекты-обработчики уведомлений принимают все уведомления, касающиеся изменений, потенциально влияющих на презентатор, связанный с конкретным видимым изображением (видом), накапливают информацию о «загрязненности» и облегчают определение того, требуется ли обновление соответствующего объекта презентатора. Оба метода из базового класса обработчиков уведомлений принимают в качестве параметра объект, включающий в себя метод, который предоставляет необходимую информацию из элемента в числе графических элементов (например, графические элементы 206), с которыми связан обработчик уведомлений.Turning to FIG. 6, where the set of base classes associated with the system of 200 presenters includes a base class of notification handlers. As explained above, notification handler objects receive all notifications regarding changes potentially affecting the presenter associated with a particular visible image (view), accumulate information about “contamination” and make it easier to determine whether updating of the corresponding presenter object is required. Both methods from the base class of notification handlers accept as an argument an object that includes a method that provides the necessary information from an element among the graphic elements (for example, graphic elements 206) with which the notification handler is associated.
Базовый класс обработчиков уведомлений включает в себя метод 600 OnNotify (уведомление), который обеспечивает уведомление о «загрязненности» конкретного связанного с ним объекта презентатора. Метод 600 OnNotify потенциально включает в себя дополнительные, сформулированные с учетом требований пользователя производные задачи уведомления (путем подмены действия по умолчанию, состоящего в предоставлении значения свойства «загрязненности»), которые выполняют в ответ на прием уведомления. Метод 600 OnNotify в качестве входного параметра принимает информацию об изменении, в результате которого было послано уведомление. Метод OnNotify возвращает булево значение, указывающее на то, может ли обработчик уведомлений обработать изменение сам (либо указывающее на то, требуется ли уведомить обработчик уведомлений для презентатора-предка в дереве презентаторов для видимого изображения). Метод возвращает также значение «загрязненности», указывающее на то, является ли презентатор «чистым», «загрязненным» или относится к состоянию, названному как «свидетель загрязненности».The base class of notification handlers includes the OnNotify method 600 (notification), which provides notification of the "contamination" of a particular presenter object associated with it. The
Метод 602 OnLayoutTask (запуск задачи компоновки) выполняет задачи, поставленные ранее в очередь соответствующим презентатором посредством QueueLayoutTask.The OnLayoutTask method (run the build task) 602 executes the tasks previously queued by the corresponding presenter using QueueLayoutTask.
Обратимся к фиг. 7, где набор базовых классов, связанных с системой 200 презентаторов, дополнительно включает в себя класс узла обработчика уведомлений. Класс узла обработчика уведомлений является узловым объектом, передаваемым объекту-обработчику уведомлений, который позволяет обработчику уведомлений вызывать услуги уведомления, поддерживаемые системой 200 презентаторов.Turning to FIG. 7, where the set of base classes associated with the
Класс узла обработчика уведомлений включает в себя свойство 700 владельца элемента, задающее объект-графический элемент, с которым связан объект-узел обработчиков уведомлений.The notification handler node class includes an
Метод 702 регистрации «атома» регистрирует предоставленное имя строки в контексте 444 компоновки для обработчика уведомлений. Функциональные возможности метода 702 регистрации «атома» аналогичны методу 471 регистрации «атома», описанному выше со ссылками на базовый класс презентаторов. Таким образом, метод 702 регистрации «атома» является средством для передачи запросов от обработчика уведомлений к другим объектам (например, объекты презентаторов).The
Метод 704 создания уведомлений создает новый объект-уведомление презентатора и использует эти поля на основе переданных параметров. Переданные параметры включают в себя идентификационные данные о типе «атома» (указывающие тип объекта-уведомления презентатора) и данные уведомления.The
Метод 706 уведомления «потомков» вызывает метод 600 OnNotify для обработчиков уведомлений, связанных с потомками презентатора, к которым привязан узел обработчика уведомлений, для пересылки заданного уведомления презентатора. Метод 706 уведомления «потомков» выполняет функцию уведомления презентаторов-потомков о любых изменениях в родительском презентаторе (например, повторное задание размеров). Аналогичным образом метод 708 уведомления «предков» вызывает метод 600 OnNotify для обработчиков уведомлений, связанных с «предками» презентатора, к которым привязан узел обработчиков уведомлений, для пересылки заданного уведомления для презентатора. «Предки» определяются путем обхода дерева графических элементов (смотри фиг. 3) во вспомогательном запоминающем устройстве 208. Графические элементы, представленные во вспомогательном запоминающем устройстве, включают в себя свойство, которое задает «родителя» (промежуточный предок) графического элемента. Метод 710 «уведомления всех» вызывает метод 600 OnNotify в объектах-обработчиках уведомлений для всех презентаторов в дереве презентаторов, принадлежащем видимому изображению, для пересылки заданного уведомления. Наконец, метод 712 «самоуведомления» обеспечивает для презентатора средство вызова метода 600 OnNotify для того, чтобы отметить собственную «загрязненность».The “descendants”
Обратимся к фиг. 8, где на примере показан класс объектов-видимых изображений, из которого создается видимое изображение 202. Объекты видимого изображения имеют экземпляр системы презентаторов (например, систему 200 презентаторов) и являются визуальным «корнем» всех визуалов, созданных в созданном экземпляре системы презентаторов. Объект видимого изображения инициирует все вычисления на презентаторах в видимом изображении. Метод 800 для видимого изображения является методом-конструктором, который используют для создания нового объекта видимого изображения. Видимое изображение принимает в качестве переданного параметра ссылку на элемент, который является корневым графическим элементом видимого изображения. Свойство 802 RootElement (корневой элемент) возвращает ссылку на корневой графический элемент для видимого изображения (которое было установлено с помощью вышеописанного метода 800 для видимого изображения).Turning to FIG. 8, where an example shows a class of objects of visible images from which a visible image 202 is created. Objects of a visible image have an instance of a system of presenters (for example, a system of 200 presenters) and are the visual “root” of all the visuals created in the created instance of the system of presenters. The visible image object initiates all calculations on the presenters in the visible image.
Метод 804 DoLayout создает новое дерево презентаторов для видимого изображения и возвращает ссылку на новое дерево. Метод 804 DoLayout принимает в качестве входных параметров предложенные высоту и ширину для прямоугольника видимого изображения, а также два булевых значения (фиксированная ширина и фиксированная высота), которые устанавливают, могут ли предложенные размеры измениться во время выполнения метода 804 DoLayout.
Свойство 806 ViewSize (размер видимого изображения) устанавливает размеры видимого изображения. Свойство 806 ViewSize (только для записи) используется тогда, когда объект видимого изображения располагается (хостируется) в окне, причем свойство 806 ViewSize представляет начальный размер, исходя из которого выполняется операция компоновки.The ViewSize property 806 (size of the visible image) sets the dimensions of the visible image. The ViewSize property 806 (for recording only) is used when the visible image object is located (hosted) in the window, and the
Метод 808 GetViewResult (получение результирующего видимого изображения) принимает в качестве входных данных ссылку на графический элемент, а затем метод 808 GetViewResult возвращает результирующее видимое изображение для графического элемента. Значение «null» возвращается в том случае, когда этот графический элемент отсутствует в наборе графических элементов для видимого изображения.The GetViewResult method 808 (receiving the resulting visible image) accepts a reference to the graphic element as input, and then the
Метод 810 HitTest (проверка попадания) выполняет проверку попадания для переданной точки в системе координат видимого изображения. Метод 810 HitTest возвращает первый непрозрачный объект, полученный в результате проверки попадания. Если графический элемент не найден, то тогда метод возвращает значение «ложно».HitTest method 810 (hit check) performs a hit test for the transmitted point in the coordinate system of the visible image. The
Метод 812 CreatePage (создание страницы) принимает в качестве входных параметров BoxSizeInfo (смотри фиг. 9, описанную ниже) и PageDescriptor (смотри фиг. 10, описанную ниже). Метод 812 CreatePage создает новую страницу на основе введенных параметров и возвращает дочерний посреднический объект, соответствующий корневому графическому элементу для данной страницы.The
Обратимся к фиг. 9, где в качестве примера показана структура BoxSizeInfo. Структура BoxSizeInfo задает набор размеров для презентаторов и их дочерних презентаторов в видимом изображении, а также определяет, каким образом эти размеры должны обрабатываться принимающей стороной. Свойство 900 предложенного размера устанавливает предложенный размер для дочернего презентатора в видимом изображении. Вначале значение свойства 900 предложенного размера поступает от свойств для дочернего графического элемента во вспомогательном запоминающем устройстве. Перед пересылкой дочернему презентатору оно может быть модифицировано родительским презентатором. Свойство 902 родительского размера является предложенным размером для родительского презентатора. Свойство 902 родительского размера используют, например, для вычисления размеров, исходя из значений в форме процентов от родительского презентатора, для дочерних презентаторов. Структура BoxSizeInfo также включает в себя два свойства с булевыми значениями, FixedWidth (фиксированная ширина) 904 и FixedHeight (фиксированная высота) 906, которые инструктируют принимающий презентатор, сообщая, является ли представленный размер предписанным (фиксированным значением), либо это значение размера просто предлагается в качестве высоты или ширины.Turning to FIG. 9, where, as an example, the structure of BoxSizeInfo is shown. The BoxSizeInfo structure defines a set of sizes for presenters and their child presenters in the visible image, and also determines how these sizes should be processed by the receiving side. Property 900 of the proposed size sets the proposed size for the child presenter in the visible image. Initially, the property value 900 of the proposed size comes from the properties for the child graphic element in the auxiliary storage device. Before being sent to the child presenter, it can be modified by the parent presenter.
Обратимся к фиг. 10, где показаны части приведенной в качестве примера структуры дескриптора страницы. Дескриптор страницы включает в себя свойство 1000 PageSize (размер страницы). Свойство 1000 PageSize является свойством только для считывания, которое задает размер страницы. Оно инициализируется при создании структуры дескриптора страницы. Свойство 1002 обрыва записи является структурой, которая включает в себя: начальное положение символа, идентифицирующее первый символ текущего презентатора, который находится на следующей странице (относительно графического элемента, который является корнем видимого изображения, разбиваемого на страницы); количество символов (отсчитываемое назад от начала расположения символов), которое может аннулировать предыдущую страницу; и булево значение IsDirty (загрязнено), которое указывает, оказалась ли недействительной оборванная запись (охватывающая конкретный диапазон символов в разбитом на страницы графическом элементе) в результате изменения во вспомогательном запоминающем устройстве.Turning to FIG. 10, which shows parts of an example page descriptor structure. The page descriptor includes the 1000 PageSize property (page size). The 1000 PageSize property is a read-only property that sets the page size. It is initialized when the page descriptor structure is created. The
Структура дескриптора страницы также включает в себя свойство 1004 AvailableSize (имеющийся размер). Полная страница не может быть доступна презентатору после начала выполнения метода OnUpdate на презентаторе. Свойство 1004 AvailableSize указывает пространство, остающееся на странице для презентатора. Свойство 1004 AvailableSize инициализируется значением размера страницы.The page descriptor structure also includes the 1004 AvailableSize property. A full page cannot be accessed by the presenter after the OnUpdate method begins to run on the presenter. The 1004 AvailableSize property indicates the space remaining on the page for the presenter. The 1004 AvailableSize property is initialized to the page size value.
Обратимся к фиг. 11, где определен набор методов, которые выполняются механизмом 212 представления системы 200 презентаторов, созданной видимым изображением 202 (смотри фиг. 2). Метод 1100 конструира в механизме 212 представления обращается к видимому изображению 202, которое содержит ссылку на корневой графический элемент для этого видимого изображения, предоставляемого деревом графических элементов 206. Метод 1102 DoLayout принимает ширину и высоту в виде переданных параметров, представляющих размеры видимого изображения 202, и в ответ приступает к выполнению процесса компоновки применительно к контенту графических элементов 206. Метод 1104 UpdateLayout (обновление компоновки), выполняемый по меньшей мере однократно после выполнения DoLayout, начинает пошаговое изменение ранее вычисленной компоновки для видимого изображения 202. Метод 1106 CreatePage получает в качестве входного параметра информацию о размере прямоугольника (BoxSizeInfo), которая содержит размеры отображаемой страницы и дескриптор страницы, содержащий информацию о том, каким образом начинать конкретную страницу. Вместо того чтобы отображать весь контент под корнем графических элементов 206 для видимого изображения 202, метод 1106 CreatePage отображает только одну интересующую страницу.Turning to FIG. 11, where a set of methods is defined that are performed by the
Приведенная в качестве примера архитектура для обработки компоновки была описана со ссылками на фиг. 1-11. Приведенная в качестве примера архитектура включает в себя выделенные состояния видимого изображения (объекты - презентаторы), связанные с состояниями данных для элементов (объекты - графические элементы). Показанная архитектура включает в себя систему 200 презентаторов, которая помогает расширить возможности компоновки/представления видимого изображения посредством базового класса 216 презентаторов, из которого получают новые классы объектов презентаторов, воплощающих новые функциональные возможности компоновки/представления. Раскрытые здесь система и архитектура также включают в себя механизм уведомления, связывающий элементы с соответствующими объектами презентаторов, для избирательного инициирования повторного вычисления частей видимого изображения в ответ на изменения. Показанные базовые классы объектов иллюстрируют множество потенциальных альтернативных вариантов реализации расширяемой архитектуры, воплощающей настоящее изобретение, причем их не следует рассматривать как ограничение объема изобретения.An exemplary architecture for processing layout has been described with reference to FIG. 1-11. The architecture given as an example includes the selected states of the visible image (objects - presenters) associated with data states for elements (objects - graphic elements). The architecture shown includes a
Учитывая описанный здесь набор компонентов, образующих приведенную в качестве примера архитектуру обработки представления/компоновки, воплощающей настоящее изобретение, обратимся теперь к фиг. 12, где показан общий процесс обработки изменений в графически отображаемых элементах. Сначала на этапе 1200 происходят изменения во вспомогательном запоминающем устройстве 208. Например, приложение 204 выполняет операцию, которая приводит к изменению состояния и/или контента одного или нескольких отображаемых компонентов графического пользовательского интерфейса для этого приложения. В ответ на эти изменения на этапе 1202 механизм 212 представления в системе 200 презентаторов принимает уведомление об изменениях, появляющееся в результате изменения графического элемента во вспомогательном запоминающем устройстве.Considering the set of components described here that form an exemplary presentation / layout processing architecture embodying the present invention, we now turn to FIG. 12, which shows the general process for processing changes in graphically displayed elements. First, at
В качестве основы на этапе 1204 система 200 презентаторов поддерживает связи между элементами и презентаторами в информационной связке «элемент - презентатор» (EPI). Всякий раз при создании презентатора для графического элемента создается ссылка на этот презентатор на элементе, которая запоминается в EPI, поддерживаемой системой презентаторов. Если графический элемент имеет больше одного презентатора, то тогда в EPI графического элемента будет множество ссылок (по одной на каждый презентатор). Когда свойство на графическом элементе изменяется, то выполняются следующие этапы:As a basis, at
(а) Вспомогательное запоминающее устройство отмечает изменение на графическом элементе;(a) The auxiliary storage device marks a change in the graphic element;
(b) Вспомогательное запоминающее устройство 208 уведомляет механизм 212 представления об изменении со ссылкой на графический элемент, который изменил одно из своих свойств;(b) The
(с) Механизм 212 представления просматривает EPI графического элемента, который изменился, и определяет презентаторы, которые были созданы для этого графического элемента; и(c) The
(d) После определения презентатора механизм 212 представления получает ссылку на соответствующий обработчик уведомлений для презентатора (через свойство 446 обработчика уведомлений на презентаторе).(d) After determining the presenter, the
Таким образом, в свете вышесказанного, на этапе 1204 механизм 212 представления системы 200 презентаторов определяет идентичность (идентификационную информацию) презентатора, для которого используется уведомление об изменении. Как было объяснено выше, система презентаторов поддерживает список презентаторов, которые были конкретизированы для данного элемента в его EPI. После определения презентатора, для которого используется уведомление об изменении (в этом примере предполагается, что для данного элемента существует только один презентатор), механизм 212 представления в системе презентаторов получает ссылку на обработчик уведомления для презентатора через свойство 446 обработчика уведомлений на идентифицированном презентаторе.Thus, in light of the foregoing, at
Затем при выполнении этапа 1206 механизм 212 представления системы 200 презентаторов направляет уведомление об изменении обработчику уведомлений, используя ссылку, которая была получена на этапе 1204. В одном варианте изобретения этап 1206 выполняют путем инициирования метода 602 OnNotify на конкретном объекте-обработчике уведомлений.Then, at
После приема уведомления об изменении от системы презентаторов на этапе 1208 (например, во время выполнения метода 602 OnNotify) обработчик уведомлений определяет действия, если они имеются, которые необходимо предпринять презентатору для реагирования на указанные изменения в графическом элементе во время этапа 1200 во вспомогательном запоминающем устройстве 208. В одном варианте изобретения обработчик уведомлений определяет, для какой части, если она существует, соответствующего презентатора необходимо обновление в свете принятого уведомления об изменении. Указанные части включают в себя, например, дочерние элементы презентатора и сам презентатор.After receiving the notification of the change from the presenter system at step 1208 (for example, during the OnNotify method 602), the notification processor determines the actions, if any, that the presenter needs to take to respond to these changes in the graphic during
Далее на этапе 1210 обработчик уведомлений (например, метод 602 OnNotify) возвращает результат, который позволяет соответствующему презентатору определить и выполнять действия в свете уведомления об изменениях, полученного системой 200 презентаторов в ходе выполнения этапа 1202. В одном варианте изобретения возвращаемый результат представлен в виде обработчика уведомлений/конкретного презентатора. В некоторых случаях в возвращаемом результате презентатор просто помечается как «загрязненный», в результате чего вызывается полное повторное вычисление соответствующего презентатора. В других случаях предоставляется информация для избирательного вызова лишь некоторых из возможностей повторного вычисления видимого изображения для презентатора.Next, at
В одном варианте изобретения механизм 212 представления системы 200 презентаторов принимает на этапе 1210 возвращенный результат от обработчика уведомлений для презентатора. После этого на этапе 1212, если изменения во вспомогательном запоминающем устройстве не вызывают необходимость повторного вычисления презентатора, управление переходит к этапу 1216 принятия решения. Однако, если на этапе 1212 возвращенный результат указывает на то, что необходимо повторное вычисление презентатора, то управление переходит к этапу 1214, на котором система 200 презентаторов добавляет презентатор к набору «загрязненных» презентаторов, требующих повторного вычисления. В приведенном в качестве примера варианте изобретения система презентаторов устанавливает свойство 450 «загрязненности» на соответствующем презентаторе (с указанием необходимости повторного вычисления презентатора) и добавляет этот презентатор в набор презентаторов, которые нуждаются в повторном вычислении. Презентаторы также задают информацию, описывающую содержание изменений, которые ведут к установке свойства 450 «загрязненности». Затем управление переходит к этапу 1216.In one embodiment of the invention, the
На этапе 1216, если для презентатора, связанного с интересующим в данный момент обработчиком уведомлений, родительский презентатор не существует, то управление переходит к этапу 1218 «конец». Если родительский презентатор действительно существует, то тогда управление переходит от этапа 1216 к этапу 1220, на котором создается (пересылается) уведомление для обработчика уведомлений родительского презентатора (что приводит к обработчику уведомлений для родительского презентатора, обрабатывающего уведомление), как показано пунктирной линией возврата к этапу 1208.At
Таким образом, набор этапов, показанный на фиг. 12, позволяет системе 200 презентаторов аккумулировать список презентаторов, которые были «загрязнены» в результате изменений во вспомогательном запоминающем устройстве 220 с момента последнего вычисления компоновки для документного/пользовательского интерфейса.Thus, the set of steps shown in FIG. 12, allows the
Обратимся теперь к фиг. 13, где блок-схема алгоритма описывает примерный процесс повторного вычисления/повторной визуализации документного/пользовательского интерфейса в соответствии с изменениями в презентаторах в конкретном видимом изображении (смотри фиг. 12, описанную выше). В одном варианте изобретения приложение 204 управляет обновлениями видимого изображения 202 и вызывает процедуры обновления видимого изображения, такие как процедура, раскрытая на фиг. 13, в ответ на такие события, как окончание временного интервала, запрос на распечатку документа или изменение состояния графического пользовательского интерфейса.Turning now to FIG. 13, where the flowchart describes an exemplary process for re-computing / re-rendering a document / user interface in accordance with changes in presenters in a particular visible image (see FIG. 12, described above). In one embodiment of the invention, the
Сначала на этапе 1300 система 200 презентаторов и конкретный механизм 212 представления принимает вызов метода 1102 DoLayout (описанный выше со ссылкой на описание API механизма 212 представления). В ответ на прием вызова метода 1102 DoLayout приложением 204 система 200 презентаторов повторно вычисляет объекты презентаторов, содержащиеся в видимом изображении 204, для размещения изменений в элементах во вспомогательном запоминающем устройстве с момента последнего вызова метода 1102 DoLayout.First, at
В одном варианте настоящего изобретения, где презентаторы для видимого изображения иерархически упорядочены (смотри фиг.3), система 200 презентаторов сначала определяет на этапе 1302 корневой презентатор для видимого изображения. В одном варианте изобретения корневой презентатор идентифицируется свойством презентатора на корневом элементе, который приписан к видимому изображению (например, видимое изображение 204а) и, следовательно, к системе презентаторов (например, система 200а презентаторов). После определения корневого презентатора управление переходит к этапу 1304, где система 200 презентаторов начинает обход дерева презентаторов для видимого изображения и повторное вычисление каждого «загрязненного» презентатора.In one embodiment of the present invention, where the presenters for the visible image are hierarchically ordered (see FIG. 3), the
На этапе 1304 система 200 презентаторов вызывает метод 470 OnUpdate на каждом «загрязненном» презентаторе в видимом изображении. Вызванный метод 470 OnUpdate передает высоту и ширину прямоугольника, в котором должна быть повторно вычислена компоновка презентатора. После повторного вычисления компоновки презентатор кэширует полученный результат. Таким образом, после завершения этапа 1304 ранее «загрязненные» презентаторы оказываются вычисленными повторно, а результаты повторных вычислений оказываются занесенными в кэш-память для легкого доступа во время последующей повторной визуализации. «Загрязненный» бит очищается в каждом из вызванных презентаторов. Далее, со ссылками на фиг. 14, более подробно описан набор этапов, выполняемых при вызове метода 470 OnUpdate.At
Имеется несколько путей очистки «загрязненных» презентаторов на этапе 1304. Однако в варианте настоящего изобретения система 200 презентаторов и, в частности, метод 1104 OnUpdateLayout механизма 212 представления использует иерархические взаимосвязи между презентаторами в видимом изображении для упрощения выполнения своей функции на этапе 1304 завершения. В частности, во время выполнения метода 470 OnUpdate каждый вызванный презентатор итеративно вызывает (или, в альтернативном варианте, запрашивает систему 200 презентаторов для вызова) метод 470 OnUpdate на всех дочерних презентаторах вызванного презентатора. Таким образом, система 200 презентаторов начинает обход дерева презентаторов с метода 470 OnUpdate корневого презентатора (например, презентатор Р1 по фиг.3) и поддерживает последовательные вызовы дочерних презентаторов, когда вызов 470 метода OnUpdate обходит ветви иерархического дерева презентаторов для повторного вычисления «загрязненных» презентаторов. Итеративные вызовы метода 470 OnUpdate на дочерних презентаторах обеспечивают обход всех презентаторов в видимом изображении, и, если презентаторы «загрязнены», выполняется их повторное вычисление.There are several ways to clean the “contaminated” presenters at
По окончании каждый метод 470 OnUpdate, вызванный на этапе 1304, устанавливает в исходное состояние свойство 450 «загрязненности», указывая, что было выполнено повторное вычисление или «очистка». Каждый метод 470 OnUpdate также возвращает вызывающей стороне значение, указывающее на то, требуется ли повторно визуализировать (то есть повторно «нарисовать») данный презентатор. В одном варианте изобретения возвращаемым значением является булево значение. Если оно равно «истина», то тогда требуется повторная визуализация. Если оно равно «ложь», то тогда повторная визуализация не требуется. После обработки на этапе 1304 каждого из «загрязненных» презентаторов для видимого изображения управление переходит к этапу 1306 визуализации, где обрабатываются презентаторы, идентифицированные в списке презентаторов, требующих повторной визуализации.At the end, each
На этапе 1306 система 200 презентаторов вызывает метод 474 OnRender на каждом презентаторе, идентифицированном в списке презентаторов, запрашивающих повторную визуализацию. Функционирование примерного варианта метода 474 OnRender описано со ссылками на фиг. 14. При реализации базового класса метода 474 OnRender презентатор ничего не «рисует», а вместо этого итеративно вызывает метод 474 OnRender на своих дочерних и/или сцепленных презентаторах для заполнения выделенного пространства (например, прямоугольник). Настроенные с учетом требований пользователя версии метода 474 OnRender визуализируют побитовые отображения через вызовы приложения 204 и/или интерфейсов API графической подсистемы и драйверов 234 графических устройств. После обработки всех презентаторов, запрашивающих повторную визуализацию на этапе 1306, управление переходит к этапу 1308 «конец» и возвращается к вызывающей стороне, инициировавшей вызов 1102 метода DoLayout, на механизме представления для конкретного видимого изображения.At 1306, the
Обратимся к фиг. 14, где показана блок-схема этапов метода 470 OnUpdate, выполняемого для повторного вычисления презентатора видимого изображения. Метод 470 OnUpdate вычисляет новую компоновку для презентатора, в том числе для любых дочерних презентаторов, и кэширует результаты для обращения к ним на этапе повторной визуализации. В приведенном ниже примере с вызовом 470 метода OnUpdate для каждого презентатора пересылается набор размеров, задающих границы пространства для видимого изображения (например, прямоугольник), которое может быть занято компоновкой презентатора. Набор размеров задает, например, высоту и ширину, причем также устанавливается, можно ли модифицировать эти величины во время выполнения вызова метода 470 OnUpdate. Однако изобретение предполагает выполнение повторного вычисления презентаторов на основе любого одного или нескольких из множества различных полученных параметров, включая размеры пространства для видимого изображения, которые влияют на компоновку.Turning to FIG. 14, which shows a flowchart of the
На этапе 1400 презентатор выполняет требуемые операции задания размеров на основе переданных параметров перед вызовом каких-либо дочерних презентаторов (через дочерние посреднические объекты) для выполнения их обновлений. Содержание указанной операции зависит от особенностей конкретного типа презентатора. Затем презентатор вызывает систему 200 презентаторов для определения местонахождения и обновления дочерних презентаторов текущего презентатора. На этапе предварительной обработки презентатор определяет потенциальную необходимость создания новой страницы/колонки и создает новый дочерний посредник/презентатор для обработки новой страницы/колонки для видимого изображения.At
Далее на этапе 1402 метод 470 OnUpdate определяет на текущем родительском презентаторе следующий дочерний презентатор для вызова обновления его компоновки. Заметим, что на этом этапе, по меньшей мере в первом случае, требуется, чтобы родительский презентатор определил наличие дочернего элемента и создал соответствующий дочерний посреднический объект/презентатор. На последующих итерациях родительский презентатор может использовать кэшированные дочерние посреднические объекты, идентифицированные в его поле 412 дочерних презентаторов, для идентификации следующего оставшегося (не обработанного) дочернего посреднического объекта/презентатора, то есть дочернего презентатора, который еще не был вызван во время текущей итерации метода OnUpdate на текущем родительском презентаторе.Next, at 1402, the
Родительский презентатор принимает ответ от поддерживающего запоминающего устройства либо сам определяет, исходя из своего свойства 412 дочерних презентаторов, остался ли дочерний презентатор, подлежащий обработке; при этом на этапе 1404, если не осталось дочерних презентаторов, подлежащих обновлению, управление переходит к этапу 1420 (описанному ниже). В противном случае, если презентатор действительно имеет в своем свойстве 412 дочерних презентаторов необработанный дочерний презентатор, который еще не был обновлен, то управление переходит к этапу 1406.The parent presenter accepts the response from the supporting storage device or determines, based on his property, 412 child presenters, whether the child presenter to be processed remains; however, at
На этапе 1406 презентатор вызывает метод 520 OnUpdate на возвращенном дочернем посреднике, который находится между родительским презентатором и рассматриваемым текущим дочерним презентатором, для получения высоты и ширины дочернего презентатора, с которым связан дочерний посредник. Дочерний презентатор связан с конкретным графическим элементом (заданным в его поле 442 владельца элемента).At
На этапе 1410 дочерний посредник вызывает метод 470 OnUpdate на дочернем презентаторе, с которым связан этот дочерний посредник. Метод 470 OnUpdate вычисляет обновленную высоту и ширину дочернего презентатора (и определяет, требуется ли повторная визуализация). Заметим, что на этапе 1410 метод 470 OnUpdate вызывается рекурсивно дочерними презентаторами, пока вызванный дочерний презентатор не определит на этапе 1402, что он не имеет дочерних презентаторов, и пока он не возвратится к вызывающему родительскому презентатору (через свой дочерний посредник). После вызова метода 470 OnUpdate на дочернем презентаторе управление переходит к этапу 1414.At
Таким образом, на этапе 1414 вызывающий родительский презентатор (из этапа 1406) принимает ответ на вызов 520 метода OnUpdate для идентифицированного посредника. Ответ включает в себя высоту и ширину дочернего презентатора в виде возвращенных параметров. Ответ также указывает, требуется ли повторная визуализация вызванного дочернего презентатора. Далее на этапе 1416 родительский презентатор позиционирует вызванный дочерний презентатор в выделенном пространстве компоновки родительского презентатора на основе алгоритма/стратегии размещения. В одном варианте изобретения на этапе 1416 родительский презентатор помещает дочерний презентатор в свою компоновку на основе параметров высоты и ширины дочернего презентатора, полученных презентатором на этапе 1414.Thus, at
Затем управление возвращается к этапу 1402, где продолжается выполнение метода 470 OnUpdate родительского презентатора для обновления остальных дочерних презентаторов (через их дочерние посреднические объекты-«оболочки»).Then, control returns to block 1402, where the parent presenter's
Если на этапе 1404 не осталось дочерних презентаторов (презентаторы элемента или посредника), подлежащих обработке/обновлению, то управление переходит к этапу 1420. На этапе 1420 метод 470 OnUpdate вызванного презентатора реализует настроенные согласно требованиям пользователя функции компоновки, включая возможные дополнительные вызовы метода 470 OnUpdate на дочерних презентаторах, для настройки компоновки для презентатора.If at
На этапе 1422 либо, что возможно, в любой момент, когда методом 470 OnUpdate получена новая информация, результаты обработки компоновки кэшируются для последующего использования на этапе повторной визуализации в процессе обработки графического изображения.At
После завершения обработки обновления для данного презентатора, в том числе для всех дочерних презентаторов вызванного презентатора, на этапе 1424 презентатор возвращает свои размеры вызывающей стороне (система 200 презентаторов), а также значение, указывающее на то, необходима ли повторная визуализация этого презентатора.After completion of the update processing for this presenter, including for all child presenters of the called presenter, at
Специалистам в данной области техники очевидно, что здесь на примерах были описаны новая платформа и методы для управления обработкой компоновки/представления выходных данных графического документного/пользовательского интерфейса в вычислительной среде, включающей в себя устройства графического вывода, такие как дисплей графического пользовательского интерфейса или принтер. С точки зрения множества возможных сред, в которых могут быть реализованы принципы этого изобретения, и гибкости проектирования и реализации программных утилит и инструментов следует отметить, что описанные здесь варианты являются лишь иллюстрацией, и их нельзя рассматривать как ограничение объема изобретения. Специалистам в данной области техники, которые используют настоящее изобретение, очевидно, что показанные здесь варианты могут быть модифицированы по структуре и в деталях, не выходя за рамки существа изобретения. Таким образом, описанное здесь изобретение рассматривает все указанные варианты как входящие в объем нижеизложенной формулы изобретения и ее эквивалентов.It will be apparent to those skilled in the art that, by way of examples, a new platform and methods have been described to control the layout / presentation processing of graphical document / user interface output data in a computing environment including graphical output devices such as a graphical user interface display or printer. From the point of view of the many possible environments in which the principles of this invention can be implemented, and the flexibility of designing and implementing software utilities and tools, it should be noted that the options described here are only an illustration and should not be construed as limiting the scope of the invention. Those skilled in the art who use the present invention, it is obvious that the options shown here can be modified in structure and in detail, without going beyond the merits of the invention. Thus, the invention described herein considers all of these options as being included in the scope of the following claims and their equivalents.
Claims (51)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/434,850 | 2003-05-09 | ||
US10/434,850 US20040225960A1 (en) | 2003-05-09 | 2003-05-09 | System for hosting graphical layout/presentation objects |
US10/434850 | 2003-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2004114219A RU2004114219A (en) | 2005-09-20 |
RU2305860C2 true RU2305860C2 (en) | 2007-09-10 |
Family
ID=33416813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2004114219/09A RU2305860C2 (en) | 2003-05-09 | 2003-05-15 | System for providing hosting to objects of graphical composition or representation |
Country Status (14)
Country | Link |
---|---|
US (1) | US20040225960A1 (en) |
EP (1) | EP1627376A4 (en) |
JP (1) | JP4277002B2 (en) |
KR (1) | KR100969720B1 (en) |
CN (1) | CN100442265C (en) |
AU (1) | AU2003237867B8 (en) |
BR (1) | BR0306159A (en) |
CA (1) | CA2462172A1 (en) |
IL (1) | IL161285A (en) |
MX (1) | MXPA04004405A (en) |
NO (1) | NO20041880L (en) |
RU (1) | RU2305860C2 (en) |
WO (1) | WO2004107308A1 (en) |
ZA (1) | ZA200403495B (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2483350C2 (en) * | 2007-11-21 | 2013-05-27 | Майкрософт Корпорейшн | Layout manager |
RU2518635C2 (en) * | 2009-10-30 | 2014-06-10 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for encoding and decoding coding unit of picture boundary |
RU2564538C2 (en) * | 2009-02-03 | 2015-10-10 | Калгари Сайентифик Инк. | Method and system for facilitating interaction with plurality of applications using separate user interface |
RU2586850C2 (en) * | 2010-04-28 | 2016-06-10 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Integration of client application and web page |
US9367365B2 (en) | 2008-11-26 | 2016-06-14 | Calgary Scientific, Inc. | Method and system for providing remote access to a state of an application program |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US10158701B2 (en) | 2011-03-21 | 2018-12-18 | Calgary Scientific Inc.. | Method and system for providing a state model of an application program |
US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4411922B2 (en) * | 2003-10-06 | 2010-02-10 | セイコーエプソン株式会社 | Structured document display processing apparatus, structured document display processing method, structured document display processing program |
JP4413629B2 (en) * | 2004-01-09 | 2010-02-10 | パイオニア株式会社 | Information display method, information display device, and information distribution display system |
US7383500B2 (en) | 2004-04-30 | 2008-06-03 | Microsoft Corporation | Methods and systems for building packages that contain pre-paginated documents |
US8661332B2 (en) | 2004-04-30 | 2014-02-25 | Microsoft Corporation | Method and apparatus for document processing |
US7359902B2 (en) | 2004-04-30 | 2008-04-15 | Microsoft Corporation | Method and apparatus for maintaining relationships between parts in a package |
US7580948B2 (en) | 2004-05-03 | 2009-08-25 | Microsoft Corporation | Spooling strategies using structured job information |
US7755786B2 (en) | 2004-05-03 | 2010-07-13 | Microsoft Corporation | Systems and methods for support of various processing capabilities |
US7519899B2 (en) | 2004-05-03 | 2009-04-14 | Microsoft Corporation | Planar mapping of graphical elements |
US8363232B2 (en) | 2004-05-03 | 2013-01-29 | Microsoft Corporation | Strategies for simultaneous peripheral operations on-line using hierarchically structured job information |
US8243317B2 (en) | 2004-05-03 | 2012-08-14 | Microsoft Corporation | Hierarchical arrangement for spooling job data |
US7565619B2 (en) * | 2004-08-26 | 2009-07-21 | Microsoft Corporation | System and method for automatic item relocating in a user interface layout |
US20070006095A1 (en) * | 2005-07-01 | 2007-01-04 | Liangkui Feng | Auto layout of user interface elements in a window |
CN100395751C (en) * | 2005-10-14 | 2008-06-18 | 华为技术有限公司 | Device and method for page smart configuration |
US20070113189A1 (en) * | 2005-11-15 | 2007-05-17 | Microsoft Corporation | Specifying per theme styles for custom graphical elements |
US7941749B2 (en) * | 2007-05-15 | 2011-05-10 | Microsoft Corporation | Composition of electronic document layout |
US20080295019A1 (en) * | 2007-05-21 | 2008-11-27 | Microsoft Corporation | Document with Sidebars |
US8010886B2 (en) * | 2008-01-04 | 2011-08-30 | Microsoft Corporation | Intelligently representing files in a view |
US8004541B2 (en) * | 2008-01-28 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Structured display system with system defined transitions |
US20090193067A1 (en) * | 2008-01-30 | 2009-07-30 | Microsoft Corporation | Server-based recalculation of vector graphics |
US20100073160A1 (en) * | 2008-09-25 | 2010-03-25 | Microsoft Corporation | Alerting users using a multiple state status icon |
US8230357B2 (en) * | 2008-12-18 | 2012-07-24 | Microsoft Corporation | Visually processing instance data |
US8091016B2 (en) * | 2008-12-18 | 2012-01-03 | Microsoft Corporation | Visually manipulating instance collections |
US8402379B2 (en) * | 2009-09-30 | 2013-03-19 | SAP Portals Israel Limited | Dynamic content layout for a user interface display |
CN103959708B (en) | 2011-09-30 | 2017-10-17 | 卡尔加里科学公司 | Including the non-coupled application extension for shared and annotation the interactive digital top layer of the remote application that cooperates |
US8959431B2 (en) * | 2012-01-16 | 2015-02-17 | Microsoft Corporation | Low resolution placeholder content for document navigation |
US9293008B2 (en) * | 2012-03-16 | 2016-03-22 | Bally Gaming, Inc. | Layout elements as rendering placeholders for native wagering game applications |
US20140026039A1 (en) * | 2012-07-19 | 2014-01-23 | Jostens, Inc. | Foundational tool for template creation |
US20140258003A1 (en) * | 2013-03-07 | 2014-09-11 | Microsoft Corporation | Online advertising with integrated interfaces |
US20150113507A1 (en) * | 2013-10-18 | 2015-04-23 | Distech Controls Inc. | Method for automatic grouping of interlinked graphical configuration elements and computer program product |
US10445391B2 (en) | 2015-03-27 | 2019-10-15 | Jostens, Inc. | Yearbook publishing system |
CN107239268A (en) | 2016-03-29 | 2017-10-10 | 阿里巴巴集团控股有限公司 | A kind of method for processing business, device and intelligent terminal |
DE102017000569A1 (en) * | 2017-01-23 | 2018-07-26 | e.solutions GmbH | Method, computer program product and device for determining input areas in a graphical user interface |
CN111279279B (en) * | 2017-10-26 | 2024-02-20 | 西门子工业软件有限公司 | Establishing and tracking an automated engineering environment |
CN108388462B (en) * | 2018-02-28 | 2021-04-27 | 武汉斗鱼网络科技有限公司 | Element change notification method and device and terminal equipment |
CN112463272B (en) * | 2020-11-13 | 2024-06-18 | 广州市百果园网络科技有限公司 | Interface layout loading display method, system, electronic equipment and storage medium |
CN112764729B (en) * | 2021-01-08 | 2024-02-06 | 深圳依时货拉拉科技有限公司 | Application software development method, device, computer equipment and readable storage medium |
CN114090172B (en) * | 2021-11-10 | 2024-06-18 | 北京字节跳动网络技术有限公司 | Cross-system widget multiplexing method and device |
US20230169138A1 (en) * | 2021-12-01 | 2023-06-01 | Salesforce.Com, Inc. | Rendering primitive child elements corresponding to child components of a user interface without instantiating the child components |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259446B1 (en) | 1992-12-23 | 2001-07-10 | Object Technology Licensing Corporation | Menu state system |
US6243102B1 (en) * | 1994-05-16 | 2001-06-05 | Apple Computer, Inc. | Data-driven layout engine |
US5838317A (en) * | 1995-06-30 | 1998-11-17 | Microsoft Corporation | Method and apparatus for arranging displayed graphical representations on a computer interface |
US5873106A (en) * | 1995-09-18 | 1999-02-16 | Oracle Corporation | Geometry management for displaying objects on a computer |
US5815415A (en) * | 1996-01-19 | 1998-09-29 | Bentley Systems, Incorporated | Computer system for portable persistent modeling |
US6141007A (en) * | 1997-04-04 | 2000-10-31 | Avid Technology, Inc. | Newsroom user interface including multiple panel workspaces |
US6038573A (en) | 1997-04-04 | 2000-03-14 | Avid Technology, Inc. | News story markup language and system and process for editing and processing documents |
US6496202B1 (en) | 1997-06-30 | 2002-12-17 | Sun Microsystems, Inc. | Method and apparatus for generating a graphical user interface |
US5886694A (en) * | 1997-07-14 | 1999-03-23 | Microsoft Corporation | Method for automatically laying out controls in a dialog window |
US6769124B1 (en) * | 1998-07-22 | 2004-07-27 | Cisco Technology, Inc. | Persistent storage of information objects |
CA2256931A1 (en) * | 1998-12-23 | 2000-06-23 | Robert Weisz | Source editing in a graphical hierarchical environment |
US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6721950B1 (en) * | 2000-04-06 | 2004-04-13 | Microsoft Corporation | Input redirection |
US7051276B1 (en) * | 2000-09-27 | 2006-05-23 | Microsoft Corporation | View templates for HTML source documents |
AUPR464601A0 (en) * | 2001-04-30 | 2001-05-24 | Commonwealth Of Australia, The | Shapes vector |
US20040006765A1 (en) * | 2002-04-16 | 2004-01-08 | Goldman Kenneth J. | Live software construction with dynamic classes |
US7299409B2 (en) * | 2003-03-07 | 2007-11-20 | International Business Machines Corporation | Dynamically updating rendered content |
-
2003
- 2003-05-09 US US10/434,850 patent/US20040225960A1/en not_active Abandoned
- 2003-05-15 CN CNB038014815A patent/CN100442265C/en not_active Expired - Fee Related
- 2003-05-15 KR KR1020047007057A patent/KR100969720B1/en not_active IP Right Cessation
- 2003-05-15 CA CA002462172A patent/CA2462172A1/en not_active Abandoned
- 2003-05-15 RU RU2004114219/09A patent/RU2305860C2/en not_active IP Right Cessation
- 2003-05-15 BR BR0306159-0A patent/BR0306159A/en not_active IP Right Cessation
- 2003-05-15 JP JP2004566468A patent/JP4277002B2/en not_active Expired - Lifetime
- 2003-05-15 EP EP03736623A patent/EP1627376A4/en not_active Withdrawn
- 2003-05-15 MX MXPA04004405A patent/MXPA04004405A/en not_active Application Discontinuation
- 2003-05-15 AU AU2003237867A patent/AU2003237867B8/en not_active Ceased
- 2003-05-15 WO PCT/US2003/015379 patent/WO2004107308A1/en active Application Filing
- 2003-05-15 ZA ZA200403495A patent/ZA200403495B/en unknown
-
2004
- 2004-04-04 IL IL161285A patent/IL161285A/en not_active IP Right Cessation
- 2004-05-07 NO NO20041880A patent/NO20041880L/en unknown
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2483350C2 (en) * | 2007-11-21 | 2013-05-27 | Майкрософт Корпорейшн | Layout manager |
US9871860B2 (en) | 2008-11-26 | 2018-01-16 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US10334042B2 (en) | 2008-11-26 | 2019-06-25 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US10965745B2 (en) | 2008-11-26 | 2021-03-30 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
US9367365B2 (en) | 2008-11-26 | 2016-06-14 | Calgary Scientific, Inc. | Method and system for providing remote access to a state of an application program |
RU2564538C2 (en) * | 2009-02-03 | 2015-10-10 | Калгари Сайентифик Инк. | Method and system for facilitating interaction with plurality of applications using separate user interface |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US8842926B2 (en) | 2009-10-30 | 2014-09-23 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding coding unit of picture boundary |
US9264708B2 (en) | 2009-10-30 | 2016-02-16 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding coding unit of picture boundary |
US8842925B2 (en) | 2009-10-30 | 2014-09-23 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding coding unit of picture boundary |
US8842922B2 (en) | 2009-10-30 | 2014-09-23 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding coding unit of picture boundary |
US8837840B2 (en) | 2009-10-30 | 2014-09-16 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding coding unit of picture boundary |
RU2518635C2 (en) * | 2009-10-30 | 2014-06-10 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for encoding and decoding coding unit of picture boundary |
RU2586850C2 (en) * | 2010-04-28 | 2016-06-10 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Integration of client application and web page |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US10410306B1 (en) | 2011-01-04 | 2019-09-10 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
US10158701B2 (en) | 2011-03-21 | 2018-12-18 | Calgary Scientific Inc.. | Method and system for providing a state model of an application program |
US9992253B2 (en) | 2011-08-15 | 2018-06-05 | Calgary Scientific Inc. | Non-invasive remote access to an application program |
US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
US10474514B2 (en) | 2011-08-15 | 2019-11-12 | Calgary Scientific Inc. | Method for flow control and for reliable communication in a collaborative environment |
US10693940B2 (en) | 2011-08-15 | 2020-06-23 | Calgary Scientific Inc. | Remote access to an application program |
US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9979670B2 (en) | 2013-11-29 | 2018-05-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US10728168B2 (en) | 2013-11-29 | 2020-07-28 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
Also Published As
Publication number | Publication date |
---|---|
AU2003237867A1 (en) | 2005-01-21 |
CN100442265C (en) | 2008-12-10 |
AU2003237867B2 (en) | 2009-09-17 |
WO2004107308A1 (en) | 2004-12-09 |
EP1627376A1 (en) | 2006-02-22 |
US20040225960A1 (en) | 2004-11-11 |
NO20041880L (en) | 2004-06-28 |
MXPA04004405A (en) | 2005-02-17 |
ZA200403495B (en) | 2006-05-31 |
CN1615507A (en) | 2005-05-11 |
KR20060006989A (en) | 2006-01-23 |
CA2462172A1 (en) | 2004-11-09 |
IL161285A (en) | 2009-02-11 |
NO20041880D0 (en) | 2004-05-07 |
AU2003237867B8 (en) | 2009-10-15 |
JP4277002B2 (en) | 2009-06-10 |
RU2004114219A (en) | 2005-09-20 |
BR0306159A (en) | 2005-02-09 |
KR100969720B1 (en) | 2010-07-12 |
JP2006526179A (en) | 2006-11-16 |
EP1627376A4 (en) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2305860C2 (en) | System for providing hosting to objects of graphical composition or representation | |
US8166396B2 (en) | User interface rendering | |
JP5009293B2 (en) | Web page rendering priority mechanism | |
US6801224B1 (en) | Method, system, and program for generating a graphical user interface window for an application program | |
US6795089B2 (en) | Dynamic, live surface and model elements for visualization and modeling | |
TW202141300A (en) | Page processing method, device, apparatus and storage medium | |
AU2009225393B2 (en) | File access via conduit application | |
US8890890B2 (en) | Pluggable web-based visualizations for applications | |
US20120133653A1 (en) | Lightweight three-dimensional display | |
EP1406183A2 (en) | Method and system for refreshing browser pages | |
US20050289450A1 (en) | User interface virtualization | |
US7409642B2 (en) | Method and system for applying user interface elements to data | |
US7624403B2 (en) | API for building semantically rich diagramming tools | |
US20040133595A1 (en) | Generation of persistent document object models | |
JP2007122724A (en) | Device for storing vector image together with embedded image style identifier, and method and utility for formatting device image by using image style attribute | |
US7478340B2 (en) | Systems and methods for managing preparation of graphical elements for presentation | |
NZ532169A (en) | System for hosting graphical layout/presentation objects on behalf of applications | |
US20050091594A1 (en) | Systems and methods for preparing graphical elements for presentation | |
Bray | MapGuide open source | |
Bezaire et al. | WebCGM 2.0 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20130516 |