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 PDF

Info

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
Application number
RU2004114219/09A
Other languages
Russian (ru)
Other versions
RU2004114219A (en
Inventor
Суджал С. ПАРИХ (US)
Суджал С. ПАРИХ
Дмитрий ТИТОВ (US)
Дмитрий ТИТОВ
Олег ОВЕЧКИН (US)
Олег ОВЕЧКИН
Грегори ЛЕТТ (US)
Грегори ЛЕТТ
Гжегож ЗИГМУНТ (US)
Гжегож ЗИГМУНТ
Дебби А. НЬЮМАН (US)
Дебби А. НЬЮМАН
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2004114219A publication Critical patent/RU2004114219A/en
Application granted granted Critical
Publication of RU2305860C2 publication Critical patent/RU2305860C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control 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/30Control 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

FIELD: engineering of computer components for ordering graphic elements, shown through graphic user interface.
SUBSTANCE: a system of presenting means provides base class of presenting means and a set of interface methods, realized by presentation mechanism, for creation and integration of expandable set of classes of presenting means for processing data of graphical elements of various types during composition operation in given visible image. System of presenting means allows realization of complex image composition operations through calls of presentation mechanism. Aforementioned complex image composition operations include: breaking into pages, partial computation, stepwise computation, a set of samples, alteration of capabilities/operations of composition.
EFFECT: expanded functional capabilities, due to support of compositions of visible images of application, to which a set of graphic elements is assigned.
4 cl, 15 dwg

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 presenter system 200 that supports layout / presentation of displayed objects based on a set of hierarchically ordered presenter objects associated with the visible image 202 being created, based on the visible image object class (see FIG. 8, described below) when requesting application 204 running on operating system 205.

В одном варианте изобретения каждое видимое изображение (например, видимое изображение 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 presenter system 200. The displayed content in the visible image 202 is based on graphic elements 206 in the auxiliary storage device 208. Application 204 is a source of graphic elements 206 in the auxiliary storage device 208. In FIG. 3, described below, an example is shown where the relationships between visible images, presenter systems, presenter trees for visible images, and graphical trees associated with the application are presented.

Архитектура системы управления компоновкой/представлением, изображенная на фиг. 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, application 204 calls a constructor method on the application program interface of object classes — visible images (see the structure of visible image classes in FIG. 8, described below) to create a root object for an object instance — a visible image 202. Calling a method to create a visible image 202 passes through a link to the root graphic element of the graphic elements 206 located in the auxiliary storage device 208. After creating the visible image 202, the method call DoLayout (layout) on the visible image 202 creates a presenter tree for the visible image 202 with the root presenter object corresponding to the root graphic element originally passed to the constructor method that created the visible image 202. The presenter tree (not shown in FIG. 2) for the visible image 202 contains a set of presenters who are responsible for organizing and visualizing the output for the visible image 202.

В одном варианте изобретения каждое видимое изображение (например, видимое изображение 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 presentation mechanism 212, which includes the presenters 'application programming interface (presenters' leading API). The presentation engine 212 includes an executable program for coordinating and organizing the execution of layout / presentation operations in a computer system supporting graphical output. The functions performed / coordinated by the presentation engine 212 include: creating presenter objects (both root and child versions), coordinating recalculations of presenter display states, visualization, managing presenters throughout their entire existence, monitoring “contamination”, coupling multiple presenters with one element and step-by-step layout. Examples of invoked methods on the presenter’s host API of the presentation engine 212 are described below with reference to FIG. 12. These methods are high-level queries that create and maintain a tree of presenter objects for the visible image 202. The identified tasks performed by the presentation engine 212 are given as examples, and those skilled in the art should understand that in alternative embodiments of the invention presentation engine 212 may solve additional / alternative tasks.

Механизм 212 представления строит систему 200 презентаторов для обработки объектов презентаторов, связанных с видимым изображением 202. В одном варианте изобретения система 200 презентаторов включает в себя базовый класс 216 презентаторов. Базовый класс 216 презентаторов является базовым классом с полным набором возможностей для создания подклассов презентаторов и объектов презентаторов, способных использовать функциональные возможности управления компоновкой для системы, описанной ниже. Базовый класс 216 презентаторов содержит шаблон, включающий в себя виртуальный (переопределяемый) программный код и структуры данных, из которых получают набор классов 214 презентаторов. Классы 214 презентаторов содержат набор специализированных типов презентаторов, соответствующих видимым изображениям графических элементов, имеющим конкретные свойства/режимы отображения. Созданные с учетом требований пользователя классы 214 презентаторов, полученные из базового класса 216 презентаторов, например, компонуют контент, упорядочивают дочерние презентаторы, создают визуалы для закрепленных за ними элементов, разбивают по страницам контент для типографских документов и в пошаговом режиме обновляют визуалы, включающие в себя графические элементы 206. Специализированные функциональные возможности каждого класса презентаторов в наборе классов 214 презентаторов устанавливаются путем переопределения и добавления виртуальных способов, определенных базовым классом 216 презентаторов. Объекты презентаторов, конкретизированные, исходя из набора классов 214 презентаторов, представляют и обрабатывают аспекты отображения графических элементов 206.Presentation engine 212 constructs a presenter system 200 for processing presenter objects associated with the visible image 202. In one embodiment of the invention, the presenter system 200 includes a base class 216 of presenters. The base class 216 of presenters is a base class with a full set of capabilities for creating subclasses of presenters and presenter objects that can use the layout control functionality for the system described below. The base class 216 of presenters contains a template that includes virtual (redefinable) program code and data structures from which a set of classes of 214 presenters is obtained. Classes 214 of presenters contain a set of specialized types of presenters corresponding to visible images of graphic elements having specific properties / display modes. Presenter classes 214 created for the user’s requirements, obtained from the base class of 216 presenters, for example, compose content, organize child presenters, create visuals for the elements attached to them, paginate content for printing documents and update the visuals step by step, including graphic elements 206. The specialized functionalities of each class of presenters in the set of classes of 214 presenters are established by redefining and adding to practical methods defined by the base class of 216 presenters. Presenter objects, concretized based on a set of presenter classes 214, present and process display aspects of graphic elements 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 presenter object classes 214, including both predefined presenter classes 218 and external presenter classes 220, is extensible. For a set of predefined classes of 218 presenters, a system of 200 presenters is provided. Outer classes of 220 presenter objects are typically set independently of the 200 presenter system. However, properly combining the outer classes of 210 presenter objects with the presenter system 200 is facilitated by the published interface specification for the base presenter class 216 (described below with reference to figures 4a and 4b). The developer of the external classes of 220 presenters redefines / modifies the machine code and data structures associated with the user-configured layout / visualization methods of the base class 216 of presenters to provide functions for sizing, positioning of child presenters and visualization taking into account the user's requirements. After that, a new class of presenters is installed in the set of external classes 220 of presenter objects, for example, by installing a file containing a new class of objects in the designated directory in the computer file system.

В одном варианте изобретения класс 214 презентаторов включает в себя классы презентаторов для реализации возможностей (опций) компоновки, в том числе, например: компоновку контента, упорядочивание дочерних объектов, создание визуалов, страничное разбиение контента документа и пошаговое обновление визуалов (например, страницы HTML, которые покрывают множество дисплейных экранов). Примеры специальных типов презентаторов включают в себя: текстовый презентатор, который обеспечивает измерения и отображение текста, отформатированного различными способами (например, полужирный, италик и т.д.); презентатор изображения, который обеспечивает измерения и отображение заданного изображения; и стыковочный презентатор, который разделяет на части пространство между множеством дочерних презентаторов.In one embodiment of the invention, the presenter class 214 includes presenter classes for implementing layout capabilities (options), including, for example: arranging content, arranging children, creating visuals, paginating document content, and incrementally updating visuals (e.g. HTML pages, which cover many display screens). Examples of special types of presenters include: a text presenter, which provides measurements and display of text formatted in various ways (for example, bold, Italian, etc.); image presenter, which provides measurement and display of a given image; and a docking presenter, which divides the space between multiple subsidiary presenters.

После создания системы 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 presentation engine 212 identifies the root graphic element for the visible image 202. After installation, the presentation engine 212 calls graphic elements 206 to determine the type of presenter object associated with the root graphic element for the visible images 202. After determining the type of presenter of the graphic element, the presentation engine 212 calls the method in one of the classes 214 of the objects of the presenters, with Resp presenter object type identified by the graphical elements 206 for the purpose of assignment of the root presenter object for the values of the visible image 202.

Как показано с помощью пути между классами 214 презентаторов и вспомогательным запоминающим устройством, объекты презентаторов, в том числе корневой презентатор, обращаются к графическим элементам 206 во вспомогательном запоминающем устройстве 208 для определения свойств конкретных графических элементов. Например, объект презентатора для конкретного графического элемента способен идентифицировать любые дочерние графические элементы конкретного графического элемента и тип презентатора для каждого дочернего графического элемента. Далее объект презентатора вызывает для каждого идентифицированного дочернего графического элемента собственный метод 486 (например, GetChildProxyForElement (получить дочерний посредник для элемента)) для реализации дочернего посреднического (прокси-) объекта-посредника из класса 222 дочерних посредников системы 200 презентаторов. Дочерние посреднические (прокси-) объекты являются объектами-упаковщиками (оболочкой) для объектов презентаторов, реализованных (созданных) исходя из классов 214 объектов презентаторов, которые вложены в пространство отображения, выделенное для объекта родительского презентатора. Класс 222 дочерних посредников удовлетворяет требованиям инкапсулирования и безопасности (например, объект дочернего презентатора с помощью объекта родительского презентатора или приложения 204 ограничивает доступ к контенту презентатора, содержащемуся в дочернем презентаторе). В альтернативном варианте уровень инкапсулирования, предоставляемый дочерними посредническими объектами, пропускается, и родительские презентаторы имеют непосредственный доступ к своим дочерним презентаторам.As shown by the path between the presenter classes 214 and the auxiliary storage device, presenter objects, including the root presenter, access the graphic elements 206 in the auxiliary storage device 208 to determine the properties of specific graphic elements. For example, a presenter object for a particular graphic element is able to identify any child graphic elements of a particular graphic element and the type of presenter for each child graphic element. Next, the presenter object calls its own 486 method for each identified child graphic element (for example, GetChildProxyForElement (get the child intermediary for the element)) to implement the child intermediary (proxy) intermediary object from the class of 222 child intermediaries of the system 200 presenters. Subsidiary intermediary (proxy) objects are wrapper objects (wrappers) for presenter objects implemented (created) based on classes of 214 presenter objects that are embedded in the display space allocated for the parent presenter object. The child intermediary class 222 satisfies the encapsulation and security requirements (for example, a child presenter object using the parent presenter object or application 204 restricts access to presenter content contained in the child presenter). Alternatively, the encapsulation level provided by child intermediaries is skipped, and parent presenters have direct access to their child presenters.

Метод для объекта презентатора для создания объекта дочернего посредника для одного элемента в одном варианте изобретения вызывает метод-конструктор из класса 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 class 222 of child intermediaries and passes the identity of the child graphic element to create a new child intermediary (proxy) object and the presenter object for the child graphic element. Immediately after creation (implementation), a new child intermediary object creates a presenter object for the child graphic element through the presenter constructor corresponding to the type of presenter defined on the identified child graphic element. In turn, the child intermediary object returns its own link to the parent object of the presenter. The presenter’s parent maintains the returned link of the child broker in the array of links to child brokers. As such, the entries in the array of child mediation objects for the presentation object correspond to the child graphic elements for the parent graphic element with which the parent presenter is associated.

Другим аспектом архитектуры упорядочивания/представления графических элементов, показанной на фиг.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 presenter classes 214 are provided with a set of notification handler classes 224. Classes 224 of notification handlers are defined in accordance with the base class 225 of notification handlers. The base class 225 of notification handlers is an abstract class that defines an interface for classes 224 of notification handlers. The base class 225 of notification handlers offers a definition of an interface of two virtual methods (see FIG. 6), the implementation of which is provided for in classes 224 of notification handlers according to the corresponding classes of 214 presenters. Classes 224 of notification handlers help to perform a step-by-step update of the layout, and only presenter objects that have undergone changes in the set of corresponding graphic elements are recalculated. In one embodiment of the invention, a notification handler is defined for combinations of a graphic element and a visible image. In cases where multiple presenters are created for one graphic element / visible image combination, the only notification handler acts as the only source for tracking changes in the element in order to update the set of presenters for this element in the visible image. Each type of presenter defines a specific type of notification handler. When a presenter object for an element is created, which requires a notification handler, the presenter system creates an appropriate notification handler of a given type and associates the notification handler with the presenter object.

Экземпляры классов 224 обработчиков уведомлений определяют, какие части объектов презентаторов являются «загрязненными» и, следовательно, требуют обновления. Вначале устанавливают отношения уведомления между графическим элементом и обработчиком уведомлений, созданным для презентатора в видимом изображении (например, в видимом изображении 202 для приложения 204). Обработчик уведомлений принимает уведомления об изменениях, связанные с графическим элементом во вспомогательном запоминающем устройстве 208, через механизм 212 представления в системе 200 презентаторов. Обработчик уведомлений определяет часть, если она имеется, презентатора, на которую повлияло изменение в элементе. Обработчик уведомлений возвращает информацию о части, претерпевшей изменение, в систему 200 презентаторов. Презентатор помечают как «загрязненный» с помощью механизма 212 представления. Система 200 презентаторов накапливает информацию о «загрязненных» презентаторах для всех презентаторов в структуре данных, поддерживаемой для видимого изображения (например, видимое изображение 202). Затем, в ответ на вызов для повторного расчета компоновки для видимого изображения, механизм 212 представления в системе 200 презентаторов активирует метод/операцию обновления только на «загрязненных» презентаторах. Таким образом, классы 224 обработчиков уведомлений позволяют ограничить обновления компоновки объектами презентаторов, претерпевшими изменения, которые были созданы исходя из классов 214 презентаторов.Instances of classes 224 of the notification handlers determine which parts of the objects of the presenters are “contaminated” and therefore require updating. First, a notification relationship is established between the graphic and the notification handler created for the presenter in the visible image (for example, in the visible image 202 for the application 204). The notification processor receives notification of changes associated with the graphic element in the auxiliary storage device 208, through a presentation engine 212 in the presenter system 200. The notification handler determines the part, if any, of the presenter that was affected by the change in the element. The notification processor returns information about the part that has undergone a change to the system of 200 presenters. The presenter is marked as “contaminated” by the submission engine 212. The presenter system 200 collects information about “contaminated” presenters for all presenters in the data structure supported for the visible image (eg, visible image 202). Then, in response to a call to recalculate the layout for the visible image, the presentation engine 212 in the presenter system 200 activates the update method / operation only on “dirty” presenters. Thus, classes 224 of notification handlers allow you to restrict layout updates to presenter objects that have undergone changes that were created based on classes of 214 presenters.

Архитектура системы управления компоновкой, в которой воплощено настоящее изобретение, функционирует независимо от каких-либо конкретных аппаратных средств вывода, на которых в конечном счете отображаются выложенные (отображаемые) элементы в соответствии с их определенными видимыми изображениями. Архитектура системы управления компоновкой/представлением, показанная на фиг. 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 presenter system 200, and the application 204 performs the visualization task. In one embodiment of the invention, visualization commands, if issued by objects by presenters obtained from presenter classes 214, visible image 202 or application 204, are sent to the graphics subsystem and to the drivers 234 of the graphic devices on the user's computer. The graphics subsystem and graphics device drivers 234 provide visualization commands and data to a particular selected output device, such as a monitor 236 or a printer 238.

Суммируя вышесказанное об архитектуре системы управления компоновкой/представлением, описанной выше, можно утверждать, что система 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 presenter system 200 provides a device-independent layout processing platform for applications such as application 204. Layout processing is performed by presenter objects created from classset 214 presenters led by a system of 200 presenters. The system 200 of presenters belongs to the visible image 200. The objects of the presenters correspond to specific states of the visible image / visualizations for graphic elements 206. The separation of the states of the visible image (objects of presenters) from the states of elements (graphic elements 206) allows independent designation of the set of states of the visible image / presenters for one item state. The layout is divided into visible images, such as a visible image 202, where each visible image corresponds to a display area, such as a specific rectangle on the output screen allocated to the application 204, or a document page in the output of a graphic printer. The selection of data and states of the visible image allows one element to generate many visible images of this graphic element and, therefore, allows you to display one graphic element in many views / in many ways.

Другим аспектом раскрытой здесь архитектуры системы управления компоновкой является ее высокая степень расширяемости. Расширение набора классов 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 presentation engine 212.

Вышеописанная архитектура системы управления компоновкой поддерживает множество различных расширенных возможностей обработки компоновки для приложений, визуализирующих графические выходные данные на графических пользовательских интерфейсах и принтерах. Способность разделения одного элемента (графического элемента) на множество состояний видимого изображения (презентаторы, модули представления) облегчает разбиение на страницы и разделение элементов на множество колонок (форма разбиения на страницы) в приложениях при визуализации выходных данных принтера или выходного видимого изображения документа на экране дисплея. Такие приложения включают в себя 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 presenter system 200 provide the infrastructure for restricting updates to the corresponding visible image by presenters that have been modified in the corresponding elements in the auxiliary storage device.

Следующим преимуществом приведенной в качестве примера архитектуры управления компоновкой является возможность «отделки» (украшения) состояний видимого изображения элементов, воплощенных в ранее созданных презентаторах. Это выполняется путем сцепления дополнительных презентаторов с презентатором того типа, который был задан для конкретного типа элементов. Сцепление позволяет разработчикам расширить возможности пользовательских интерфейсов и вывода документов путем добавления границ, фонов и так далее к состоянию видимого изображения, заданного конкретным типом презентатора для элемента.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 auxiliary storage device 208 according to the specified (specified) presenters. In one embodiment of the invention, the visible image is bounded by a rectangle in the output field (for example, a display screen). In addition to the rectangle and its coordinates, the visible image also defines the graphic elements and associated presenters contained in the visible image. In addition, note that in one embodiment of the invention, each visible image is associated with its own instance of the presenter system (for example, the presenter system 200a for the visible image 202a and the presenter system 200b for the visible image 202b).

Как показано на фиг.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 visible images 202a and 202b. Graphic elements (Ex) are objects of content organized by the user. Examples of elements include a button or text panel of a graphical user interface (GUI), a text editor window, a bitmap display, etc. In one embodiment of the invention, the graphic elements (Ex) in the auxiliary storage device 208 are arranged in a tree form. Each element (Ex) in the set of graphic elements 206 supported in the auxiliary storage device 208 is associated with a set of properties / placeholders (which can be defined explicitly or implicitly specified through other explicit properties / placeholders). One or more of these properties / placeholders on graphic elements specify the type of presenter that is used to layout and visualize the content of the graphic element in combination with other components of a computer system. In embodiments of the invention, concatenated presenters are defined explicitly or, in alternative embodiments, are implicitly defined through other properties defined on the element (for example, the “border” property of two pixels implies the presence of a presenter attached to the border). The types of properties defined for graphic elements depend on the particular graphic element and include color, font, name, height, width, etc.

Вспомогательное запоминающее устройство 200 потенциально связано с множеством видимых изображений (например, видимые изображения 202а и 202b). Каждое из потенциального множества видимых изображений обладает эксклюзивным набором экземпляров объектов презентаторов, соответствующих набору графических элементов во вспомогательном запоминающем устройстве 208. Таким образом, в случае, когда графический элемент представлен множеством видимых изображений, объект презентатора создается для элемента в каждом видимом изображении (например, презентатор P2 и презентатор P2' для элемента E2). Графический элемент, с которым связан презентатор, задается в поле владельца элемента, и соответствует пунктирным линиям, идущим от презентаторов к соответствующим графическим элементам. Это является просто одним примером архитектуры представления, показанной на фигурах 2 и 3, где поддерживается множество презентаторов, действующих на основе информации, предоставляемой одним графическим элементом.Auxiliary memory 200 is potentially associated with a plurality of visible images (e.g., visible images 202a and 202b). Each of the potential plurality of visible images has an exclusive set of instances of presenter objects corresponding to the set of graphic elements in auxiliary storage device 208. Thus, when a graphic element is represented by a plurality of visible images, a presenter object is created for the element in each visible image (for example, a presenter P2 and presenter P2 'for element E2). The graphic element with which the presenter is associated is set in the field of the element owner and corresponds to the dashed lines going from the presenters to the corresponding graphic elements. This is just one example of the presentation architecture shown in figures 2 and 3, where many presenters are supported, acting on the basis of information provided by a single graphic element.

Как следствие особенностей архитектуры представления, воплощающей вышеописанную способность присоединять множество видимых изображений (и презентаторов) к одной и той же совокупности графических элементов во вспомогательном запоминающем устройстве 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 auxiliary storage device 208, the graphical user interface is capable of displaying many visible images of the same information set provided by graphic elements. For example, in an application such as MICROSOFT's POWERPOINT, two visible slide images are supported simultaneously, the main visible image and a preview image (or “sketch”) for the same slide graphic element.

Способность создавать множество экземпляров объектов презентатора для одного графического элемента также облегчает разбиение одного графического элемента на множество страниц/колонок (например, текста документа) (то есть, если один графический элемент разбит на две страницы, то создают два объекта-презентатора для элемента - по одному для каждой страницы). Обратимся к фиг.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 auxiliary storage device 208, are described the relationship between the displayed objects in figure 3. As mentioned above, the visible images 202a and 202b have their own presenter systems 200a and 200b, respectively. The presenter system 200a has created and maintains a set of presenters 302 for the visible image 202a through code and a base class, including the API, into which presenter classes are written. The presenter system 200b has created and maintains a set of presenters 303 for the visible image 202b.

Как показано с помощью линий между презентаторами (Px) и графическими элементами (Ех) во вспомогательном запоминающем устройстве 208, презентаторы (Рх) связаны с соответствующими графическими элементами (Ех). Презентаторы (Рх) представляют состояния видимых изображений для соответствующих графических элементов (Ех). Графические элементы (Ех) во вспомогательном запоминающем устройстве 304 поддерживаются, например, в древовидной структуре, построенной приложением с использованием одного из множества возможных способов. Примеры таких способов включают в себя прогон файла с текстовой разметкой через синтаксический анализатор, использование кода (программы) для создания графических элементов и т.д. Древовидная структура набора презентаторов 302 строится системой 200а презентаторов в ответ на вызов конкретного метода на интерфейсе (например, DoLayout), предоставляемого его механизмом представления. Как было описано ранее со ссылками на фиг.2, узлы дерева объектов презентаторов определяются узлами дерева графических элементов, связанными с конкретным видимым изображением. Графические элементы в видимом изображении определяются корневым графическим элементом, заданным для данного видимого изображения, его дочерними элементами, «внучатыми» элементами и так далее.As shown by the lines between the presenters (Px) and the graphic elements (Ex) in the auxiliary storage device 208, the presenters (Px) are associated with the corresponding graphic elements (Ex). Presenters (Px) represent the state of visible images for the corresponding graphic elements (Ex). Graphic elements (Ex) in the auxiliary storage device 304 are supported, for example, in a tree structure constructed by the application using one of many possible ways. Examples of such methods include running a file with text markup through a parser, using code (program) to create graphic elements, etc. The tree structure of the set of presenters 302 is constructed by the presenter system 200a in response to a call to a specific method on an interface (e.g., DoLayout) provided by its presentation engine. As described previously with reference to figure 2, the nodes of the tree of objects of presenters are determined by the nodes of the tree of graphic elements associated with a particular visible image. Graphic elements in the visible image are determined by the root graphic element specified for the given visible image, its child elements, "grandchild" elements, and so on.

Набор презентаторов в видимом изображении 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 visible image 1 has a hierarchical structure. The root presenter P1 has two daughter presenters, P2 and P4 (Q4 is the presenter of the “trim” elements on the presenter P4). Presenter P2 has no subsidiary presenters. However, the presenter P4 has two subsidiary presenters P5 and P7. Presenter P5, in turn, has subsidiary presenters P8a and P8b, which are associated with one graphic element E8. Such sharing / separation of one graphic presenter between two objects of presenters occurs, for example, when the text graphic element E8 is divided between two columns of the parent text graphic element E5, which has a presenter (P5) of type TextPresenter (text presenter). Presenter P5 initiates the process of dividing into columns when he notices the properties on E5, requesting the separation of the content (E8) of the E5 element into two columns. Presenters P8a and P8b correspond to the graphic existence of parts of the graphic element E8 in two columns.

Как было отмечено ранее, один графический элемент может иметь множество связанных с ним объектов презентаторов. В качестве примера были приведены три случая. В первом сценарии, показанном с помощью множества видимых изображений 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 visible images 202a and 202b and the respective presenter systems 200a and 200b of FIG. 3, one graphic element (eg, E2) has corresponding presenters P2 and P2 'associated with the visible images 202a and 202b, respectively. Such visible images correspond, for example, to an outline image and a full-size representation of a photographic image (E2) displayed in different areas of the user interface that is generated by the application for processing photographic images. In this case, the presenters P2 and P2 'are created for the element E2 in each visible image 202a and 202b containing this element. In the second scenario, which includes many presenters for one element (for example, text element E8), the presenter elements P8a and P8b correspond to two columns in the rectangle defined by one presenter element P5. Alternatively, these cases of using multiple presenters in the visible image with links to the same graphic element occur, for example, when the parent element makes many attempts to compose the visible image and saves these attempts. In the third scenario, a presenter (for example, Q4), which depends on another presenter (for example, P4), with the opposite state of the data of the graphic element (for example, E4), is connected by a clutch to another presenter, which expands the display capabilities provided by the original presenter. An example of a clutch of presenters is a border presenter, which provides the “decoration" of the border for the main presenter.

Ранее, со ссылками на фиг. 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 visible image 202a, the child intermediary objects are represented by arrows on the lines connecting the parent presenter with its child objects presenters. Subsidiary intermediary objects restrict access from the presenter’s parent to its child presenters.

Обработчики (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 background property 400 sets the coloring value for the presenter background. The background opacity property 402 stores a value specifying the background opacity. Border property 404 stores a value that specifies the thickness of the border that defines the layout space of the presenter at the edges. The border property 404 stores, for example, four values indicating the border width for the top, bottom, right, and left sides of the rectangle selected by the presenter. The border color property 406 defines a value indicating a border color around the presenter. The border style property 408 stores a value indicating one of a set of border display styles. An example of border styles includes: solid, in-depth, ribbed, nested, and elevated.

Свойство 410 ограничивающего прямоугольника задает зону (например, прямоугольник), в которой изображаются графические элементы презентатора (или дочерние элементы). Размер по умолчанию свойства 410 ограничивающего прямоугольника совпадает с размером, заданным в поле 460 размера компоновки. Однако размер ограничивающего прямоугольника может превышать размер компоновки, что позволяет презентатору создавать изображение вне размера компоновки.The bounding box property 410 defines a zone (eg, a rectangle) in which the graphic elements of the presenter (or child elements) are displayed. The default size of the bounding box property 410 is the same as the size specified in the layout size field 460. However, the size of the bounding box may exceed the size of the layout, which allows the presenter to create an image outside the size of the layout.

С другой стороны, если свойство 414 усечения установлено равным значению «истина», то тогда презентатор (и его дочерние презентаторы) не может быть изображен вне прямоугольника, заданного полем 460 размера компоновки. Если значение свойства 414 усечения установлено равным «истина», то тогда свойство 410 ограничивающего прямоугольника не превышает размер компоновки. Это гарантирует, что изображенный презентатор не воспроизводит графические элементы вне выделенного для него пространства компоновки.On the other hand, if truncation property 414 is set to true, then the presenter (and its child presenters) cannot be displayed outside the rectangle specified by the layout size field 460. If the value of truncation property 414 is set to true, then the bounding box property 410 does not exceed the layout size. This ensures that the depicted presenter does not reproduce graphic elements outside the layout space allocated to it.

Свойство 412 дочерних элементов представляет собой массив или, в альтернативном варианте, любую другую подходящую многоэлементную структуру данных, где хранятся ссылки (например, метки, указатели, прямые/косвенные и т.д.) на дочерние презентаторы, вложенные в родительский презентатор, и их преобразованные местоположения в пространстве компоновки родительского презентатора. Свойство 412 дочерних элементов находится на презентаторе при первом использовании в контексте вызова метода OnUpdate (обновление), который описан ниже. Термин «при первом использовании» относится к случаю, когда родительский презентатор последовательно запрашивает набор дочерних элементов, а набор дочерних элементов располагается вместе с презентаторами, соответствующими дочерним графическим элементам графического элемента, который соответствует родительскому презентатору, из дерева графических элементов, во вспомогательном запоминающем устройстве (например, во вспомогательном запоминающем устройстве 208). Свойство 412 дочерних элементов облегчает установление/поддержание иерархии, отражающей вложенные взаимосвязи с презентаторами в видимом изображении. В одном варианте изобретения записи массива имеют ссылки на дочерние посреднические объекты. Дочерние посреднические объекты являются объектами-«оболочками» для дочерних объектов презентаторов, которые вложены в пространство отображения, выделенное для родительского объекта презентатора. «Оболочка» дочернего посреднического объекта удовлетворяет требованиям инкапсулирования и безопасности (например, дочерний презентатор ограничивает доступ к своему контенту со стороны родительского презентатора).The property 412 of the child elements is an array or, alternatively, any other suitable multi-element data structure where references (for example, labels, pointers, direct / indirect, etc.) to the child presenters embedded in the parent presenter are stored, and their Transformed locations in the layout space of the parent presenter. The property 412 of the child elements is on the presenter when it is first used in the context of calling the OnUpdate (update) method, which is described below. The term "for first use" refers to the case when the parent presenter sequentially requests a set of children, and the set of children is located along with presenters corresponding to the child graphic elements of the graphic element that corresponds to the parent presenter from the tree of graphic elements in the auxiliary storage device ( for example, in auxiliary storage 208). The property 412 of child elements facilitates the establishment / maintenance of a hierarchy reflecting nested relationships with presenters in the visible image. In one embodiment of the invention, array entries have references to child intermediary objects. Child intermediary objects are wrapper objects for child presenter objects that are nested in the display space allocated to the presenter's parent object. The “shell” of the child intermediary object meets the encapsulation and security requirements (for example, the child presenter restricts access to the content from the parent presenter).

Свойство 414 усечения, как описано выше, устанавливает, будет ли ограничен контент презентатора путем усечения до размера компоновки презентатора, заданного полем 460 размера презентатора.The truncation property 414, as described above, determines whether the presenter content will be limited by truncating to the presenter layout size specified by the presenter size field 460.

Набор свойств обозначает пространство, выделенное контенту в пространстве презентатора. Вдобавок к свойству 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 border property 404, the padding property 416 sets the amount of space within the border that remains unallocated content. The content height property 418 sets a value indicating the height of the content in the presenter — the height of the part of the presenter that remains after taking into account the values specified in the border property 404 and the padding property 416. The content width property 420 sets a value indicating the width allocated to the content in the presenter, taking into account the parameters of the border property 404 and the padding property 416. The combination of the content height property 418 and the content width property 420 defines a presenter zone that content in the presenter potentially occupies.

Свойство 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 maximum width property 430 and the minimum width property 432 set boundaries for the value assigned to the width property 424.

Еще одним размерным свойством для презентаторов является свойство 434 полей (страницы). Свойство 434 полей задает буферное пространство вне границы презентатора. Свойство 434 полей задается дочерним презентатором и доступно его родительскому презентатору при упорядочивании компоновки с иерархической структурой из вложенных презентаторов.Another dimensional property for presenters is the property of 434 fields (pages). Property 434 fields sets the buffer space outside the border of the presenter. The 434 field property is set by the child presenter and is available to its parent presenter when ordering the layout with a hierarchical structure from nested presenters.

Свойство 436 видимости задает состояние видимости презентатора. Свойство 436 видимости связано с определением того, каким образом визуализируется графическое изображение, соответствующее презентатору и его дочерним презентаторам (или с определением того, визуализируется ли в принципе это графическое изображение). В одном варианте изобретения потенциальные состояния видимости включают в себя: видимое, сжатое и скрытое.Property 436 visibility sets the visibility state of the presenter. The visibility property 436 is related to the determination of how the graphic image corresponding to the presenter and its child presenters is visualized (or to the determination of whether this graphic image is in principle visualized). In one embodiment of the invention, potential visibility states include: visible, compressed, and hidden.

Ряд свойств презентаторов используют для связывания презентаторов с другими объектами в системе управления компоновкой/представлением. Свойство 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. Presenter property 438 specifies the type of presenter that is used to compose and render the graphic item. The presenter type is initially set on the graphic element, and the presenter system 200 reads the presenter property 438 from the graphic element and creates a presenter object corresponding to the presenter type identified by the presenter property 438. The presenter property 408 is passed to the create block, which in turn creates an instance of the presenter of the identified type. The 440 IsMainPresenter property determines whether the presenter is the only presenter or the main (for example, the last) in the set of concatenated presenters associated with the graphic object. Refer to figure 3, where the presenter P4 is the main presenter for the chain, including B4 and P4. In one embodiment of the invention, the IsMainPresenter property 440 is a property of the Boolean (logical) type.

Свойство 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 layout context property 444 sets a global context that facilitates messaging between presenters during the layout process. The values stored in property 444 of the layout context allow presenters to send messages regardless of the system of 200 presenters. The notification handler property 446 sets a reference to the notification handler for this presenter. The notification handler type property 448 specifies the type of the notification handler referenced by the notification handler property 446.

Свойство 450 «загрязненности» определяет, был ли изменен конкретный презентатор и, следовательно, требуется ли операция обновления. Система 200 презентаторов и соответствующие компоненты архитектуры управления компоновкой поддерживают пошаговую обработку компоновки. Свойство 450 «загрязненности», поддерживаемое каждым презентатором, указывает отдельно по каждому презентатору, требуется ли его обновление.The “pollution” property 450 determines whether a particular presenter has been changed and, therefore, whether an update operation is required. The presenter system 200 and related components of the layout management architecture support step-by-step layout processing. The “pollution” property 450, supported by each presenter, indicates separately for each presenter whether updating is required.

На фиг. 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 presentation engine 212 for the presenter system 200), in turn, notifies the respective notification handlers 224. Thus, in the case of the property, the change notification is received through one of the above notification handlers. On the other hand, the auxiliary storage device 208 does not control the fields (instead, the fields are controlled, for example, by CLR). Therefore, when a field is changed, no notification of changes is sent to the presentation engine.

Поле 460 размера компоновки поддерживает размеры пространства компоновки, выделенного презентатору. Поле 460 размера компоновки используют для упорядочивания соседних презентаторов в компоновке страничного/пользовательского интерфейса. Поле 462 воздействия на компоновку представляет собой набор свойств (например, граница, заполнение и т.д.) презентатора, которые при их изменении влияют на компоновку презентатора. Поле 464 воздействия на компоновку для родительского презентатора представляет набор свойств (например, поля, видимость и т.д.) презентатора, который при изменении элемента (например, элемент А), «загрязняет» (то есть потенциально воздействует на) компоновку первого родительского презентатора для элемента (элемент А), имеющего заданный презентатор. Поле 466 визуализации эффектов является механизмом уведомления, который инициирует аннулирование и повторную визуализацию презентатора.The layout size field 460 maintains the dimensions of the layout space allocated to the presenter. The layout size field 460 is used to arrange adjacent presenters in the page / user interface layout. The layout impact field 462 is a set of properties (for example, border, padding, etc.) of the presenter that, when changed, affect the layout of the presenter. The layout impact field 464 for the parent presenter represents the set of properties (for example, fields, visibility, etc.) of the presenter, which, when the element (for example, element A) changes, “pollutes” (that is, potentially affects) the layout of the first parent presenter for an element (element A) having a given presenter. The effect visualization field 466 is a notification mechanism that initiates cancellation and re-rendering of the presenter.

Обратимся теперь к методам базового класса 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 OnUpdate method 470 measures and positions tasks on a presenter for one item. The authors of presenters rewrite the base class version of the OnUpdate method 470 to create / provide a mode for setting dimensions / positioning of the layout according to the user's requirements for the corresponding visible image of the element.

Первым действием по умолчанию при использовании метода 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. Method 470 OnUpdate gets the dimensions of the presenter in the received BoxSizeInfo parameter (information about the size of the rectangle). The OnUpdate method 470 sets the sizes specified in the layout size field 460 according to the BoxSizeInfo settings, the default width property 428, and the default height property 426. Additional sources of size / positioning information for the presenter are an integral part of the disclosed presenter-based layout / presentation processing architecture, these sources being used in alternative embodiments of the invention.

Второй задачей по умолчанию при использовании метода 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 OnUpdate method 470 for child presenters end when no additional child presenters are specified in the presenter. In addition to registering the size in the layout size field 460 and iteratively calling / positioning the child presenters, the OnUpdate method 470 returns a value to the caller indicating whether rendering is required, taking into account the call to the 470 OnUpdate method.

Метод 471 регистрации «атомов» регистрирует имя строки для презентатора для контекста 444 компоновки, а также любые другие подходящие списки презентаторов, включая те, которые поддерживаются расширениями к презентаторам. Метод 471 регистрации «атомов» вызывается, например, для установления связи с другим презентаторским объектом нестандартным образом (например, методом, не поддерживаемым в данный момент прикладным программным интерфейсом презентаторов). Презентаторы регистрируют «атом», а затем устанавливают объект, с которым они хотят установить связь, используя этот «атом». Например, дочерний презентатор хочет передать источник текста родительскому презентатору. Дочерний презентатор регистрирует «атом» с меткой/ярлыком «Descent» (происхождение) и принимает идентификационные данные для этого «атома». Дочерний презентатор вычисляет «источник» и устанавливает значение в атоме с использованием идентификационных данных. Затем родительский презентатор использует идентификационные данные (которые также получены путем регистрации «Descent») для извлечения хранящейся информации.The atomic registration method 471 registers the presenter string name for layout context 444, as well as any other suitable presenter lists, including those supported by presenter extensions. Method 471 for registering “atoms” is called, for example, to establish a connection with another presentation object in a non-standard way (for example, by a method that is not currently supported by the presenters application programming interface). Presenters register an “atom,” and then set up the object with which they want to communicate using this “atom." For example, a child presenter wants to pass the source of the text to the parent presenter. The child presenter registers the “atom” with the “Descent” label / tag (origin) and accepts the identification data for that “atom”. The child presenter calculates the “source” and sets the value in the atom using the credentials. The parent presenter then uses the credentials (which are also obtained by registering Descent) to retrieve the stored information.

Метод 472 OnUpdateBoundingBox (обновление ограничивающего прямоугольника) создает свойство 410 обновленного ограничивающего прямоугольника для презентатора. Метод 472 OnUpdateBoundingBox вызывается тогда, когда метод 470 OnUpdate возвращает значение (например, «истина», указывающее на то, что необходима повторная визуализация). Реализация по умолчанию метода 472 OnUpdateBoundingBox, предусмотренного в базовом классе презентаторов, сканирует дочерние презентаторы, идентифицированные в свойстве 412 дочерних презентаторов для данного презентатора, и объединяет (то есть выполняет математическое объединение прямоугольников) преобразованные свойства дочернего ограничивающего прямоугольника с размерами презентатора, хранящимися в поле 460 размера компоновки. Реализация базового класса для метода 472 OnUpdateBoundingBox также обращается к свойству 414 усечения, и если его значение равно «истина», то ограничивающие прямоугольники дочерних презентаторов игнорируются. Вместо этого дочерние презентаторы будут усечены до размеров, указанных в поле 460 размера компоновки для их родительского презентатора. Презентаторы, изображение которых выходит за рамки поля 460 размера компоновки, вызывают перезапись упомянутого метода. Такие классы презентаторов, настроенные в соответствии с требованиями пользователя, вызывают базовый презентаторский класс и добавляют дополнительную «красочную зону» в их программу перезаписи. В одном варианте изобретения презентаторам предоставлена возможность оценки «красочной зоны» на предмет того, больше ли она, чем это требуется в действительности. Если зона 410 свойства ограничивающего прямоугольника меньше, чем зона, необходимая для начертания презентатора, то тогда рисунок усекается на основе размеров свойства 410 ограничивающего прямоугольника, заданных для презентатора.Method 472 OnUpdateBoundingBox (updating the bounding box) creates property 410 of the updated bounding box for the presenter. The OnUpdateBoundingBox method 472 is called when the OnUpdate method 470 returns a value (for example, true, indicating that re-rendering is necessary). The default implementation of the 472 OnUpdateBoundingBox method provided in the base class of presenters scans the child presenters identified in the property 412 of the child presenters for this presenter and combines (that is, performs mathematical union of the rectangles) the transformed properties of the child bounding rectangle with the presenter sizes stored in field 460 layout size. The base class implementation for the OnUpdateBoundingBox method 472 also accesses the truncation property 414, and if its value is true, then the bounding boxes of the child presenters are ignored. Instead, child presenters will be truncated to the sizes specified in the layout size field 460 for their parent presenter. Presenters whose image extends beyond the layout size field 460 cause a rewrite of the method. These presenter classes, customized to the user's requirements, invoke the base presenter class and add an extra “colorful zone” to their rewriting program. In one embodiment of the invention, the presenters are given the opportunity to evaluate the "colorful zone" for whether it is larger than what is actually required. If the bounding rectangle property zone 410 is smaller than the region necessary to draw the presenter, then the pattern is truncated based on the bounding box property 410 dimensions specified for the presenter.

Метод 474 OnRender вызывается для презентаторов, которые запрашивают/требуют повторную визуализацию. Метод 474 OnRender является первоочередным вызовом для презентатора для повторной визуализации презентатора и любого из его дочерних презентаторов. Метод 474 OnRender предпочтительно вызывается после того, как вызван метод 470 OnUpdate на всех «загрязненных» презентаторах в компоновке (например, сцена). В одном варианте изобретения метод 474 OnRender вызывают из презентаторских объектов на основе анализа того, обеспечил ли вызов метода 470 OnUpdate для объекта/презентатора возвратную индикацию о том, что презентатор запрашивает повторную визуализацию. В одном варианте изобретения метод 474 OnRender базового класса выполняет для презентатора операции упорядочивания представления/компоновки независимо от конкретного устройства. Другие компоненты, в том числе подсистема графики и драйверы 234 графических устройств, визуализируют видимое изображение презентатора в формате, привязанном к конкретному устройству. Производные варианты метода 474 OnRender, учитывающие требования пользователя, включают в себя обращения к компонентам компьютерной системы, формирующим графические элементы, для визуализации выходных данных документного/пользовательского интерфейса.Method 474 OnRender is called for presenters who request / require re-rendering. Method 474 OnRender is the primary call for the presenter to re-render the presenter and any of its child presenters. The OnRender method 474 is preferably called after the OnUpdate method 470 is called on all “dirty” presenters in the layout (for example, a scene). In one embodiment of the invention, the OnRender method 474 is called from the presentation objects based on an analysis of whether the OnUpdate method call 470 provided the object / presenter with a return indication that the presenter is requesting a re-rendering. In one embodiment of the invention, the base class OnRender method 474 performs presentation / layout ordering operations for the presenter, regardless of the particular device. Other components, including the graphics subsystem and drivers of 234 graphic devices, render the visible image of the presenter in a format associated with a specific device. Derived variants of the OnRender method 474, taking into account user requirements, include calls to the components of the computer system that form the graphic elements to visualize the output of the document / user interface.

В одном варианте изобретения версия базового класса для метода 474 OnRender визуализирует контент презентатора, включая любые дочерние элементы, на трех этапах обработки компоновки. На этапе OnRenderBeforeChildren (визуализация до дочерних презентаторов) объект презентатора вызывает операции, предназначенные для обработки, до обработки какого-либо из его дочерних презентаторов. В одном варианте изобретения реализация базового класса для метода 474 OnRender предоставляет подключение (ловушку) для настройки и не задает какие-либо операции предобработки на этапе OnRenderBeforeChildren. Однако приведенная в качестве примера настраиваемая замена этого режима по умолчанию, учитывающая конкретные требования пользователя, устанавливает/изображает пользовательский фон для зоны отображения презентатора.In one embodiment of the invention, the base class version for the OnRender method 474 renders presenter content, including any children, in three stages of layout processing. At the OnRenderBeforeChildren stage (visualization to child presenters), the presenter object invokes operations to be processed before any of its child presenters is processed. In one embodiment of the invention, the base class implementation for the OnRender method 474 provides a connection (trap) for configuration and does not specify any preprocessing operations at the OnRenderBeforeChildren stage. However, an example of a customizable default replacement for this mode, taking into account the specific requirements of the user, sets / displays the user background for the display zone of the presenter.

Версия базового класса метода 474 OnRender на этапе визуализации дочерних презентаторов обращается к дочерним презентаторам, идентифицированным в свойстве 412 дочерних презентаторов. Метод 474 OnRender вызывается, в свою очередь, для каждого из дочерних презентаторов (для расширения запрашиваемого дочернего презентатора, когда реализован метод 470 OnUpdate). Таким образом, вызов высокого уровня метода 474 OnRender распространяется последовательно на дочерние презентаторы и на их потомки, пока не будет достигнут низ дерева (то есть презентатор, не имеющий дочерних презентаторов). После завершения вызова высокого уровня все дочерние презентаторы в дереве, которые запрашивали повторную визуализацию, окажутся вновь визуализированными.The base class version of the OnRender method 474, at the stage of visualization of child presenters, refers to the child presenters identified in the property of 412 child presenters. The OnRender method 474 is called, in turn, for each of the child presenters (to extend the requested child presenter when the OnUpdate method 470 is implemented). Thus, a high-level call to method 474 OnRender is distributed sequentially to child presenters and their descendants until the bottom of the tree is reached (that is, a presenter that does not have child presenters). After the high-level call completes, all child presenters in the tree that requested re-rendering will be rendered again.

На этапе 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 property 412 of child presenters. The base class version of the 474 method OnRender provides a trap (connection) for customization in accordance with the requirements of a specific user and does not specify any post-processing operations at the OnRenderAfterChildren stage. However, examples of this setting include annotations, trim elements, etc.

Если презентатор не визуализирует повторно какие-либо объекты, отличные от дочерних презентаторов, то тогда нет необходимости переписывать версию базового класса метода 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. Method 476 OnHitTestDetail (match checking details) returns data stored in the HitTestDetail structure for the presenter. A presenter class customized according to user requirements rewrites the base class implementation for the OnHitTestDetail method 476 to be placed in the HitTestDetail structure to enable the presenter to return data other than the matching element and presenter, thereby providing, for example, more detailed information related to the presenter, such as the part of the presenter that really hit the specified point (for example, the position of the character relative to the text).

Метод 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 визуала выдаются несколько вызовов, например, для визуализации текста, изображений, видео и т.д.Hit Test Method 480 initiates a hit test on a subtree whose root is the given presenter. Coordinates of the point (in the local coordinates of the presenter) where the hit test should be performed are passed to the hit verification method 480. The hit test method 480 returns hit test data containing the hit test results for the designated point and presenter. The result contains all the visuals at which the specified point falls. A visual is a basic object (for example, a line), on the basis of which the presenter creates a displayed image. A visual is a graphic object with the ability to actually draw an image at the output of a graphic display. When calling the presenter's OnRender method for the visual API, several calls are issued, for example, to render text, images, videos, etc.

Метод 482 OnGetBypassList (получение списка обходов) предоставляет список дочерних презентаторов, вычисленных ранее для идентифицированного презентатора. Этот список дочерних презентаторов облегчает обход дочерних презентаторов в ходе вычисления компоновки (например, путем сравнения нового дочернего презентатора компоновки с ранее вычисленными дочерними презентаторами компоновки и повторного использования ранее вычисленного презентатора, если имеется совпадение с одним из презентаторов в списке). Если презентатор раскрывает свои дочерние презентаторы путем обращения к набору свойства 412 дочерних презентаторов, он не должен подменять данный метод. Однако, если презентатор использует описанный ниже метод 486 GetChildProxyForElement (получение дочернего посреднического презентатора для элемента), то метод 482 OnGetBypassList обычно подменяют.Method 482 OnGetBypassList (getting a list of crawls) provides a list of child presenters calculated previously for the identified presenter. This list of child presenters makes it easier to bypass child presenters during layout calculations (for example, by comparing a new layout child presenter with previously calculated layout children presenters and reusing the previously calculated presenter if there is a match with one of the presenters on the list). If a presenter expands his child presenters by accessing the property set of 412 child presenters, he should not replace this method. However, if the presenter uses the 486 GetChildProxyForElement method described below (getting the child mediation presenter for the item), then the OnGetBypassList method 482 is usually overwritten.

При использовании системы компоновки, воплощающей настоящее изобретение, в случае вызова метода 486 GetChildProxyForElement перед методом 470 OnUpdate вызывается метод 482 OnGetBypassList, и объект презентатора создает и заполняет список-массив дочерними посредническими объектами (описанными ниже со ссылками на фиг.5), которые он кэшировал из предыдущего вычисления компоновки. Если объект презентатора не имеет кэш для хранения повторно вычисленных дочерних посреднических объектов, то все дочерние презентаторы объекта презентатора вычисляют повторно для каждого вызова метода 470 OnUpdate для презентатора.When using the layout system embodying the present invention, if the GetChildProxyForElement method 486 is called before the OnUpdate method 470, the OnGetBypassList method 482 is called and the presenter object creates and populates the array list with child intermediaries (described below with reference to FIG. 5) that it cached from the previous layout calculation. If the presenter object does not have a cache for storing recalculated child intermediary objects, then all child presenters of the presenter object are recalculated for each call to the OnUpdate method 470 for the presenter.

Метод 484 вычисления границ вычисляет и возвращает границы подграфа, имеющего в качестве корня идентифицированный визуал.Boundary calculation method 484 computes and returns the boundaries of a subgraph that has an identified visual as a root.

Как было объяснено выше, дочерний посреднический объект является объектом-«оболочкой», который действует в качестве посредника между родительским презентатором и дочерним презентатором для конкретного графического элемента. К дочерним посредническим объектам для дочерних презентаторов конкретного объекта презентатора обращаются как к набору в свойстве 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 property 412 of child presenters for the presenter object. The GetChildProxyForElement method 486 is a method for the parent presenter object that creates the child proxy and presenter object for the specified element. The method returns null if the specified element does not have a presenter.

Метод 488 OnBeforeBypass вызывается, когда система 200 презентаторов хочет «обойти» конкретный презентатор (то есть пропустить вызов метода 470 OnUpdate презентатора). Такой обход имеет место, например, тогда, когда презентатор не «загрязнен», и размерные параметры (BoxSizeInfo) (информация о размерах прямоугольника) презентатора, введенные по вызову метода 470 OnUpdate, не изменились с момента последнего вызова метода 470 OnUpdate для данного презентатора. Метод 488 OnBeforeBypass является механизмом, который повышает эффективность функционирования, позволяя презентаторам, которые имеют свой собственный пользовательский набор дочерних посреднических объектов (которые используют метод 486 GetChildProxyForElement), повторно использовать дочерние посреднические объекты своих дочерних презентаторов при выполнении обновления компоновки (например, когда изменению подвергнута только малая часть компоновки).The OnBeforeBypass method 488 is called when the presenter system 200 wants to “bypass” a particular presenter (that is, skip calling the presenter's OnUpdate method 470). Such a bypass occurs, for example, when the presenter is not “dirty”, and the dimension parameters (BoxSizeInfo) (information about the rectangle sizes) of the presenter entered by calling the 470 OnUpdate method have not changed since the last call of the 470 OnUpdate method for this presenter. The OnBeforeBypass method 488 is a mechanism that improves performance by allowing presenters who have their own custom set of child proxies (who use the GetChildProxyForElement method 486) to reuse their child presenters child proxies when performing a layout update (for example, when only small part of the layout).

Метод 490 OnDisconnectChildren (отсоединение дочерних презентаторов) удаляет все дочерние объекты презентаторов из набора дочерних презентаторов, определенных в свойстве 412 дочерних презентаторов для заданного презентатора. Если свойство 412 по умолчанию для дочерних презентаторов подменено для класса презентаторов, полученного из базового класса 216 презентаторов, то тогда метод 490 OnDisconnectChildren также подменяется, чтобы обеспечить правильное расположение дочерних презентаторов.The OnDisconnectChildren method 490 removes all of the presenter children from the set of child presenters defined in property 412 of the child presenters for the specified presenter. If the default property 412 for child presenters is overridden for the presenter class derived from the base class 216 presenters, then the OnDisconnectChildren method 490 is also overridden to ensure that the right presenters are located.

Проход 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. Method 492 OnMinWidth (state of minimum width) is called after passing (viewing) Min / Max. Method 492 OnMinWidth calls the MinWidth value, which is a by-product of the calculation of MaxWidth. The base class version for the OnMinWidth method 492 displays the message “I don't care”, which initiates a calculation run with ProposedSize (suggested size) = (0, infinity) and both directions “NotFixed” (not fixed).

Метод 494 презентатора является методом конструирования для экземпляра презентатора. Метод 494 презентатора не имеет параметров. Метод 494 презентатора инициируется тогда, когда система 200 презентаторов конкретизирует данный презентатор. Метод 494 презентатора устанавливает экземпляр презентатора, позволяя инициировать другие методы (например, OnUpdate) на презентаторе.Presenter method 494 is the design method for the presenter instance. Presenter method 494 has no parameters. The presenter method 494 is initiated when the presenter system 200 instantiates the given presenter. The presenter method 494 sets up the presenter instance, allowing other methods (such as OnUpdate) to be initiated on the presenter.

Метод 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 presenter system 200 calls the OnLayoutTask method 604 (launching the build task), which is described below, in the notification handler for this presenter.

Метод 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 base class 216 of presenters, we turn to FIG. 5, which provides a summary of the properties and methods of an exemplary embodiment of a child mediation class 222. As explained previously, in one embodiment of the invention, child mediators are wrappers for presenter objects that are children of the presenter’s parent object, and these child mediators support limited access from the parent to the resources of the presenters' child objects. All data transfers (requests / responses) between the parent of the presenter and the child of the presenter are sent through a child intermediary for this child presenter. The child intermediary maintains a reference to the child presenter and routes calls / requests from the parent presenter to the child presenter.

В одном варианте системы 200 презентаторов класс 222 дочерних посредников включает в себя свойство 500 владельца элемента, которое указывает элемент в графических элементах 206, с которым связан презентатор дочернего посредника, с которым связана ссылка.In one embodiment of the presenter system 200, the child proxy class 222 includes an item owner property 500 that indicates the item in graphic elements 206 that the presenter of the child proxy with which the link is associated with is associated.

Свойство 502 преобразования позиционирует дочерний объект презентатора (и связанные с ним визуалы) внутри его родительского объекта презентатора. Преобразование реализуется через стандартную графическую матрицу преобразования 3х3 в базовом классе визуальных объектов. Когда матрица преобразования установлена, объект визуала, связанный с графическим элементом презентатора, помещает свой дочерний презентатор со смещением, заданным матрицей преобразования.The transform property 502 positions the child object of the presenter (and its associated visuals) inside its parent object of the presenter. The transformation is implemented through a standard 3x3 graphic transformation matrix in the base class of visual objects. When the transformation matrix is set, the visual object associated with the graphic element of the presenter places its child presenter with the offset specified by the transformation matrix.

Свойство 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” property 506 sets the “pollution” state of the presenter of the subsidiary intermediary. In one version of the system of 200 presenters, the state of “pollution” is one of: clean, “witness of pollution” (dirty bystander) or “polluted”. A “clean” state indicates that there have been no changes to the child presenter in the child presenter since the last update of the visible image. A “dirty” state indicates that a change in the child presenter has occurred since the last update of the visible image. The state “witness of pollution” indicates that at least one of the descendants of the daughter presenter is “polluted”, but the daughter presenter is not polluted. These states allow parent presenters to optimize update operations.

Метод 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 OnUpdate method 470 on the child presenter. The parent presenter invokes the 520 Update method on the child broker when the parent presenter performs a search to calculate the layout of the child presenter. Calling the 520 Update method includes two forwarded parameters. The information about the size of the rectangle sets the dimensions of the rectangle in which the layout should be calculated by the child presenter, and if pagination is activated, the parent presenter passes the page information in the page descriptor parameter (see Fig. 10, which is described below). Thus, the 520 Update method provides a layer between the caller and the child presenter that allows you to screen / filter these requests to the child presenter. The 520 Update method provides a mechanism to bypass calls typically routed to the OnUpdate method on a child presenter. For example, a call to the 520 Update method is initiated in cases where the child presenter has not been changed and the input parameters (information about the size of the rectangle and page description) have not been changed.

Метод 530 присоединения, выдаваемый родительским презентатором дочернему посреднику, вызывает команду OnRender для дочернего презентатора, связанного с дочерним посредником.The join method 530 issued by the parent presenter to the child broker invokes the OnRender command for the child presenter associated with the child broker.

Метод 540 значения запроса предоставляет значение презентатора, соответствующее вычисленному типу (свойству) значения, идентифицированному в вызове метода. Вызов метода 540 значения запроса делегируется соответствующему методу 498 OnQueryValue на дочернем объекте презентатора.The request value method 540 provides a presenter value corresponding to the computed type (property) of the value identified in the method call. A call to method 540 of the query value is delegated to the corresponding method 498 OnQueryValue on the child of the presenter.

Метод 550 запроса размера компоновки предоставляет вычисленные размерные параметры компоновки. Вызов метода 550 запроса размера компоновки делегируется соответствующему методу 496 OnQueryValue на дочернем объекте презентатора. Метод 560 вычисления MinMax предоставляет минимальное и максимальное значения ширины дочернего презентатора.Layout size query method 550 provides calculated layout dimensions. A call to the layout size request method 550 is delegated to the corresponding OnQueryValue method 496 on the presenter's child. The MinMax calculation method 560 provides the minimum and maximum widths of the child presenter.

Обратимся к фиг. 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 OnNotify method 600 potentially includes additional derivative notification tasks formulated according to the user's requirements (by substituting the default action, which is to provide the value of the “pollution” property), which are performed in response to receiving the notification. The OnNotify method 600, as an input parameter, receives information about the change, as a result of which a notification was sent. The OnNotify method returns a Boolean value indicating whether the notification handler can handle the change itself (or indicating whether the notification handler for the ancestor presenter in the presenters tree must be notified for the visible image). The method also returns the value of “contamination”, indicating whether the presenter is “clean”, “contaminated” or refers to a condition called “evidence of contamination”.

Метод 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 presenter system 200 further includes a notification handler node class. The notification processor node class is a node object that is passed to the notification processor object, which allows the notification processor to call the notification services supported by the system of 200 presenters.

Класс узла обработчика уведомлений включает в себя свойство 700 владельца элемента, задающее объект-графический элемент, с которым связан объект-узел обработчиков уведомлений.The notification handler node class includes an item owner property 700 defining a graphic item to which the notification handler node object is associated.

Метод 702 регистрации «атома» регистрирует предоставленное имя строки в контексте 444 компоновки для обработчика уведомлений. Функциональные возможности метода 702 регистрации «атома» аналогичны методу 471 регистрации «атома», описанному выше со ссылками на базовый класс презентаторов. Таким образом, метод 702 регистрации «атома» является средством для передачи запросов от обработчика уведомлений к другим объектам (например, объекты презентаторов).The atom registration method 702 registers the provided string name in the layout context 444 for the notification handler. The functionality of the “atom” registration method 702 is similar to the “atom” registration method 471 described above with reference to the base class of presenters. Thus, the “atom” registration method 702 is a means for transmitting requests from the notification handler to other objects (eg, presenter objects).

Метод 704 создания уведомлений создает новый объект-уведомление презентатора и использует эти поля на основе переданных параметров. Переданные параметры включают в себя идентификационные данные о типе «атома» (указывающие тип объекта-уведомления презентатора) и данные уведомления.The notification creation method 704 creates a new presenter notification object and uses these fields based on the passed parameters. The transmitted parameters include identification information about the type of "atom" (indicating the type of the object-notification of the presenter) and notification data.

Метод 706 уведомления «потомков» вызывает метод 600 OnNotify для обработчиков уведомлений, связанных с потомками презентатора, к которым привязан узел обработчика уведомлений, для пересылки заданного уведомления презентатора. Метод 706 уведомления «потомков» выполняет функцию уведомления презентаторов-потомков о любых изменениях в родительском презентаторе (например, повторное задание размеров). Аналогичным образом метод 708 уведомления «предков» вызывает метод 600 OnNotify для обработчиков уведомлений, связанных с «предками» презентатора, к которым привязан узел обработчиков уведомлений, для пересылки заданного уведомления для презентатора. «Предки» определяются путем обхода дерева графических элементов (смотри фиг. 3) во вспомогательном запоминающем устройстве 208. Графические элементы, представленные во вспомогательном запоминающем устройстве, включают в себя свойство, которое задает «родителя» (промежуточный предок) графического элемента. Метод 710 «уведомления всех» вызывает метод 600 OnNotify в объектах-обработчиках уведомлений для всех презентаторов в дереве презентаторов, принадлежащем видимому изображению, для пересылки заданного уведомления. Наконец, метод 712 «самоуведомления» обеспечивает для презентатора средство вызова метода 600 OnNotify для того, чтобы отметить собственную «загрязненность».The “descendants” notification method 706 calls the OnNotify method 600 for notification handlers associated with the presenter descendants to which the notification handler node is bound to forward the specified presenter notification. The descendant notification method 706 performs the function of notifying descendant presenters of any changes in the parent presenter (eg, re-sizing). Similarly, the ancestor notification method 708 calls the OnNotify method 600 for notification handlers associated with the presenter ancestors to which the notification handler node is bound to forward the specified notification to the presenter. “Ancestors” are determined by traversing the tree of graphic elements (see FIG. 3) in the auxiliary storage device 208. The graphic elements presented in the auxiliary storage device include a property that defines the “parent” (intermediate ancestor) of the graphic element. The “notify everyone” method 710 calls the OnNotify method 600 in the notification handler objects for all presenters in the presenters tree belonging to the visible image to forward the specified notification. Finally, the “self-notification” method 712 provides a means for the presenter to invoke the OnNotify method 600 in order to mark its own “contamination”.

Обратимся к фиг. 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. Method 800 for the visible image is a constructor method that is used to create a new visible image object. The visible image takes as a passed parameter a link to the element, which is the root graphic element of the visible image. The 802 RootElement property (root element) returns a reference to the root graphic element for the visible image (which was set using the above method 800 for the visible image).

Метод 804 DoLayout создает новое дерево презентаторов для видимого изображения и возвращает ссылку на новое дерево. Метод 804 DoLayout принимает в качестве входных параметров предложенные высоту и ширину для прямоугольника видимого изображения, а также два булевых значения (фиксированная ширина и фиксированная высота), которые устанавливают, могут ли предложенные размеры измениться во время выполнения метода 804 DoLayout.DoLayout method 804 creates a new presenter tree for the visible image and returns a link to the new tree. The DoLayout method 804 accepts the proposed height and width for the rectangle of the visible image as input, as well as two Boolean values (fixed width and fixed height) that determine whether the proposed sizes can change during the execution of the 804 DoLayout method.

Свойство 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 ViewSize property 806 represents the initial size from which the layout operation is performed.

Метод 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 GetViewResult method 808 returns the resulting visible image for the graphic element. The value "null" is returned when this graphic element is not in the set of graphic elements for the visible image.

Метод 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 HitTest method 810 returns the first opaque object obtained from the hit test. If the graphic element is not found, then the method returns false.

Метод 812 CreatePage (создание страницы) принимает в качестве входных параметров BoxSizeInfo (смотри фиг. 9, описанную ниже) и PageDescriptor (смотри фиг. 10, описанную ниже). Метод 812 CreatePage создает новую страницу на основе введенных параметров и возвращает дочерний посреднический объект, соответствующий корневому графическому элементу для данной страницы.The CreatePage method 812 accepts BoxSizeInfo (see FIG. 9, described below) and PageDescriptor (see FIG. 10, described below) as input parameters. CreatePage method 812 creates a new page based on the entered parameters and returns a child intermediary object corresponding to the root graphic element for this page.

Обратимся к фиг. 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. Parental size property 902 is the suggested size for the parent presenter. Parental size property 902 is used, for example, to calculate sizes based on values in the form of percentages from the parent presenter for child presenters. The BoxSizeInfo structure also includes two properties with Boolean values, FixedWidth (fixed width) 904 and FixedHeight (fixed height) 906, which instruct the receiving presenter to indicate whether the presented size is a prescribed (fixed value) or is this size value simply offered in as height or width.

Обратимся к фиг. 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 recording break property 1002 is a structure that includes: a starting position of a character identifying the first character of the current presenter that is on the next page (relative to the graphic element that is the root of the visible paginated image); the number of characters (counted back from the beginning of the character arrangement) that can invalidate the previous page; and the boolean value IsDirty (dirty), which indicates whether the dangling record (covering a specific range of characters in a paginated graphic element) was invalid as a result of a change in the auxiliary storage device.

Структура дескриптора страницы также включает в себя свойство 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 presentation engine 212 of the presenter system 200 created by the visible image 202 (see FIG. 2). The constructor method 1100 in the presentation engine 212 accesses a visible image 202 that contains a link to the root graphic element for this visible image provided by the tree of graphic elements 206. DoLayout method 1102 accepts the width and height in the form of passed parameters representing the dimensions of the visible image 202, and in response, it proceeds with the layout process as applied to the content of the graphic elements 206. The UpdateLayout method 1104, performed at least once after execution Nia DoLayout, starting step change earlier calculated layout for the visible image 202. Method 1106 CreatePage receives as input information on the size of the rectangle (BoxSizeInfo), which contains the size of the displayed page and the page descriptor that contains information about how to start a specific page. Instead of displaying all the content under the root of the graphic elements 206 for the visible image 202, the CreatePage method 1106 displays only one page of interest.

Приведенная в качестве примера архитектура для обработки компоновки была описана со ссылками на фиг. 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 presenter system 200 that helps expand the layout / presentation capabilities of the visible image through the base presenter class 216, from which new classes of presenter objects that embody new layout / presentation functionality are derived. The system and architecture disclosed herein also includes a notification mechanism linking elements to respective presenter objects to selectively initiate re-calculation of portions of the visible image in response to changes. The illustrated base classes of objects illustrate many potential alternative implementations of an extensible architecture embodying the present invention, and should not be construed as limiting the scope of the invention.

Учитывая описанный здесь набор компонентов, образующих приведенную в качестве примера архитектуру обработки представления/компоновки, воплощающей настоящее изобретение, обратимся теперь к фиг. 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 step 1200, changes occur in the auxiliary storage device 208. For example, the application 204 performs an operation that changes the state and / or content of one or more displayed graphical user interface components for this application. In response to these changes, at step 1202, the presentation engine 212 in the presenter system 200 receives a change notification resulting from a change in the graphic in the auxiliary storage device.

В качестве основы на этапе 1204 система 200 презентаторов поддерживает связи между элементами и презентаторами в информационной связке «элемент - презентатор» (EPI). Всякий раз при создании презентатора для графического элемента создается ссылка на этот презентатор на элементе, которая запоминается в EPI, поддерживаемой системой презентаторов. Если графический элемент имеет больше одного презентатора, то тогда в EPI графического элемента будет множество ссылок (по одной на каждый презентатор). Когда свойство на графическом элементе изменяется, то выполняются следующие этапы:As a basis, at step 1204, the presenter system 200 maintains communications between the elements and presenters in the element-presenter (EPI) information link. Each time you create a presenter for a graphic element, a link to that presenter is created on the element, which is stored in the EPI supported by the presenter system. If a graphic element has more than one presenter, then the EPI of the graphic element will have many links (one for each presenter). When a property on a graphic element changes, the following steps are performed:

(а) Вспомогательное запоминающее устройство отмечает изменение на графическом элементе;(a) The auxiliary storage device marks a change in the graphic element;

(b) Вспомогательное запоминающее устройство 208 уведомляет механизм 212 представления об изменении со ссылкой на графический элемент, который изменил одно из своих свойств;(b) The auxiliary storage device 208 notifies the change presentation engine 212 with reference to a graphic element that has changed one of its properties;

(с) Механизм 212 представления просматривает EPI графического элемента, который изменился, и определяет презентаторы, которые были созданы для этого графического элемента; и(c) The presentation engine 212 looks at the EPI of a graphic that has changed and determines the presenters that were created for that graphic; and

(d) После определения презентатора механизм 212 представления получает ссылку на соответствующий обработчик уведомлений для презентатора (через свойство 446 обработчика уведомлений на презентаторе).(d) After determining the presenter, the submission engine 212 receives a link to the corresponding notification handler for the presenter (via property 446 of the presenter's notification handler).

Таким образом, в свете вышесказанного, на этапе 1204 механизм 212 представления системы 200 презентаторов определяет идентичность (идентификационную информацию) презентатора, для которого используется уведомление об изменении. Как было объяснено выше, система презентаторов поддерживает список презентаторов, которые были конкретизированы для данного элемента в его EPI. После определения презентатора, для которого используется уведомление об изменении (в этом примере предполагается, что для данного элемента существует только один презентатор), механизм 212 представления в системе презентаторов получает ссылку на обработчик уведомления для презентатора через свойство 446 обработчика уведомлений на идентифицированном презентаторе.Thus, in light of the foregoing, at step 1204, the presentation engine 212 of the presenter system 200 determines the identity (identity) of the presenter for which the change notification is used. As explained above, the presenter system maintains a list of presenters that have been instantiated for a given element in its EPI. After determining the presenter for which the change notification is used (in this example, it is assumed that there is only one presenter for this element), the presentation engine 212 in the presenters system receives a reference to the notification handler for the presenter via the notification handler property 446 on the identified presenter.

Затем при выполнении этапа 1206 механизм 212 представления системы 200 презентаторов направляет уведомление об изменении обработчику уведомлений, используя ссылку, которая была получена на этапе 1204. В одном варианте изобретения этап 1206 выполняют путем инициирования метода 602 OnNotify на конкретном объекте-обработчике уведомлений.Then, at step 1206, the presentation engine 212 of the presenter system 200 sends a change notification to the notification handler using the link that was obtained at step 1204. In one embodiment of the invention, step 1206 is performed by initiating the OnNotify method 602 on a particular notification handler.

После приема уведомления об изменении от системы презентаторов на этапе 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 step 1200 in the auxiliary storage 208. In one embodiment of the invention, the notification handler determines for which part, if it exists, of the corresponding presenter, an update is necessary in the light of the received notification the change. Said parts include, for example, children of the presenter and the presenter itself.

Далее на этапе 1210 обработчик уведомлений (например, метод 602 OnNotify) возвращает результат, который позволяет соответствующему презентатору определить и выполнять действия в свете уведомления об изменениях, полученного системой 200 презентаторов в ходе выполнения этапа 1202. В одном варианте изобретения возвращаемый результат представлен в виде обработчика уведомлений/конкретного презентатора. В некоторых случаях в возвращаемом результате презентатор просто помечается как «загрязненный», в результате чего вызывается полное повторное вычисление соответствующего презентатора. В других случаях предоставляется информация для избирательного вызова лишь некоторых из возможностей повторного вычисления видимого изображения для презентатора.Next, at step 1210, the notification handler (for example, OnNotify method 602) returns a result that allows the corresponding presenter to determine and perform actions in the light of the change notification received by the presenter system 200 during step 1202. In one embodiment of the invention, the returned result is presented as a handler notifications / specific presenter. In some cases, in the returned result, the presenter is simply marked as “polluted,” resulting in a complete recalculation of the corresponding presenter. In other cases, information is provided for selectively invoking only some of the options for recalculating the visible image for the presenter.

В одном варианте изобретения механизм 212 представления системы 200 презентаторов принимает на этапе 1210 возвращенный результат от обработчика уведомлений для презентатора. После этого на этапе 1212, если изменения во вспомогательном запоминающем устройстве не вызывают необходимость повторного вычисления презентатора, управление переходит к этапу 1216 принятия решения. Однако, если на этапе 1212 возвращенный результат указывает на то, что необходимо повторное вычисление презентатора, то управление переходит к этапу 1214, на котором система 200 презентаторов добавляет презентатор к набору «загрязненных» презентаторов, требующих повторного вычисления. В приведенном в качестве примера варианте изобретения система презентаторов устанавливает свойство 450 «загрязненности» на соответствующем презентаторе (с указанием необходимости повторного вычисления презентатора) и добавляет этот презентатор в набор презентаторов, которые нуждаются в повторном вычислении. Презентаторы также задают информацию, описывающую содержание изменений, которые ведут к установке свойства 450 «загрязненности». Затем управление переходит к этапу 1216.In one embodiment of the invention, the presentation engine 212 of the presenter system 200 receives, at 1210, a returned result from the presenter's notification handler. After that, at step 1212, if the changes in the auxiliary storage device do not necessitate a re-calculation of the presenter, the control proceeds to decision block 1216. However, if, at step 1212, the returned result indicates that the presenter needs to be recalculated, then control proceeds to step 1214, where the presenter system 200 adds the presenter to the set of "dirty" presenters requiring recalculation. In an exemplary embodiment of the invention, the presenter system sets the “contamination” property 450 on the corresponding presenter (indicating the need to recalculate the presenter) and adds this presenter to the set of presenters that need to be recalculated. Presenters also provide information describing the content of the changes that lead to the setting of the 450 “pollution” property. Then, control proceeds to block 1216.

На этапе 1216, если для презентатора, связанного с интересующим в данный момент обработчиком уведомлений, родительский презентатор не существует, то управление переходит к этапу 1218 «конец». Если родительский презентатор действительно существует, то тогда управление переходит от этапа 1216 к этапу 1220, на котором создается (пересылается) уведомление для обработчика уведомлений родительского презентатора (что приводит к обработчику уведомлений для родительского презентатора, обрабатывающего уведомление), как показано пунктирной линией возврата к этапу 1208.At step 1216, if the parent presenter does not exist for the presenter associated with the notification handler of interest at the moment, then control passes to step 1218 “end”. If the parent presenter does exist, then control proceeds from step 1216 to step 1220, where a notification is generated (forwarded) to the notification handler of the parent presenter (which leads to the notification handler for the parent presenter processing the notification), as shown by the dashed line to return to step 1208.

Таким образом, набор этапов, показанный на фиг. 12, позволяет системе 200 презентаторов аккумулировать список презентаторов, которые были «загрязнены» в результате изменений во вспомогательном запоминающем устройстве 220 с момента последнего вычисления компоновки для документного/пользовательского интерфейса.Thus, the set of steps shown in FIG. 12, allows the presenter system 200 to accumulate a list of presenters that have been “contaminated” as a result of changes to the auxiliary storage device 220 since the last layout calculation for the document / user interface.

Обратимся теперь к фиг. 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 application 204 controls updates to the visible image 202 and invokes update procedures for the visible image, such as the procedure disclosed in FIG. 13, in response to events such as the end of a time interval, a request to print a document, or change the state of a graphical user interface.

Сначала на этапе 1300 система 200 презентаторов и конкретный механизм 212 представления принимает вызов метода 1102 DoLayout (описанный выше со ссылкой на описание API механизма 212 представления). В ответ на прием вызова метода 1102 DoLayout приложением 204 система 200 презентаторов повторно вычисляет объекты презентаторов, содержащиеся в видимом изображении 204, для размещения изменений в элементах во вспомогательном запоминающем устройстве с момента последнего вызова метода 1102 DoLayout.First, at block 1300, the presenter system 200 and the specific presentation engine 212 receives a call to the DoLayout method 1102 (described above with reference to the API description of the presentation engine 212). In response to receiving a call to the DoLayout method 1102 by the application 204, the presenter system 200 recalculates the presenter objects contained in the visible image 204 to post changes to items in the auxiliary storage device since the last call to the DoLayout method 1102.

В одном варианте настоящего изобретения, где презентаторы для видимого изображения иерархически упорядочены (смотри фиг.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 presenter system 200 first determines in step 1302 the root presenter for the visible image. In one embodiment of the invention, the root presenter is identified by the property of the presenter on the root element, which is assigned to the visible image (for example, the visible image 204a) and, therefore, to the system of presenters (for example, the presenter system 200a). After determining the root presenter, control proceeds to step 1304, where the presenter system 200 starts traversing the presenter tree for the visible image and recalculating each “contaminated” presenter.

На этапе 1304 система 200 презентаторов вызывает метод 470 OnUpdate на каждом «загрязненном» презентаторе в видимом изображении. Вызванный метод 470 OnUpdate передает высоту и ширину прямоугольника, в котором должна быть повторно вычислена компоновка презентатора. После повторного вычисления компоновки презентатор кэширует полученный результат. Таким образом, после завершения этапа 1304 ранее «загрязненные» презентаторы оказываются вычисленными повторно, а результаты повторных вычислений оказываются занесенными в кэш-память для легкого доступа во время последующей повторной визуализации. «Загрязненный» бит очищается в каждом из вызванных презентаторов. Далее, со ссылками на фиг. 14, более подробно описан набор этапов, выполняемых при вызове метода 470 OnUpdate.At step 1304, the presenter system 200 calls the OnUpdate method 470 on each “contaminated” presenter in the visible image. The OnUpdate method called 470 passes the height and width of the rectangle in which the presenter layout must be re-computed. After recalculating the layout, the presenter caches the result. Thus, after completing step 1304, previously “contaminated” presenters are recalculated, and the results of the recalculations are cached for easy access during subsequent re-visualization. A “dirty” bit is cleared in each of the called presenters. Next, with reference to FIG. 14, the set of steps performed by invoking the OnUpdate method 470 is described in more detail.

Имеется несколько путей очистки «загрязненных» презентаторов на этапе 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 step 1304. However, in an embodiment of the present invention, the presenter system 200, and in particular, the OnUpdateLayout method 1104 of the presentation engine 212, uses hierarchical relationships between presenters in the visible image to simplify the execution of its function at completion step 1304. In particular, during the execution of the 470 OnUpdate method, each called presenter invokes iteratively (or, alternatively, requests a system of 200 presenters to call) the 470 OnUpdate method on all child presenters of the called presenter. Thus, the presenter system 200 starts traversing the presenter tree with the root presenter OnUpdate method 470 (for example, the presenter P1 of FIG. 3) and supports consecutive calls of child presenters when the OnUpdate method call 470 bypasses the branches of the presenter hierarchical tree to recalculate “contaminated” presenters . Iterative calls to the OnUpdate method 470 on child presenters ensure that all presenters in the visible image are bypassed, and if the presenters are dirty, they are recalculated.

По окончании каждый метод 470 OnUpdate, вызванный на этапе 1304, устанавливает в исходное состояние свойство 450 «загрязненности», указывая, что было выполнено повторное вычисление или «очистка». Каждый метод 470 OnUpdate также возвращает вызывающей стороне значение, указывающее на то, требуется ли повторно визуализировать (то есть повторно «нарисовать») данный презентатор. В одном варианте изобретения возвращаемым значением является булево значение. Если оно равно «истина», то тогда требуется повторная визуализация. Если оно равно «ложь», то тогда повторная визуализация не требуется. После обработки на этапе 1304 каждого из «загрязненных» презентаторов для видимого изображения управление переходит к этапу 1306 визуализации, где обрабатываются презентаторы, идентифицированные в списке презентаторов, требующих повторной визуализации.At the end, each OnUpdate method 470 called in step 1304 sets the “dirty” property 450 to its initial state, indicating that a re-calculation or “cleanup” has been performed. Each OnUpdate method 470 also returns a value to the caller indicating whether the present presenter needs to be re-rendered (that is, re-drawn). In one embodiment of the invention, the return value is a Boolean value. If it is true, then re-visualization is required. If it is false, then re-visualization is not required. After processing at step 1304 each of the “contaminated” presenters for the visible image, control proceeds to visualization step 1306, where the presenters identified in the list of presenters requiring re-rendering are processed.

На этапе 1306 система 200 презентаторов вызывает метод 474 OnRender на каждом презентаторе, идентифицированном в списке презентаторов, запрашивающих повторную визуализацию. Функционирование примерного варианта метода 474 OnRender описано со ссылками на фиг. 14. При реализации базового класса метода 474 OnRender презентатор ничего не «рисует», а вместо этого итеративно вызывает метод 474 OnRender на своих дочерних и/или сцепленных презентаторах для заполнения выделенного пространства (например, прямоугольник). Настроенные с учетом требований пользователя версии метода 474 OnRender визуализируют побитовые отображения через вызовы приложения 204 и/или интерфейсов API графической подсистемы и драйверов 234 графических устройств. После обработки всех презентаторов, запрашивающих повторную визуализацию на этапе 1306, управление переходит к этапу 1308 «конец» и возвращается к вызывающей стороне, инициировавшей вызов 1102 метода DoLayout, на механизме представления для конкретного видимого изображения.At 1306, the presenter system 200 calls the OnRender method 474 on each presenter identified in the list of presenters requesting re-rendering. The operation of an exemplary embodiment of the OnRender method 474 is described with reference to FIG. 14. When implementing the base class of the 474 OnRender method, the presenter does not “draw” anything, but instead iteratively calls the 474 OnRender method on its child and / or linked presenters to fill the allocated space (for example, a rectangle). Custom versions of the OnRender method 474, customized to user requirements, render bitmaps through calls to application 204 and / or graphics APIs and drivers 234 of graphic devices. After processing all the presenters requesting re-rendering in step 1306, control proceeds to step “end” 1308 and returns to the caller who initiated the DoLayout method call 1102 on the presentation engine for the particular visible image.

Обратимся к фиг. 14, где показана блок-схема этапов метода 470 OnUpdate, выполняемого для повторного вычисления презентатора видимого изображения. Метод 470 OnUpdate вычисляет новую компоновку для презентатора, в том числе для любых дочерних презентаторов, и кэширует результаты для обращения к ним на этапе повторной визуализации. В приведенном ниже примере с вызовом 470 метода OnUpdate для каждого презентатора пересылается набор размеров, задающих границы пространства для видимого изображения (например, прямоугольник), которое может быть занято компоновкой презентатора. Набор размеров задает, например, высоту и ширину, причем также устанавливается, можно ли модифицировать эти величины во время выполнения вызова метода 470 OnUpdate. Однако изобретение предполагает выполнение повторного вычисления презентаторов на основе любого одного или нескольких из множества различных полученных параметров, включая размеры пространства для видимого изображения, которые влияют на компоновку.Turning to FIG. 14, which shows a flowchart of the OnUpdate method 470 performed to recalculate a presenter of a visible image. The OnUpdate method 470 calculates a new layout for the presenter, including any child presenters, and caches the results for accessing them during the re-rendering stage. In the example below, calling OnUpdate method 470 for each presenter sends a set of sizes that define the boundaries of the space for the visible image (for example, a rectangle), which can be occupied by the presenter layout. A set of sizes defines, for example, height and width, and it also sets whether these values can be modified during the execution of a call to 470 OnUpdate. However, the invention contemplates recalculating presenters based on any one or more of the many different parameters obtained, including the dimensions of the space for the visible image, which affect the layout.

На этапе 1400 презентатор выполняет требуемые операции задания размеров на основе переданных параметров перед вызовом каких-либо дочерних презентаторов (через дочерние посреднические объекты) для выполнения их обновлений. Содержание указанной операции зависит от особенностей конкретного типа презентатора. Затем презентатор вызывает систему 200 презентаторов для определения местонахождения и обновления дочерних презентаторов текущего презентатора. На этапе предварительной обработки презентатор определяет потенциальную необходимость создания новой страницы/колонки и создает новый дочерний посредник/презентатор для обработки новой страницы/колонки для видимого изображения.At step 1400, the presenter performs the required size-setting operations based on the passed parameters before calling any of the child presenters (via child intermediary objects) to perform their updates. The content of this operation depends on the particular type of presenter. The presenter then calls a system of 200 presenters to locate and update the child presenters of the current presenter. At the preprocessing stage, the presenter determines the potential need to create a new page / column and creates a new child proxy / presenter to process the new page / column for the visible image.

Далее на этапе 1402 метод 470 OnUpdate определяет на текущем родительском презентаторе следующий дочерний презентатор для вызова обновления его компоновки. Заметим, что на этом этапе, по меньшей мере в первом случае, требуется, чтобы родительский презентатор определил наличие дочернего элемента и создал соответствующий дочерний посреднический объект/презентатор. На последующих итерациях родительский презентатор может использовать кэшированные дочерние посреднические объекты, идентифицированные в его поле 412 дочерних презентаторов, для идентификации следующего оставшегося (не обработанного) дочернего посреднического объекта/презентатора, то есть дочернего презентатора, который еще не был вызван во время текущей итерации метода OnUpdate на текущем родительском презентаторе.Next, at 1402, the OnUpdate method 470 determines the next child presenter on the current parent presenter to invoke an update to its layout. Note that at this stage, at least in the first case, it is required that the parent presenter determines the presence of a child element and create the corresponding child intermediary object / presenter. In subsequent iterations, the parent presenter can use the cached child intermediaries identified in its 412 child presenters field to identify the next remaining (untreated) child intermediary / presenter, that is, the child presenter that has not yet been called during the current iteration of the OnUpdate method on the current parent presenter.

Родительский презентатор принимает ответ от поддерживающего запоминающего устройства либо сам определяет, исходя из своего свойства 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 step 1404, if there are no more child presenters to be updated, control proceeds to step 1420 (described below). Otherwise, if the presenter does have in its property 412 child presenters an unprocessed child presenter that has not yet been updated, then control proceeds to step 1406.

На этапе 1406 презентатор вызывает метод 520 OnUpdate на возвращенном дочернем посреднике, который находится между родительским презентатором и рассматриваемым текущим дочерним презентатором, для получения высоты и ширины дочернего презентатора, с которым связан дочерний посредник. Дочерний презентатор связан с конкретным графическим элементом (заданным в его поле 442 владельца элемента).At step 1406, the presenter calls the OnUpdate method 520 on the returned child broker, which is between the parent presenter and the current child presenter in question, to obtain the height and width of the child presenter that the child broker is associated with. The child presenter is associated with a specific graphic element (defined in its field 442 owner of the element).

На этапе 1410 дочерний посредник вызывает метод 470 OnUpdate на дочернем презентаторе, с которым связан этот дочерний посредник. Метод 470 OnUpdate вычисляет обновленную высоту и ширину дочернего презентатора (и определяет, требуется ли повторная визуализация). Заметим, что на этапе 1410 метод 470 OnUpdate вызывается рекурсивно дочерними презентаторами, пока вызванный дочерний презентатор не определит на этапе 1402, что он не имеет дочерних презентаторов, и пока он не возвратится к вызывающему родительскому презентатору (через свой дочерний посредник). После вызова метода 470 OnUpdate на дочернем презентаторе управление переходит к этапу 1414.At step 1410, the child broker calls the OnUpdate method 470 on the child presenter that this child broker is associated with. The OnUpdate method 470 calculates the updated height and width of the child presenter (and determines if re-rendering is required). Note that at step 1410, the OnUpdate method 470 is called recursively by child presenters until the called child presenter determines at step 1402 that it has no child presenters and until it returns to the calling parent presenter (through its child intermediary). After calling OnUpdate method 470 on the child presenter, control proceeds to step 1414.

Таким образом, на этапе 1414 вызывающий родительский презентатор (из этапа 1406) принимает ответ на вызов 520 метода OnUpdate для идентифицированного посредника. Ответ включает в себя высоту и ширину дочернего презентатора в виде возвращенных параметров. Ответ также указывает, требуется ли повторная визуализация вызванного дочернего презентатора. Далее на этапе 1416 родительский презентатор позиционирует вызванный дочерний презентатор в выделенном пространстве компоновки родительского презентатора на основе алгоритма/стратегии размещения. В одном варианте изобретения на этапе 1416 родительский презентатор помещает дочерний презентатор в свою компоновку на основе параметров высоты и ширины дочернего презентатора, полученных презентатором на этапе 1414.Thus, at block 1414, the calling parent presenter (from block 1406) receives a response to the OnUpdate method call 520 for the identified broker. The answer includes the height and width of the child presenter in the form of the returned parameters. The response also indicates whether re-rendering of the called child presenter is required. Next, at step 1416, the parent presenter positions the called child presenter in the allocated layout space of the parent presenter based on the placement algorithm / strategy. In one embodiment of the invention, at step 1416, the parent presenter places the child presenter in their layout based on the height and width parameters of the child presenter obtained by the presenter at step 1414.

Затем управление возвращается к этапу 1402, где продолжается выполнение метода 470 OnUpdate родительского презентатора для обновления остальных дочерних презентаторов (через их дочерние посреднические объекты-«оболочки»).Then, control returns to block 1402, where the parent presenter's OnUpdate method 470 continues to update the remaining child presenters (via their child shell intermediaries).

Если на этапе 1404 не осталось дочерних презентаторов (презентаторы элемента или посредника), подлежащих обработке/обновлению, то управление переходит к этапу 1420. На этапе 1420 метод 470 OnUpdate вызванного презентатора реализует настроенные согласно требованиям пользователя функции компоновки, включая возможные дополнительные вызовы метода 470 OnUpdate на дочерних презентаторах, для настройки компоновки для презентатора.If at step 1404 there are no child presenters (element or mediator presenters) to be processed / updated, control proceeds to step 1420. At step 1420, the called presenter's OnUpdate method 470 implements customization functions configured according to user requirements, including possible additional calls to OnUpdate method 470 on child presenters, to configure the layout for the presenter.

На этапе 1422 либо, что возможно, в любой момент, когда методом 470 OnUpdate получена новая информация, результаты обработки компоновки кэшируются для последующего использования на этапе повторной визуализации в процессе обработки графического изображения.At step 1422, or, which is possible, at any time when new information is obtained by the OnUpdate method 470, the results of the layout processing are cached for later use in the re-visualization step in the process of processing the graphic image.

После завершения обработки обновления для данного презентатора, в том числе для всех дочерних презентаторов вызванного презентатора, на этапе 1424 презентатор возвращает свои размеры вызывающей стороне (система 200 презентаторов), а также значение, указывающее на то, необходима ли повторная визуализация этого презентатора.After completion of the update processing for this presenter, including for all child presenters of the called presenter, at step 1424, the presenter returns its size to the caller (system 200 presenters), as well as a value indicating whether a second visualization of this presenter is necessary.

Специалистам в данной области техники очевидно, что здесь на примерах были описаны новая платформа и методы для управления обработкой компоновки/представления выходных данных графического документного/пользовательского интерфейса в вычислительной среде, включающей в себя устройства графического вывода, такие как дисплей графического пользовательского интерфейса или принтер. С точки зрения множества возможных сред, в которых могут быть реализованы принципы этого изобретения, и гибкости проектирования и реализации программных утилит и инструментов следует отметить, что описанные здесь варианты являются лишь иллюстрацией, и их нельзя рассматривать как ограничение объема изобретения. Специалистам в данной области техники, которые используют настоящее изобретение, очевидно, что показанные здесь варианты могут быть модифицированы по структуре и в деталях, не выходя за рамки существа изобретения. Таким образом, описанное здесь изобретение рассматривает все указанные варианты как входящие в объем нижеизложенной формулы изобретения и ее эквивалентов.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)

1. Система управления компоновкой графических выходных данных для упорядочивания и поддержания графически отображаемых выходных данных программ, выполняющихся на компьютерной системе, причем система управления компоновкой графических выходных данных содержит1. The control system layout graphic output data for organizing and maintaining graphically displayed output data of programs running on a computer system, and the control system layout graphic output data contains графические элементы, содержащие данные, которые представляют отображаемый контент программы;graphic elements containing data that represent the displayed content of the program; презентаторы, определяющие состояния отображения для графических элементов, где презентатор конкретного типа поддерживает описание компоновки для соответствующего графического элемента; и систему презентаторов, включающую в себя ведущий интерфейс презентаторов, содержащий метод для подготовки компоновки для видимого изображения в соответствии с набором презентаторов, связанных с графическими элементами, содержащимися в видимом изображении.presenters defining display states for graphic elements, where a particular type of presenter supports a layout description for the corresponding graphic element; and a system of presenters, including the leading interface of the presenters, containing a method for preparing the layout for the visible image in accordance with the set of presenters associated with graphic elements contained in the visible image. 2. Система управления компоновкой графических выходных данных по п.1, в которой система презентаторов дополнительно содержит базовый класс презентаторов и в которой набор презентаторов создается из классов презентаторов, полученных из базового класса презентаторов.2. The graphical output layout control system according to claim 1, wherein the presenter system further comprises a base class of presenters and in which a set of presenters is created from presenter classes derived from the base class of presenters. 3. Система управления компоновкой графических выходных данных по п.2, в которой презентаторы включают в себя метод обновления для вычисления свойств компоновки для презентатора.3. The graphical output layout control system of claim 2, wherein the presenters include an update method for computing layout properties for the presenter. 4. Система управления компоновкой графических выходных данных по п.3, в которой презентаторы включают в себя метод визуализации для формирования команд, выдаваемых в подсистему графических выходных данных компьютерной системы.4. The control system for the layout of the graphic output data according to claim 3, in which the presenters include a visualization method for generating commands issued to the graphic output subsystem of the computer system. 5. Система управления компоновкой графических выходных данных по п.2, в которой классы презентаторов включают в себя заранее определенные классы презентаторов и классы внешних презентаторов.5. The control system for the layout of the graphic output data according to claim 2, in which the classes of presenters include predefined classes of presenters and classes of external presenters. 6. Система управления компоновкой графических выходных данных по п.1, в которой каждый из презентаторов вычисляет состояние компоновки для соответствующего графического элемента на основе значений параметров компоновки, заданных на презентаторе.6. The layout control system of the graphic output data according to claim 1, in which each of the presenters calculates the layout state for the corresponding graphic element based on the values of the layout parameters specified on the presenter. 7. Система управления компоновкой графических выходных данных по п.1, дополнительно содержащая набор обработчиков уведомлений, причем каждый обработчик уведомлений связан с одним конкретным презентатором из набора презентаторов в видимом изображении, и где обработчик уведомлений обрабатывает изменение графического элемента для определения того, следует ли обновлять соответствующий презентатор.7. The graphical output composition management system of claim 1, further comprising a set of notification handlers, each notification handler associated with one particular presenter from a set of presenters in the visible image, and where the notification handler processes the change in the graphic to determine whether to update appropriate presenter. 8. Система управления компоновкой графических выходных данных по п.7, в которой каждый презентатор задает тип обработчика уведомления, который предоставляет уведомления об изменениях конкретному презентатору, имеющему отношение к связанному с ним графическому элементу.8. The graphical output composition management system of claim 7, wherein each presenter defines a type of notification handler that provides change notifications to a particular presenter related to the graphic element associated with it. 9. Система управления компоновкой графических выходных данных по п.8, в которой обработчик уведомления определяет часть соответствующего презентатора, которая требует обновления ввиду изменений в связанном с ним графическом элементе.9. The graphical output layout control system of claim 8, wherein the notification handler determines a portion of the corresponding presenter that needs to be updated due to changes in the associated graphical element. 10. Система управления компоновкой графических выходных данных по п.7, в которой система презентаторов регистрирует посредством обработчиков уведомлений те презентаторы, которые требуют обновления на основе изменений соответствующих графических элементов.10. The layout control system for the graphic output data according to claim 7, wherein the system of presenters registers by means of notification handlers those presenters that require updating based on changes in the corresponding graphic elements. 11. Система управления компоновкой графических выходных данных по п.1, в которой один экземпляр графического элемента из числа упомянутых графических элементов связан с множеством презентаторов.11. The control system for the layout of the graphic output data according to claim 1, in which one instance of the graphic element from among the graphic elements associated with many presenters. 12. Система управления компоновкой графических выходных данных по п.11, в которой множество презентаторов, с которыми связан экземпляр графического элемента, является презентаторами одинакового типа.12. The graphical output layout control system of claim 11, wherein the plurality of presenters with which the graphic instance is associated are the same type of presenters. 13. Система управления компоновкой графических выходных данных по п.12, в которой множество презентаторов соответствует отдельным колонкам в одном и том же видимом изображении.13. The graphical output layout control system of claim 12, wherein the plurality of presenters corresponds to individual columns in the same visible image. 14. Система управления компоновкой графических выходных данных по п.12, в которой множество презентаторов соответствует отдельным страницам в документном видимом изображении одного графического элемента.14. The graphical output layout control system of claim 12, wherein the plurality of presenters corresponds to individual pages in the document visible image of one graphic element. 15. Система управления компоновкой графических выходных данных по п.11, в которой первый презентатор и второй презентатор из множества презентаторов, связанных с экземпляром графического элемента, связаны с соответствующими первым и вторым отдельными видимыми изображениями.15. The graphical output composition management system of claim 11, wherein the first presenter and the second presenter of the plurality of presenters associated with an instance of the graphic element are associated with respective first and second separate visible images. 16. Система управления компоновкой графических выходных данных по п.15, в которой «хостинг» первого и второго отдельных видимых изображений выполняется соответствующими первой и второй системами презентаторов.16. The control system for the layout of the graphic output data according to clause 15, in which the "hosting" of the first and second separate visible images is performed by the corresponding first and second systems of presenters. 17. Система управления компоновкой графических выходных данных по п.1, в которой видимое изображение соответствует прямоугольной области в пространстве графического отображения.17. The control system for the layout of the graphic output data according to claim 1, in which the visible image corresponds to a rectangular region in the space of the graphic display. 18. Система управления компоновкой графических выходных данных по п.11, в которой множество презентаторов, связанных с экземпляром графического элемента, является множеством презентаторов различных типов.18. The graphical output layout control system of claim 11, wherein the plurality of presenters associated with the graphic instance is a plurality of different types of presenters. 19. Система управления компоновкой графических выходных данных по п.18, в которой один из множества презентаторов содержит презентатор элементов «отделки» для главного презентатора.19. The graphical output layout control system of claim 18, wherein one of the plurality of presenters comprises a presenter of “trim” elements for the main presenter. 20. Система управления компоновкой графических выходных данных по п.1, в которой презентаторы в видимом изображении иерархически упорядочены, так что дочерние презентаторы содержатся в области, заданной соответствующим родительским презентатором.20. The graphical output composition management system of claim 1, wherein the presenters in the visible image are hierarchically arranged so that the child presenters are contained in the area specified by the corresponding parent presenter. 21. Система презентаторов для включения в состав системы управления компоновкой графических выходных данных для обработки компоновки от имени программы, предоставляющей графические элементы, которые содержат данные, представляющие отображаемый контент программы, посредством презентаторов, определяющих состояния отображения для графических элементов, и при этом презентатор поддерживает описание компоновки для соответствующего графического элемента, и где система презентаторов управляет и упорядочивает презентаторы, связанные с графическими элементами в видимом изображении, причем система презентаторов содержит базовый класс презентаторов, из которого получают классы презентаторов, и где презентаторы создают из классов презентаторов; и ведущий интерфейс презентаторов, содержащий набор методов, включающий в себя по меньшей мере метод для подготовки компоновки, воплощенной в наборе презентаторов, связанных с графическими элементами в видимом изображении.21. The system of presenters for inclusion in the composition management system of the graphic output data for processing the layout on behalf of a program that provides graphic elements that contain data representing the displayed content of the program, by means of presenters that determine display states for graphic elements, and the presenter supports the description layouts for the corresponding graphic element, and where the presenter system manages and organizes presenters associated with diffrac- tion elements within a view, the presenter system comprising a presenter base class from which presenter classes are obtained, and wherein the presenters are created from the presenter classes; and a leading presenters interface comprising a set of methods, including at least a method for preparing a layout embodied in a set of presenters associated with graphic elements in a visible image. 22. Система презентаторов по п.21, в которой базовый класс презентаторов задает настраиваемый пользователем метод обновления, подменяемый полученными классами презентаторов, для вычисления свойств компоновки для презентатора.22. The system of presenters according to item 21, in which the base class of presenters defines a user-configurable update method, replaced by the resulting classes of presenters, to calculate the layout properties for the presenter. 23. Система презентаторов по п.22, в которой базовый класс презентаторов задает настраиваемый пользователем метод визуализации, подменяемый полученными классами презентаторов, для формирования команд, выдаваемых в подсистему графического вывода компьютерной системы.23. The system of presenters according to item 22, in which the base class of presenters sets a user-customizable visualization method, replaced by the received classes of presenters, for generating commands issued to the graphical output subsystem of a computer system. 24. Система презентаторов по п.21, в которой система презентаторов поддерживает набор классов презентаторов, который включает в себя заранее определенные классы презентаторов и внешние классы презентаторов.24. The system of presenters according to item 21, in which the system of presenters supports a set of classes of presenters, which includes predefined classes of presenters and external classes of presenters. 25. Система презентаторов по п.21, в которой базовый класс презентаторов задает метод для вычисления состояния компоновки для графического элемента на основе значений параметров компоновки, заданных на связанном с ним презентаторе.25. The system of presenters according to item 21, in which the base class of presenters defines a method for calculating the layout state for a graphic element based on the values of the layout parameters specified on the associated presenter. 26. Система презентаторов по п.21, дополнительно включающая базовый класс обработчиков уведомлений, из которого получают классы обработчиков уведомлений, и в которой каждый обработчик уведомлений, созданный из класса обработчиков уведомлений, связан с конкретным презентатором в видимом изображении, и где обработчик уведомлений обрабатывает изменение графического элемента, чтобы определить, следует ли обновлять соответствующий презентатор.26. The presenter system according to claim 21, further comprising a base class of notification handlers from which classes of notification handlers are obtained, and in which each notification handler created from the class of notification handlers is associated with a specific presenter in the visible image, and where the notification handler processes the change graphic element to determine if the appropriate presenter should be updated. 27. Система презентаторов по п.26, в которой класс базовых презентаторов включает в себя «заполнитель» для презентатора для задания типа обработчика уведомлений, который предоставляет уведомления об изменениях конкретному презентатору, относящемуся к связанному с ним графическому элементу.27. The presenter system according to claim 26, wherein the base presenter class includes a “placeholder” for the presenter to specify the type of notification handler that provides change notifications to a specific presenter related to the graphic element associated with it. 28. Система презентаторов по п.26, в которой система презентаторов регистрирует посредством обработчиков уведомлений те презентаторы, которым необходимо обновление, на основе изменений в соответствующих графических элементах.28. The system of presenters according to claim 26, in which the system of presenters registers by means of notification handlers those presenters who need updating, based on changes in the corresponding graphic elements. 29. Система презентаторов по п.21, в которой система презентаторов связана с видимым изображением, характеризующимся корневым графическим элементом и назначенной зоной, в которой отображают корневой графический элемент и его дочерние графические элементы.29. The system of presenters according to item 21, in which the system of presenters is associated with a visible image characterized by a root graphic element and a designated area in which the root graphic element and its child graphic elements are displayed. 30. Система презентаторов по п.29, в которой видимое изображение соответствует прямоугольной области в пространстве графического отображения.30. The system of presenters according to clause 29, in which the visible image corresponds to a rectangular region in the space of the graphic display. 31. Система презентаторов по п.21, в которой ведущий интерфейс презентаторов включает в себя конструктор для создания системы презентаторов для компоновки отображения для видимого изображения, содержащего набор графических элементов.31. The system of presenters according to item 21, in which the leading interface of presenters includes a constructor for creating a system of presenters for layout display for a visible image containing a set of graphic elements. 32. Система презентаторов по п.31, в которой видимое изображение задается по меньшей мере частично корневым графическим элементом, пересылаемым конструктору.32. The system of presenters according to p, in which the visible image is set at least partially by the root graphic element sent to the designer. 33. Система презентаторов по п.21, в которой система презентаторов поддерживает сцепление множества презентаторов, так что первый презентатор обеспечивает «отделку» для второго презентатора, связанного с графическим элементом.33. The system of presenters according to item 21, in which the system of presenters supports the coupling of many presenters, so that the first presenter provides a "finish" for the second presenter associated with the graphic element. 34. Система презентаторов по п.21, в которой базовый класс презентаторов включает в себя «заполнитель» для задания дочерних презентаторов, поддерживая тем самым создание иерархической древовидной структуры презентаторов в видимом изображении, так что дочерние презентаторы находятся в области, заданной соответствующим родительским презентатором.34. The system of presenters according to item 21, in which the base class of presenters includes a "placeholder" for defining child presenters, thereby supporting the creation of a hierarchical tree structure of presenters in the visible image, so that the child presenters are in the area specified by the corresponding parent presenter. 35. Способ для обработки компоновки от имени программы, предоставляющей графические элементы, которые содержат данные, представляющие отображаемый контент программы, посредством презентаторов, определяющих состояния отображения для графических элементов, и причем презентатор поддерживает описание компоновки для соответствующего графического элемента, и при этом система презентаторов обеспечивает хостинг и упорядочивание презентаторов, связанных с графическими элементами в видимом изображении, причем метод содержит этапы:35. A method for processing a layout on behalf of a program providing graphic elements that contain data representing the displayed content of the program by means of presenters defining display states for graphic elements, and wherein the presenter maintains a description of the layout for the corresponding graphic element, while the presenter system provides hosting and organizing presenters associated with graphic elements in the visible image, the method comprising the steps of: обеспечивают систему презентаторов, содержащую базовый класс презентаторов и ведущий интерфейс презентаторов, содержащий метод для создания компоновки, воплощенной в наборе презентаторов, связанных с графическими элементами в видимом изображении;provide a system of presenters containing the base class of presenters and a leading interface for presenters, containing a method for creating the layout embodied in a set of presenters associated with graphic elements in the visible image; принимают ведущим интерфейсом презентаторов запрос на формирование компоновки для набора графических элементов в видимом изображении; и создают для набора графических элементов соответствующие презентаторы из набора классов презентаторов, полученных из базового класса презентаторов, и вызывают метод на каждом созданном презентаторе для вычисления состояния компоновки для графического элемента, соответствующего презентатору.accept the presenter’s leading interface to request a layout for a set of graphic elements in the visible image; and create corresponding presenters for the set of graphic elements from the set of presenter classes obtained from the base class of presenters, and call the method on each created presenter to calculate the layout state for the graphic element corresponding to the presenter. 36. Способ по п.35, дополнительно содержащий этап:36. The method according to clause 35, further comprising the step of: обеспечивают базовый класс обработчиков уведомлений, задающий интерфейс для набора обработчиков уведомлений, которые облегчают пошаговое обновление компоновки на основе изменений в соответствующих графических элементах.provide a base class of notification handlers that defines an interface for a set of notification handlers that facilitate step-by-step updating of the layout based on changes in the corresponding graphic elements. 37. Способ по п.35, дополнительно содержащий организацию презентаторов для видимого изображения в форме иерархического дерева.37. The method according to clause 35, further comprising organizing presenters for the visible image in the form of a hierarchical tree. 38. Способ по п.35, в котором в ответ на вызов создания компоновки для видимого изображения создают систему презентаторов, создавая тем самым отдельную систему презентаторов и соответствующие презентаторы для каждого видимого изображения.38. The method according to clause 35, in which in response to the challenge of creating a layout for the visible image create a system of presenters, thereby creating a separate system of presenters and corresponding presenters for each visible image. 39. Способ по п.35, в котором базовый класс презентаторов задает метод обновления для вычисления свойств компоновки для экземпляра презентатора, связанного с конкретным графическим элементом.39. The method according to clause 35, in which the base class of presenters defines an update method for calculating the layout properties for the presenter instance associated with a particular graphic element. 40. Способ по п.35, в котором базовый класс презентаторов задает метод визуализации для формирования команд, выдаваемых в подсистему графического вывода.40. The method according to clause 35, in which the base class of presenters defines a visualization method for generating commands issued to the graphical output subsystem. 41. Способ по п.35, в котором система презентаторов поддерживает образование заранее определенных классов презентаторов и внешних классов презентаторов.41. The method according to clause 35, in which the system of presenters supports the formation of predefined classes of presenters and external classes of presenters. 42. Способ по п.35, в котором классы презентаторов соответствуют отличающимся типам презентаторов, которые компонуют различные типы контента графического элемента.42. The method according to clause 35, in which the classes of presenters correspond to different types of presenters that compose various types of content of the graphic element. 43. Способ по п.35, в котором презентаторы в видимом изображении иерархически упорядочены так, что дочерние презентаторы содержатся в области, заданной соответствующим родительским презентатором.43. The method according to clause 35, in which the presenters in the visible image are hierarchically ordered so that the child presenters are contained in the area specified by the corresponding parent presenter. 44. Считываемая компьютером среда, включающая в себя выполняемые компьютером команды для облегчения обработки изображения от имени программы, предоставляющей графические элементы, которые содержат данные, представляющие отображаемый контент программы, посредством презентаторов, определяющих состояния отображения для графических элементов, и где презентатор поддерживает описание компоновки для соответствующего графического элемента и где система презентаторов обеспечивает хостинг и упорядочивание презентаторов, связанных с графическими элементами в видимом изображении, причем считываемые компьютером команды, облегчающие выполнение способа, содержат этапы:44. A computer-readable medium including computer-executable instructions to facilitate image processing on behalf of a program providing graphic elements that contain data representing the displayed content of the program, by presenters defining display states for the graphic elements, and where the presenter supports a layout description for corresponding graphic element and where the system of presenters provides hosting and ordering of presenters associated with the graph eskimi elements visible in the image, wherein the computer readable instructions, facilitating the execution of the method steps comprise: предоставление системы презентаторов, содержащей базовый класс презентаторов и ведущий интерфейс презентаторов, содержащий метод для создания компоновки, воплощенной в наборе презентаторов, связанных с графическими элементами в видимом изображении;providing a system of presenters containing the base class of presenters and a leading interface for presenters, containing a method for creating the layout embodied in a set of presenters associated with graphic elements in the visible image; прием ведущим интерфейсом презентаторов запроса на формирование компоновки для набора графических элементов в видимом изображении; иreceiving the leading interface of the presenters of the request for the formation of the layout for a set of graphic elements in the visible image; and создание для набора графических элементов соответствующих презентаторов из набора классов презентаторов, полученных из базового класса презентаторов, и вызов метода на каждом созданном презентаторе для вычисления состояния компоновки для графического элемента, соответствующего презентатору.creating for the set of graphic elements corresponding presenters from the set of presenter classes obtained from the base class of presenters, and calling the method on each created presenter to calculate the layout state for the graphic element corresponding to the presenter. 45. Считываемая компьютером среда по п.44, дополнительно содержащая считываемые компьютером команды для упорядочения презентаторов для видимого изображения в форме иерархического дерева.45. The computer-readable medium of claim 44, further comprising computer-readable commands for arranging the presenters for the visible image in the form of a hierarchical tree. 46. Считываемая компьютером среда по п.44, в которой выполняемые компьютером команды облегчают создание экземпляра системы презентаторов в ответ на вызов создания компоновки для видимого изображения, создавая тем самым отдельную систему презентаторов и соответствующие презентаторы для каждого видимого изображения.46. The computer-readable medium of claim 44, wherein the computer-executable instructions facilitate creating an instance of the presenter system in response to a call to create a layout for the visible image, thereby creating a separate presenter system and corresponding presenters for each visible image. 47. Считываемая компьютером среда по п.44, в которой базовый класс презентаторов задает метод обновления для вычисления свойств компоновки для экземпляра презентатора, связанного с конкретным графическим элементом.47. The computer-readable medium of claim 44, wherein the base class of presenters defines an update method for computing layout properties for a presenter instance associated with a particular graphic element. 48. Считываемая компьютером среда по п.44, в которой базовый класс презентаторов задает метод визуализации для формирования команд, выдаваемых в подсистему графического вывода.48. The computer-readable medium of claim 44, wherein the base class of presenters defines a visualization method for generating commands issued to the graphical output subsystem. 49. Считываемая компьютером среда по п.44, в которой система презентаторов поддерживает образование заранее определенных классов презентаторов и внешних классов презентаторов.49. The computer-readable medium of claim 44, wherein the presenter system supports the formation of predetermined presenter classes and external presenter classes. 50. Считываемая компьютером среда по п.44, в которой классы презентаторов соответствуют отличающимся типам презентаторов, которые компонуют различные типы контента графического элемента.50. The computer-readable medium of claim 44, wherein the presenter classes correspond to different types of presenters that compose various types of graphic element content. 51. Считываемая компьютером среда по п.44, в которой базовый класс презентаторов задает заполнитель для дочерних презентаторов, облегчая тем самым иерархическую компоновку презентаторов в видимом изображении, так что дочерние презентаторы содержатся в области, заданной соответствующим родительским презентатором.51. The computer-readable medium of claim 44, wherein the base class of presenters sets a placeholder for child presenters, thereby facilitating the hierarchical arrangement of presenters in the visible image, so that the child presenters are contained in the area specified by the corresponding parent presenter.
RU2004114219/09A 2003-05-09 2003-05-15 System for providing hosting to objects of graphical composition or representation RU2305860C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/434,850 US20040225960A1 (en) 2003-05-09 2003-05-09 System for hosting graphical layout/presentation objects
US10/434850 2003-05-09
US10/434,850 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
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
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US8243317B2 (en) 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US7580948B2 (en) * 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
US8363232B2 (en) 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7519899B2 (en) * 2004-05-03 2009-04-14 Microsoft Corporation Planar mapping of graphical elements
US7755786B2 (en) 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
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
US8091016B2 (en) * 2008-12-18 2012-01-03 Microsoft Corporation Visually manipulating instance collections
US8230357B2 (en) * 2008-12-18 2012-07-24 Microsoft Corporation Visually processing instance data
US8402379B2 (en) * 2009-09-30 2013-03-19 SAP Portals Israel Limited Dynamic content layout for a user interface display
JP6322140B2 (en) 2011-09-30 2018-05-09 カルガリー サイエンティフィック インコーポレイテッド Unconnected application extension including interactive digital surface layer for sharing and annotation of collaborative remote applications
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
WO2019081574A1 (en) * 2017-10-26 2019-05-02 Siemens Aktiengesellschaft Building and tracking of an automation 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)

* Cited by examiner, † Cited by third party
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
US6038573A (en) 1997-04-04 2000-03-14 Avid Technology, Inc. News story markup language and system and process for editing and processing documents
US6141007A (en) 1997-04-04 2000-10-31 Avid Technology, Inc. Newsroom user interface including multiple panel workspaces
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

Cited By (30)

* Cited by examiner, † Cited by third party
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
US8842925B2 (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
US8842926B2 (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
MXPA04004405A (en) 2005-02-17
JP2006526179A (en) 2006-11-16
NO20041880L (en) 2004-06-28
CA2462172A1 (en) 2004-11-09
RU2004114219A (en) 2005-09-20
EP1627376A1 (en) 2006-02-22
AU2003237867B2 (en) 2009-09-17
CN1615507A (en) 2005-05-11
JP4277002B2 (en) 2009-06-10
BR0306159A (en) 2005-02-09
US20040225960A1 (en) 2004-11-11
NO20041880D0 (en) 2004-05-07
KR20060006989A (en) 2006-01-23
CN100442265C (en) 2008-12-10
IL161285A (en) 2009-02-11
EP1627376A4 (en) 2010-05-12
AU2003237867A1 (en) 2005-01-21
AU2003237867B8 (en) 2009-10-15
ZA200403495B (en) 2006-05-31
KR100969720B1 (en) 2010-07-12
WO2004107308A1 (en) 2004-12-09

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
US7594166B1 (en) Dynamic web page behaviors
AU2009225393B2 (en) File access via conduit application
US8890890B2 (en) Pluggable web-based visualizations for applications
US20120133653A1 (en) Lightweight three-dimensional display
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
JP2001306310A (en) Method and device for assisting creation of gui part and application developing method
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