KR20060050408A - Method, system, and computer-readable medium for creating and laying out a graphic within an application program - Google Patents

Method, system, and computer-readable medium for creating and laying out a graphic within an application program Download PDF

Info

Publication number
KR20060050408A
KR20060050408A KR1020050073848A KR20050073848A KR20060050408A KR 20060050408 A KR20060050408 A KR 20060050408A KR 1020050073848 A KR1020050073848 A KR 1020050073848A KR 20050073848 A KR20050073848 A KR 20050073848A KR 20060050408 A KR20060050408 A KR 20060050408A
Authority
KR
South Korea
Prior art keywords
constraints
constraint
graphic
algorithms
layout
Prior art date
Application number
KR1020050073848A
Other languages
Korean (ko)
Other versions
KR101433936B1 (en
Inventor
자넷 엘. 쇼르
스테펀 티. 웰스
매튜 코틀러
토마스 씨. 언더힐
스코트 에이. 셔먼
일란 베르커
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 KR20060050408A publication Critical patent/KR20060050408A/en
Application granted granted Critical
Publication of KR101433936B1 publication Critical patent/KR101433936B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

드로잉 응용 프로그램 내에 그래픽을 생성 및 레이아웃하기 위한 방법, 장치 및 컴퓨터 판독가능한 매체가 제공된다. 상기 방법은, 그래픽에 표시될 데이터 세트 및 데이터 관계들을 정의하는 데이터 모델을 수신하는 단계; 데이터 모델로부터의 데이터의, 알고리즘들, 알고리즘 파라미터들, 제약들(constraints), 제약 법칙들(constraint rules) 및 형상 속성들(shape properties)의 세트에의 매핑(mapping)을 기술하는 그래픽 정의를 수신하는 단계; 그래픽 정의로부터의 알고리즘들, 제약들 및 제약 법칙들의 세트를 이용하여 레이아웃 노드들에 대한 형상 크기 및 위치를 결정하는 단계; 및 크기 및 위치를 포함하여, 그래픽에 대한 형상들 및 형상 속성들의 리스트를 생성하는 단계를 포함한다. 상기 방법은 제약 법칙들의 세트에 기초하여 그래픽이 특정 영역 내로의 소정의 레이아웃에 들어맞는지 및 그래픽이 특정 영역에 들어맞지 않는지를 결정한 다음에, 제약 법칙들을 이용하여 제약 값들의 세트를 수정하는 단계를 더 포함한다.A method, apparatus, and computer readable medium are provided for creating and laying out graphics in a drawing application. The method includes receiving a data model defining a data set and data relationships to be displayed in the graphic; Receive a graphical definition describing the mapping of data from the data model to a set of algorithms, algorithm parameters, constraints, constraint rules, and shape properties. Doing; Determining a shape size and location for layout nodes using a set of algorithms, constraints and constraint laws from the graphical definition; And generating a list of shapes and shape attributes for the graphic, including size and position. The method determines based on the set of constraint laws whether the graphic fits into a given layout into a particular area and if the graphic does not fit into a particular area, then modifying the set of constraint values using the constraint laws. It includes more.

그래픽, 데이터 모델, 제약, 제약 법칙, 레이아웃, 드로잉 응용 프로그램 Graphics, Data Models, Constraints, Constraints, Layouts, Drawing Applications

Description

응용 프로그램 내에 그래픽을 생성하고 레이아웃하기 위한 방법, 시스템 및 컴퓨터 판독가능한 매체{METHOD, SYSTEM, AND COMPUTER-READABLE MEDIUM FOR CREATING AND LAYING OUT A GRAPHIC WITHIN AN APPLICATION PROGRAM}METHOD, SYSTEM, AND COMPUTER-READABLE MEDIUM FOR CREATING AND LAYING OUT A GRAPHIC WITHIN AN APPLICATION PROGRAM}

도 1은 본 발명의 다양한 실시예들에서 이용되고, 다양한 실시예들에 의해 제공되는 컴퓨터 시스템을 예시한 컴퓨터 시스템 아키텍처 그래프.1 is a computer system architecture graph illustrating a computer system used in various embodiments of the present invention and provided by various embodiments.

도 2는 본 발명의 다양한 실시예들에 따른, 도 1의 컴퓨터 시스템에서의 드로잉 응용 프로그램 내의 그래픽의 생성 및 레이아웃에 이용되는 다양한 컴포넌트들의 블록도.2 is a block diagram of various components used in the generation and layout of graphics in a drawing application in the computer system of FIG.

도 3은 본 발명의 다양한 실시예들에 따른, 예시적인 레이아웃 트리의 블록도.3 is a block diagram of an exemplary layout tree, in accordance with various embodiments of the present invention.

도 4는 본 발명의 다양한 실시예들에 따른, 레이아웃 트리를 생성하기 위한 예시적인 그래픽 정의의 일부의 블록도.4 is a block diagram of a portion of an exemplary graphical definition for generating a layout tree, in accordance with various embodiments of the present invention.

도 5는 본 발명의 일 실시예에 따른, 그래픽을 생성 및 레이아웃하기 위해 도 1의 컴퓨터 시스템에서의 드로잉 응용 프로그램에 의해 수행되는 예시적인 루틴.5 is an exemplary routine performed by a drawing application in the computer system of FIG. 1 to generate and layout graphics, in accordance with an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

5: 중앙처리장치 7: 시스템 메모리5: central processing unit 7: system memory

9: RAM 10: 드로잉 애플리케이션 프로그램9: RAM 10: drawing application program

11: ROM 14: 대용량 저장장치11: ROM 14: Mass Storage Device

16: 운영체계 18: 네트워크16: operating system 18: network

20: 네트워크 인터페이스 유닛 22: 입출력 제어기20: network interface unit 22: input / output controller

24: 그래픽 26: 지속 파일24: Graphic 26: Persistent File

30: 데이터 모델 40: 그래픽 정의 파일30: Data Model 40: Graphic Definition File

[관련 출원들과의 상호-참조][Cross-Reference to Related Applications]

본 특허 출원은, 본 출원과 동일한 양수인에게 양도되고, 2004년 9월 30일에 출원된, "Editing The Text Of An Arbitrary Graphic Via A Hierarchical List" 명칭의 미국 특허 출원 번호 제_______호와 관련이 있고, 이와 동시에 출원되었다. 전술한 특허 출원은 참조로서 그대로 본 명세서에 명백하게 통합되어 있다.This patent application is related to US Patent Application No. _______, entitled “Editing The Text Of An Arbitrary Graphic Via A Hierarchical List,” assigned to the same assignee as the present application and filed on September 30, 2004. There is, and simultaneously filed. The foregoing patent application is expressly incorporated herein by reference as is.

워드 프로세서들 및 전용 드로잉 응용 프로그램들(drawing application programs)을 포함한 현대의 소프트웨어 애플리케이션들은, 사용자들이 간단한 그래픽과 복잡한 그래픽 양쪽 모두를 생성할 수 있게 한다. 이들 드로잉 프로그램들은 사용자들이, 텍스트와 함께 주석첨가(annotate)될 수 있는 다양한 형상들(shapes)을 이용하여 그래픽들을 생성할 수 있게 한다. 이들 응용 프로그램들에 의해 생성된 그래픽들은 단독형 문서(stand-alone document)들일 수 있거나 텍스트 문서들에 통합될 수 있다. 그러나, 현대의 드로잉 프로그램들에 의해 제공되는 장점들에도 불구하고, 이들 프로그램들은 통상의 사용자에 의한 그래픽들의 생성 및 레이아웃을 저해하는 여러 가지 단점들을 갖는다.Modern software applications, including word processors and dedicated drawing application programs, allow users to create both simple and complex graphics. These drawing programs allow users to create graphics using various shapes that can be annotated with text. Graphics generated by these applications may be stand-alone documents or integrated into text documents. However, despite the advantages provided by modern drawing programs, these programs have several disadvantages that hinder the creation and layout of graphics by an ordinary user.

현대의 드로잉 프로그램들의 하나의 단점은, 비록 이들 프로그램들이 그래픽들을 생성하기 위한 툴들을 제공할 수 있지만, 많은 사용자들은 이들 기존의 툴들을 알고 있지 않거나, 이 툴들을 효율적으로 사용하는 법을 알고 있지 않다는 점이다. 결과적으로, 사용자들은 그 자신의 그래픽들을 생성하거나 그래픽 툴들을 부정확하게 사용함으로써, 그래픽의 형상이 오정렬(misalign)되거나, 동일한 글자 크기(font size)여야 하는 텍스트가 동일하지 않게 된다. 현대의 드로잉 프로그램들의 다른 단점은, 텍스트를 포함하는 형상들이, 추가되거나 확장된 텍스트에 대하여 텍스트가 형상에 완전히 둘러싸인 채로 유지되도록, 글자 크기를 자동으로 조정하거나 형상들의 치수들을 자동으로 확장하지 않는다는 점이다. 현대의 드로잉 프로그램들의 또 다른 단점은, 이들 프로그램들이 고정된 레이아웃을 제공하거나 레이아웃을 전혀 제공하지 않는다는 점이다. 레이아웃이 없는 프로그램들은 사용자들이 수동으로 형상마다 크기 및 위치를 정하는 것을 요구하고, 고정된 레이아웃을 갖는 프로그램들은 사용자들이 형상의 크기 또는 위치에 대하여 임의의 변경들 또는 커스터마이제이션(customization)들을 행하지 못하게 한다.One disadvantage of modern drawing programs is that although these programs can provide tools for generating graphics, many users do not know these existing tools or know how to use them efficiently. Is the point. As a result, users create their own graphics or use graphics tools incorrectly, such that the shape of the graphics is misaligned or the text that should be the same font size is not the same. Another drawback of modern drawing programs is that shapes containing text do not automatically adjust letter size or automatically expand the dimensions of the shapes so that the text remains completely surrounded by the shape for added or expanded text. to be. Another disadvantage of modern drawing programs is that they provide a fixed layout or no layout at all. Programs without layout require users to manually size and position each shape, and programs with a fixed layout prevent users from making any changes or customizations to the size or position of the shape.

이러한 고려사항들 및 다른 고려사항들과 관련하여, 본 발명의 다양한 실시예들이 이루어졌다.In connection with these and other considerations, various embodiments of the invention have been made.

본 발명에 따르면, 전술한 문제점들 및 기타 다른 문제점들은, 데이터 및 관계들(relationships)을 특정 그래픽 레이아웃으로 변환하는 제약(constraint)들의 세트에 기초하여 드로잉 응용 프로그램 내에 그래픽을 생성 및 레이아웃하기 위한 방법, 장치 및 컴퓨터 판독가능한 매체에 의해 해결된다. 상기 방법은, 그래픽에 표시될 데이터 및 그 데이터 간의 관계들을 정의하는 데이터 모델을 수신하는 단계; 생성될 그래픽을 정의하는 그래픽 정의(graphic definition)를 수신하는 단계; 데이터 모델로부터의 데이터를 그래픽 정의에서의 정보에 매핑(mapping)함으로써 레이아웃 트리(tree)를 생성하는 단계; 그래픽 정의에 특정된 제약 값들 및 제약 법칙들(constraint rules)에 따라 그래픽 형상들(graphic shapes)에 대한 크기 및 위치를 결정하는 단계; 및 레이아웃 트리로부터의 정보를 이용하여 그래픽에 대한 형상 리스트(shape list)를 생성하는 단계를 포함한다. 그 다음, 이들 형상들은 최종적인 그래픽을 달성하기 위해 임의의 렌더링 애플리케이션(rendering application)에 의해 렌더링될 수 있다.In accordance with the present invention, the foregoing and other problems are a method for creating and laying out graphics in a drawing application based on a set of constraints that transform data and relationships into a particular graphical layout. , Devices and computer readable media. The method includes receiving a data model defining data to be displayed in a graphic and relationships between the data; Receiving a graphic definition defining a graphic to be generated; Generating a layout tree by mapping data from the data model to information in the graphic definition; Determining size and position for graphic shapes according to constraint values and constraint rules specified in the graphic definition; And generating a shape list for the graphics using the information from the layout tree. These shapes can then be rendered by any rendering application to achieve the final graphics.

데이터 모델로부터의 데이터를 그래픽 정의에서의 정보에 매핑하기 위해서, 상기 방법은 데이터 모델을 통해 반복하고(iterate) 그래픽 정의에 특정된 판단기준(criteria)을 적용하여, 그래픽을 구성하는데 필요한 각각의 형상에 대한 알고리즘들, 제약들, 제약 법칙들 및 형상 속성들을 결정한다. 그 다음, 이들 데이터 세트들은, 그래픽 구조의 계층적 표시(hierarchical representation)인, 레이아웃 트리에 추가된다.In order to map the data from the data model to the information in the graphic definition, the method iterates through the data model and applies the criteria specified in the graphic definition to each shape necessary to construct the graphic. Algorithms, constraints, constraint laws and shape properties for. These data sets are then added to the layout tree, which is a hierarchical representation of the graphical structure.

그래픽 형상들의 크기 및 위치를 결정하기 위해서, 상기 방법은 그래픽 정의에서의 알고리즘들, 제약들 및 제약 법칙들에 액세스한다. 알고리즘들은 원형 경로(circular path)에 형상들을 레이아웃하는 것 또는 선형 경로(linear path)에 형상들을 레이아웃하는 것과 같은 특정 그래픽 레이아웃을 달성하기 위해 형상들의 크기 및 위치를 정하는 법을 알고 있는 잠재적인 알고리즘들의 비한정적인 세트로부터 얻어진다. 알고리즘들은 형상들의 수, 각 형상 내의 텍스트의 양, 및 형상들이 레이아웃될 영역의 치수들(dimensions)에 기초하여, 형상들의 크기 및 위치를 결정하기 위해, 제약 법칙들, 또는 범위 내에서 개시 값들(starting values)을 변경하기 위한 명령들에 따르는, 제약들, 또는 개시 값들을 이용한다.In order to determine the size and position of the graphic shapes, the method accesses algorithms, constraints and constraint laws in the graphic definition. Algorithms are potential algorithms that know how to size and position shapes to achieve a particular graphical layout, such as laying out shapes on a circular path or laying out shapes on a linear path. Obtained from a non-limiting set. Algorithms determine the size and location of the shapes based on the number of shapes, the amount of text in each shape, and the dimensions of the area in which the shapes are to be laid out, including constraints, constraints, or starting values, according to instructions for changing the starting values).

본 발명은 컴퓨터 프로세스, 컴퓨팅 시스템으로서, 또는 컴퓨터 프로그램 제품 또는 컴퓨터 판독가능한 매체와 같은 제조 물품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고, 컴퓨터 프로세스를 실행하기 위한 명령들의 컴퓨터 프로그램을 인코딩한, 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨터 시스템에 의해 판독가능하고, 컴퓨터 프로세스를 실행하기 위한 명령들의 컴퓨터 프로그램을 인코딩한, 반송파(carrier) 상의 전파 신호(propagated signal)일 수 있다.The invention may be implemented as a computer process, computing system, or as an article of manufacture such as a computer program product or a computer readable medium. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier, readable by a computer system and encoding a computer program of instructions for executing a computer process.

본 발명을 특징지우는 이들 및 다양한 다른 특징들뿐만 아니라 장점들은 다음의 상세한 설명 및 연관되는 도면들로부터 명백해질 것이다.These and various other features as well as advantages characterizing the present invention will become apparent from the following detailed description and the associated drawings.

이제, 동일한 부호는 동일한 요소를 나타내는 도면들을 참조하여, 본 발명의 다양한 양태들에 대하여 설명하기로 한다. 특히, 도 1 및 대응하는 논의는 본 발 명의 실시예들이 구현될 수 있는 적절한 컴퓨팅 환경에 대한 간단한 일반적인 설명을 제공하기 위한 것이다. 본 발명은 개인용 컴퓨터상의 운영 체계에서 구동하는 프로그램 모듈들과 함께 실행하는 프로그램 모듈들의 일반적인 문맥에서 설명될 것이지만, 이 기술분야의 당업자들이면, 본 발명이 또한 다른 유형의 컴퓨터 시스템들 및 프로그램 모듈들과 함께 구현될 수 있다는 것을 인식할 것이다.DETAILED DESCRIPTION Various aspects of the present invention will now be described with reference to the drawings wherein like numerals represent like elements. In particular, FIG. 1 and corresponding discussion are intended to provide a brief general description of a suitable computing environment in which embodiments of the present invention may be implemented. Although the present invention will be described in the general context of program modules executing with program modules running on an operating system on a personal computer, those skilled in the art will also appreciate that the present invention may also be useful with other types of computer systems and program modules. It will be appreciated that it can be implemented together.

일반적으로, 프로그램 모듈들은 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들 및 특정 태스크들을 수행하거나 특정 추상화 데이터 유형들(abstract data tapes)을 구현하는 다른 유형의 구조들을 포함한다. 또한, 이 기술분야의 당업자들은 본 발명이 핸드헬드 장치들(hand-held devices), 멀티프로세서 시스템들, 마이크로프로세서-기반 또는 프로그램가능 가전 제품들(consumer electronics), 미니컴퓨터들(minicomputers), 메인프레임 컴퓨터들(mainframe computers) 등을 포함하여, 다른 컴퓨터 시스템 구성들과 함께 실행될 수 있다는 것을 알 수 있을 것이다. 본 발명은 또한 통신 네트워크를 통하여 링크되는 원격 프로세싱 장치들에 의해 태스크들이 수행되는 분산형 컴퓨팅 환경들에서 실행될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치들 양쪽 모두에 위치할 수 있다.Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data tapes. In addition, those skilled in the art will appreciate that the present invention provides hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mains It will be appreciated that it may be implemented with other computer system configurations, including mainframe computers and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

이제, 도 1을 참조하면, 본 발명의 다양한 실시예들에서 이용되는 컴퓨터(2)에 대한 예시적인 컴퓨터 아키텍처가 설명될 것이다. 도 1에 도시된 컴퓨터 아키텍처는, 중앙 처리 장치("CPU")(5); RAM(random access memory)(9) 및 ROM(rom only memory)(11)을 포함한 시스템 메모리(7); 및 메모리를 CPU(5)에 연결하는 시 스템 버스(12)를 포함하는 통상적인 데스크톱(desktop) 또는 랩톱(laptop) 컴퓨터를 예시한다. 시동(start-up) 동안과 같이, 컴퓨터 내의 요소들 간에 정보를 전송하는 것을 도와 주는 기본 루틴들을 포함하는 BIOS(basic input/output system)가 ROM(11)에 저장된다. 컴퓨터(2)는 운영 체계(16), 응용 프로그램들 및 다른 프로그램 모듈들을 저장하기 위한 대용량 저장 장치(14)를 더 포함하며, 이것은 하기에서 보다 상세하게 설명될 것이다.Referring now to FIG. 1, an exemplary computer architecture for a computer 2 used in various embodiments of the present invention will be described. The computer architecture shown in FIG. 1 includes a central processing unit (“CPU”) 5; System memory 7 including random access memory (RAM) 9 and rom only memory (ROM) 11; And a system bus 12 that connects memory to the CPU 5. A basic input / output system (BIOS) is stored in the ROM 11, including basic routines that help transfer information between elements in the computer, such as during start-up. The computer 2 further includes a mass storage device 14 for storing an operating system 16, applications and other program modules, which will be described in more detail below.

대용량 저장 장치(14)는 버스(12)에 연결되는 대용량 저장장치 제어기(mass storage controller)(도시되지 않음)를 통하여 CPU(5)에 연결된다. 대용량 저장 장치(14) 및 연관된 컴퓨터 판독가능한 매체는 컴퓨터(2)에 비휘발성 저장장치를 제공한다. 비록 본 명세서에 포함된 컴퓨터 판독가능한 매체의 설명이 하드 디스크 또는 CD-ROM과 같은 대용량 저장 장치를 가리키고 있지만, 이 기술분야의 당업자들은 컴퓨터 판독가능한 매체가 컴퓨터(2)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다는 것을 알아야 한다.The mass storage device 14 is connected to the CPU 5 via a mass storage controller (not shown) connected to the bus 12. Mass storage 14 and associated computer readable media provide non-volatile storage for computer 2. Although the description of computer readable media included herein refers to a mass storage device such as a hard disk or CD-ROM, those skilled in the art will appreciate that any computer readable media can be accessed by the computer 2. It should be appreciated that the media may be available.

예시적으로, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있으며, 이것으로 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함한다. 컴퓨터 저장 매체는, RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 고체 메모리 기술, CD-ROM, DVD(digital versatile disk), 또는 다른 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치들, 또는 원하는 정보를 저장하는데 이용될 수 있고 컴퓨터(2)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하며, 이것으로 한정되지 않는다.By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media may include RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disk (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other. Magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by computer 2, but is not limited to such.

본 발명의 다양한 실시예들에 따르면, 컴퓨터(2)는 인터넷과 같은 네트워크(18)를 통한 원격 컴퓨터들과의 논리 접속들(logical connections)을 이용하는 네트워킹된 환경(networked environment)에서 동작할 수 있다. 컴퓨터(2)는 버스(12)에 연결되는 네트워크 인터페이스 유닛(20)을 통하여 네트워크(18)에 연결할 수 있다. 네트워크 인터페이스 유닛(20)은 또한 다른 유형의 네트워크들 및 원격 컴퓨터 시스템들에 연결하는데 이용될 수 있다는 것을 알아야 한다. 컴퓨터(2)는 또한 키보드, 마우스 또는 전자 스타일러스(electronic stylus)(도 1에 도시되지 않음)를 포함하여, 다른 다수의 장치들로부터의 입력을 수신하고 처리하기 위한 입출력 제어기(22)를 포함할 수 있다. 마찬가지로, 입출력 제어기(22)는 표시 화면, 프린터 또는 다른 유형의 출력 장치에 출력을 제공할 수 있다.According to various embodiments of the present invention, the computer 2 may operate in a networked environment using logical connections with remote computers via a network 18 such as the Internet. . The computer 2 may connect to the network 18 via a network interface unit 20 connected to the bus 12. It should be appreciated that the network interface unit 20 can also be used to connect to other types of networks and remote computer systems. The computer 2 may also include an input / output controller 22 for receiving and processing input from a number of other devices, including a keyboard, mouse or electronic stylus (not shown in FIG. 1). Can be. Similarly, input / output controller 22 may provide output to a display screen, printer, or other type of output device.

상기에 간단하게 언급한 바와 같이, 다수의 프로그램 모듈들 및 데이터 파일들은 워싱톤, 레드몬드의 MICROSOFT CORPORATION으로부터의 WINDOWS XP 운영 체계와 같은, 네트워킹된 개인용 컴퓨터의 동작을 제어하는데 적절한 운영 체계(16)를 포함하여, 컴퓨터(2)의 대용량 저장 장치(14) 및 RAM(9)에 저장될 수 있다. 대용량 저장 장치(14) 및 RAM(9)은 또한 하나 또는 그 이상의 프로그램 모듈들을 저장할 수 있다. 특히, 대용량 저장 장치(14) 및 RAM(9)은 드로잉 응용 프로그램(10)을 저장할 수 있다. 드로잉 응용 프로그램(10)은 그래픽(24)과 같은, 그래픽의 생성 및 레이아웃을 위한 기능을 제공하는 동작을 한다. 본 발명의 일 실시예에 따 르면, 드로잉 응용 프로그램(10)은 WORD, EXCEL 및 POWERPOINT 응용 프로그램들을 포함하는 MICROSOFT CORPORATION으로부터의 응용 프로그램들의 OFFICE 슈트(suite)를 포함한다. 이제, 도 2를 참조하면, 드로잉 응용 프로그램(10) 내에서의 그래픽의 생성 및 레이아웃에 이용되는 다양한 컴포넌트들의 블록도가 본 발명의 다양한 실시예들에 따라 도시된다. 다양한 컴포넌트들은 데이터 모델(30), 그래픽 정의(40), 레이아웃 트리(50), 알고리즘(60) 및 형상 리스트(70)를 포함한다. 본 발명의 다양한 실시예들에 있어서, 드로잉 응용 프로그램(10)은 그래픽의 생성 및 레이아웃에 관한 명령들을 위한 그래픽 정의(40)에서 판독한다. 본 발명의 일 실시예에 있어서, 데이터 모델(30) 및 그래픽 정의 파일(40)은 드로잉 응용 프로그램(10)에 의해 액세스되는 컴퓨터 시스템(2)에 개별 파일들로서 저장될 수 있다.As briefly mentioned above, a number of program modules and data files comprise an operating system 16 suitable for controlling the operation of a networked personal computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION, Redmond, Washington. Thus, it can be stored in the mass storage device 14 and the RAM 9 of the computer 2. The mass storage device 14 and the RAM 9 may also store one or more program modules. In particular, the mass storage device 14 and the RAM 9 may store the drawing application 10. The drawing application 10 acts to provide functions for the creation and layout of the graphics, such as the graphics 24. According to one embodiment of the invention, the drawing application 10 includes an OFFICE suite of applications from MICROSOFT CORPORATION, including WORD, EXCEL and POWERPOINT applications. Referring now to FIG. 2, a block diagram of various components used in the generation and layout of graphics within the drawing application 10 is shown in accordance with various embodiments of the present invention. Various components include data model 30, graphic definition 40, layout tree 50, algorithm 60, and shape list 70. In various embodiments of the invention, the drawing application 10 reads from the graphic definition 40 for instructions relating to the creation and layout of the graphic. In one embodiment of the present invention, data model 30 and graphic definition file 40 may be stored as separate files in computer system 2 accessed by drawing application 10.

데이터 모델(30)은 노드들, 관계들, 텍스트, 및 그래픽(24)을 구성하기 위한 콘텐트(content)를 포함하는 속성들의 모음(collection)을 포함한다. 그래픽 정의(40)는 특정 그래픽 레이아웃을 생성하는 법을 기술하는 데이터의 모음이다. 본 발명의 다양한 실시예들에 있어서, 그래픽 정의(40)는 확장성 마크업 언어(extensible markup language: XML)에 따라 포맷이 정해질 수 있다. 이 기술분야의 당업자들에 의해 이해되는 바와 같이, XML은 데이터를 통신하기 위한 표준 포맷이다. XML 데이터 포맷에서는, 통신될 수 있는 데이터의 유형 및 구조를 결정하는 문법적 및 데이터 유형 법칙들의 세트를 갖는 XML 데이터를 제공하기 위한 스키마(schema)가 이용된다. XML 데이터 포맷은 이 기술분야의 당업자들에게 잘 알려져 있으므로, 본 명세서에서는 보다 상세하게 설명되지 않는다. 그래픽 정의(40)에 의해 기술되는 그래픽의 양태들은, 각각의 레이아웃 노드에 대해 이용하기 위한 레이아웃 알고리즘의 명칭, 알고리즘 파라미터들, 제약들, 및 레이아웃 트리, 형상 지오메트리(shape geometry) 및 스타일 속성들에 대한 디폴트(default), 그래픽 분류 데이터 및 샘플 데이터 모델을 구성하기 위한 제약 법칙들을 포함한다.Data model 30 includes a collection of attributes that includes nodes, relationships, text, and content for constructing graphic 24. Graphic definition 40 is a collection of data describing how to create a particular graphic layout. In various embodiments of the invention, the graphic definition 40 may be formatted according to extensible markup language (XML). As will be appreciated by those skilled in the art, XML is a standard format for communicating data. In the XML data format, a schema is used to provide XML data with a set of grammatical and data type laws that determine the type and structure of data that can be communicated. Since the XML data format is well known to those skilled in the art, it is not described in more detail herein. Aspects of the graphic described by the graphic definition 40 depend on the name of the layout algorithm, algorithm parameters, constraints, and layout tree, shape geometry and style properties to use for each layout node. Constraints for constructing default, graphical classification data, and sample data models.

제약들은 그래픽을 생성하기 위한 레이아웃 알고리즘에 의해 이용되는 조건들이다. 제약의 일례는, 형상의 폭을 위해 이용될 값이다. 제약들은 수치 값들 또는 부울(Boolean) 값들을 포함할 수 있다는 것을 알 수 있을 것이다. 수치 제약들(numeric constraints)은 특정 수치 값(예를 들어, 폭 = 1 inch)을 특정할 수 있다. 수치 제약들은 또한 참조들을 이용한 다른 제약 값들을 참조함으로써 그 값을 계산할 수 있다(예를 들어, 높이 = 폭 * 0.75). 부울 제약들(Boolean constraints)은 한 세트의 모든 노드들이 다른 제약에 대해 동일한 값을 갖도록 하는 균등(equality) 제약들을 포함할 수 있고, 하나의 제약 값이 다른 제약 값에 기초하여 한정되는(예를 들어, 형상의 폭은 다른 형상의 높이보다 작거나 클 필요가 있는) 불균등(inequality) 제약들을 포함할 수 있다. 제약들은 드로잉 요소들 사이의 균등(예를 들어, 모든 정상 노드들은 동일한 글자 크기를 갖는다) 또는 불균등(예를 들어, 전이(transition) 노드들의 폭은 정상 노드 폭보다 작거나 같아야 한다)을 실시하기 위해 레이아웃 노드들 사이에 전파(propagate)될 수 있다. 제약들은 그 상태들을 다른 레이아웃 노드들에 전파하는 제약에 공유 전파자(shared propagator)를 부착함으로써 전파될 수 있다. 제약들과 제약 법칙들 양쪽 모두는 전파한 제약으로부터 다른 노드들에 대해 갱신될 수 있다는 것을 알 수 있을 것이 다. 제약 법칙들은, 제약 법칙들이 레이아웃 알고리즘에 의해 충족될 수 없는 경우에 제약들의 세트를 어떻게 수정할 것인지에 대한 설명이다. 예를 들어, 제약은 글자 크기가 14 포인트여야 함을 특정할 수 있지만, 제약 법칙은 글자 크기가 최소 8 포인트로 감소시킬 수 있음을 특정할 수 있다. 그래픽 정의(40)는 하기에서 도 4를 참조하여 보다 상세하게 논의될 것이다.Constraints are the conditions used by the layout algorithm to generate the graphics. One example of a constraint is the value to be used for the width of the shape. It will be appreciated that the constraints may include numerical values or Boolean values. Numeric constraints may specify a particular numerical value (eg width = 1 inch). Numerical constraints may also calculate the value by referring to other constraint values using references (eg, height = width * 0.75). Boolean constraints may include equality constraints such that all nodes of a set have the same value for another constraint, and one constraint value is defined based on another constraint value (e.g., For example, the width of the shape may include inequality constraints that need to be smaller or larger than the height of the other shape. Constraints are to enforce equality (eg all normal nodes have the same font size) or inequality (eg, the widths of transition nodes must be less than or equal to the normal node width) between drawing elements. Can be propagated between layout nodes. Constraints can be propagated by attaching a shared propagator to a constraint that propagates its states to other layout nodes. It will be appreciated that both constraints and constraint laws can be updated for other nodes from the propagating constraint. Constraint laws are a description of how to modify a set of constraints if the constraint laws cannot be met by the layout algorithm. For example, the constraint may specify that the font size should be 14 points, but the constraint law may specify that the font size can be reduced to at least 8 points. Graphic definition 40 will be discussed in more detail with reference to FIG. 4 below.

레이아웃 트리(34)는 표시 요소들(presentation elements) 또는 레이아웃 노드들의 모음이다. 레이아웃 노드는 그래픽(24)의 요소를 형성하는 하나의 형상 또는 형상들의 그룹을 나타내는 레이아웃 트리에서의 노드이다. 레이아웃 노드는 데이터 모델(30)의 노드들에 선택적으로 링크될 수 있다. 레이아웃 트리(34)는 각 지오메트리들, 속성들, 텍스트 맞춤(text fitting) 및 형상들의 배치를 포함하여, 그래픽을 구성할 형상들에 관한 데이터를 저장한다.Layout tree 34 is a collection of presentation elements or layout nodes. Layout nodes are nodes in the layout tree that represent one shape or group of shapes that form an element of graphic 24. The layout node may optionally be linked to the nodes of the data model 30. Layout tree 34 stores data about the shapes that will make up the graphic, including the respective geometries, attributes, text fitting, and placement of the shapes.

드로잉 응용 프로그램(10)은 레이아웃 노드들 및 이들 레이아웃 노드들과 연관하는 알고리즘들, 제약들 및 제약 법칙들을 구성하기 하기 위해 데이터 모델로부터의 데이터를 그래픽 정의에서의 그래픽 레이아웃 정보에 매핑함으로써 레이아웃 트리를 구성한다. 그 다음, 드로잉 응용 프로그램(10)은 드로잉 캔버스(drawing canvas) 상에 그래픽(24)을 렌더링하는데 이용되는 형상 리스트(50)를 구성하기 전에 형상 치수들, 텍스트 맞춤, 및 형상 배치를 결정하기 위해 알고리즘, 제약들 및 제약 법칙들을 이용한다. 레이아웃 노드들은 하기에서 보다 상세하게 논의될 것이다. 레이아웃 트리(34)는 하기에서 도 3을 참조하여 보다 상세하게 논의될 것이다.The drawing application 10 maps the layout tree by mapping the data from the data model to the graphical layout information in the graphical definition to construct the layout nodes and the algorithms, constraints and constraint laws associated with those layout nodes. Configure. The drawing application 10 then determines the shape dimensions, text alignment, and shape placement before constructing the shape list 50 used to render the graphics 24 on the drawing canvas. Use algorithms, constraints and constraint laws. Layout nodes will be discussed in more detail below. The layout tree 34 will be discussed in more detail with reference to FIG. 3 below.

이제, 도 3을 참조하면, 레이아웃 트리(34)의 일례의 블록도가 본 발명의 다양한 실시예들에 따라 도시되어 있다. 도 3에 도시된 레이아웃 트리(34)는 예시적인 것이며, 레이아웃 트리들은 그래픽에 대한 데이터의 양 및 그래픽 레이아웃이 정의되는 법에 따라 보다 크거나 보다 작을 수 있다는 것을 이해해야 한다. 레이아웃 트리(34)는 그래픽(24)을 레이아웃함에 있어서 이용될 레이아웃 노드들의 계층적 배열을 포함한다. 이 경우, 레이아웃 노드들은 그래픽을 포함하는 전체 페이지 영역, 페이지 노드(62)를 나타낸다. 페이지 노드(62)의 하위 노드들(또는 제2 레벨 노드들)은 그래픽 노드(64), 제목 노드(66) 및 콜아웃(callouts) 노드(67)를 포함한다. 그래픽 노드(64)의 하위 노드들은 다이어그램(diagram)을 구성하고, 데이터 모델 요소들에 맵 백(map back)하는 형상들을 나타내는, 제1 레벨 노드(68), 제2 레벨 노드(70) 및 제3 레벨 노드(72)를 포함한다. 또한, 제3 레벨 노드는, 가시적 형상들(visible shapes)을 나타내고 데이터 모델 요소들에 맵 백하는 하위 노드들인, 포인트 A(74) 및 포인트 B(76)를 포함한다.Referring now to FIG. 3, a block diagram of an example of layout tree 34 is shown in accordance with various embodiments of the present invention. The layout tree 34 shown in FIG. 3 is exemplary, and it should be understood that the layout trees may be larger or smaller depending on the amount of data for the graphic and how the graphic layout is defined. Layout tree 34 includes a hierarchical arrangement of layout nodes to be used in laying out graphics 24. In this case, the layout nodes represent the entire page area, page node 62, containing graphics. Subordinate nodes (or second level nodes) of page node 62 include a graphics node 64, a title node 66 and a callouts node 67. The first level node 68, the second level node 70, and the first level nodes, which form the diagram, represent the shapes that map back to the data model elements. Three level node 72. The third level node also includes point A 74 and point B 76, which are sub-nodes that represent visible shapes and map back to data model elements.

이제, 도 4를 참조하면, 그래픽 정의(40)의 일부의 블록도가 본 발명의 다양한 실시예들에 따라 도시되어 있다. 도 4에 도시된 바와 같이, 그래픽 정의의 이러한 구현은 그래픽(24)의 레이아웃을 정의하는 XML 스키마(schema)에 기초한다. XML 스키마는 레이아웃 노드에 의해 그래픽을 레이아웃하는데 이용되는 알고리즘의 타입(즉, pyramid)을 정의하는 Algorithm 태그를 포함하는 서브태그들(subtags)을 갖는 LayoutNode 태그(47), 레이아웃 노드에 의해 그래픽에서 이용될 수 있는 형상들(즉, trapezoid)을 정의하기 위한 Shapes 태그(48), 및 제약들을 정의하기 위한 Constraints 태그(49)를 포함한다.Referring now to FIG. 4, a block diagram of a portion of graphic definition 40 is shown in accordance with various embodiments of the present invention. As shown in FIG. 4, this implementation of the graphic definition is based on an XML schema that defines the layout of the graphic 24. The XML Schema is used in graphics by LayoutNode tags 47, with subtags containing Algorithm tags that define the type of algorithm used to lay out the graphics by the layout node (ie pyramid). Shapes tag 48 for defining shapes that may be (ie, trapezoid), and Constraints tag 49 for defining constraints.

이제, 도 5를 참조하면, 그래픽을 생성 및 레이아웃하기 위한 드로잉 응용 프로그램(10)에 의해 수행되는 프로세스를 도시한 예시적인 루틴(500)이 설명될 것이다. 본 명세서에 제시된 루틴들에 대한 논의를 읽으면, 본 발명의 다양한 실시예들의 논리 연산들은 (1) 컴퓨팅 시스템에서 구동하는 컴퓨터로 구현되는 행동들(acts) 또는 프로그램 모듈들의 시퀀스로서 및/또는 (2) 컴퓨팅 시스템 내의 상호접속된 기계 로직 회로들 또는 회로 모듈들로서 구현된다는 것을 알 수 있을 것이다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요건들에 따른 선택의 문제이다. 따라서, 도 5에 예시된, 본 명세서에 설명된 본 발명의 실시예들을 구성하는 논리 연산들은 연산들, 구조 장치들, 행동들 또는 모듈들로서 다양하게 지칭된다. 이 기술분야의 당업자들이면, 이들 연산들, 구조적 장치들, 행동들 및 모듈들이 본 명세서에 정의된 특허청구범위 내에 기술된 바와 같이 본 발명의 기술사상 및 범위로부터 벗어남이 없이 소프트웨어, 펌웨어, 특수 용도 디지털 로직, 및 임의의 조합으로 구현될 수 있다는 것을 인식할 것이다.Referring now to FIG. 5, an example routine 500 will be described that illustrates a process performed by the drawing application 10 for generating and laying out graphics. In reading the discussion of the routines set forth herein, the logical operations of the various embodiments of the present invention may be described as (1) as a sequence of computer implemented acts or program modules running on a computing system and / or (2) It will be appreciated that it is implemented as interconnected machine logic circuits or circuit modules within the computing system. Implementation is a matter of choice depending on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein, illustrated in FIG. 5, are variously referred to as operations, structural devices, actions, or modules. Those skilled in the art will appreciate that these operations, structural devices, actions, and modules may be used in software, firmware, and special applications without departing from the spirit and scope of the present invention as described in the claims defined herein. It will be appreciated that the digital logic may be implemented in any combination.

이제, 도 5를 참조하면, 루틴(500)이 연산(510)에서 개시되며, 연산(510)에서, 드로잉 응용 프로그램(10)은 생성될 그래픽에 표시될 데이터 및 데이터 관계들을 정의하는 데이터 모델을 수신한다. 데이터 및 데이터 관계들은 그래픽 정의에 특정된 패턴들에 따라, 레이아웃 프레임워크(framework)에 의해 생성되는 레이아웃 트리(34)에서의 각 레이아웃 노드의 타입 및 수를 결정한다는 것을 알 수 있을 것이다.Referring now to FIG. 5, routine 500 begins at operation 510, where drawing application 10 generates a data model that defines data and data relationships to be displayed in the graphic to be generated. Receive. It will be appreciated that the data and data relationships determine the type and number of each layout node in the layout tree 34 generated by the layout framework, in accordance with the patterns specified in the graphic definition.

루틴(500)은 연산(510)으로부터 연산(520)으로 계속 진행되며, 연산(520)에서, 드로잉 응용 프로그램(10)은 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 특정하는 레이아웃 노드들에의, 데이터 모델로부터의 데이터의 매핑에 대한 하나의 가능성(possibility)을 기술한 그래픽 정의를 수신한다. 그래픽 정의(40)는 컴퓨터 시스템(2)에 저장된, XML 파일과 같은, 개별 파일로서 검색될 수 있다는 것을 알 수 있을 것이다. 이러한 식으로, 사용자에 의해 추가될 수 있는 새로운 그래픽 정의들의 개발을 위한 지원은 새로운 그래픽 정의들이 드로잉 응용 프로그램(10)에 의해 판독될 수 있도록 제공된다. 새로운 그래픽 정의들은 레이아웃 프레임워크에 대한 변경들이 없이 생성되고 검색될 수 있으므로, 드로잉 응용 프로그램이 레이아웃할 수 있는 그래픽들의 확장된 세트를 허용할 수 있다.The routine 500 continues from operation 510 to operation 520, where the drawing application 10 specifies algorithms, parameters, constraints, constraint laws and shape properties. Receive a graphical definition describing one possibility for the mapping of data from the data model to layout nodes. It will be appreciated that the graphic definition 40 can be retrieved as a separate file, such as an XML file, stored in the computer system 2. In this way, support for the development of new graphic definitions that can be added by the user is provided such that the new graphic definitions can be read by the drawing application 10. New graphic definitions can be created and retrieved without changes to the layout framework, thus allowing an extended set of graphics to which the drawing application can lay out.

그래픽 정의는 알고리즘들, 파라미터들, 제약들 및 제약 법칙들을 적용하기 위한 패턴들을 제공한다. 본 명세서에 정의된 바와 같이, 알고리즘들은 형상들 및 텍스트의 위치 및 크기를 결정하기 위한 레이아웃 루틴들이다. 예를 들어, 하나의 알고리즘은 선형 경로(linear path)에 형상들을 레이아웃할 수 있고, 다른 알고리즘은 원형 경로(circular path)에 형상들을 레이아웃할 수 있다. 알고리즘들은 다양한 배치 옵션들을 결정하기 위해 파라미터들을 취할 수 있다는 것을 알 수 있을 것이다. 예를 들어, 선형 알고리즘은 드로잉 응용 프로그램(10)에서의 다양한 드로잉 툴 커맨드들을 통하여 제어될 수 있는 방향 및 방위(orientation)에 대한 파라미터들을 갖는다. 예를 들어, 그래픽의 방위를 변경하거나(예를 들면, 왼쪽으로부터 오른쪽 방향(left-to-right)과 오른쪽으로부터 왼쪽 방향(right-to-left)) 그 래픽을 회전하기 위해 레이아웃 알고리즘의 파라미터들 중 하나를 변경하기 위한 툴이 드로잉 응용 프로그램(10)에 제공될 수 있다. 알고리즘들은 또한 레이아웃 프레임워크의 외부에 있고, 레이아웃 프레임워크에 대한 변경들 없이 생성될 수 있는 그래픽들의 범위를 확장하기도록 추가될 수 있다.The graphical definition provides patterns for applying algorithms, parameters, constraints and constraint laws. As defined herein, algorithms are layout routines for determining the location and size of shapes and text. For example, one algorithm can lay out shapes in a linear path, and the other algorithm can lay out shapes in a circular path. It will be appreciated that algorithms may take parameters to determine various deployment options. For example, the linear algorithm has parameters for orientation and orientation that can be controlled through various drawing tool commands in the drawing application 10. For example, parameters of the layout algorithm to change the orientation of the graphic (e.g., left-to-right and right-to-left) or to rotate the graphics. A tool for changing one of the can be provided to the drawing application 10. Algorithms can also be added to extend the range of graphics that are outside of the layout framework and can be generated without changes to the layout framework.

루틴(500)은 연산(520)으로부터 연산(530)으로 계속 진행되며, 연산(530)에서, 드로잉 응용 프로그램(10)은 수신된 데이터 모델 및 수신된 그래픽 정의로부터 레이아웃 트리를 생성한다. 특히, 드로잉 응용 프로그램(10)은 데이터 모델(30)에서의 노드들을 "통과하고(walk through)", (XML 스키마에 의해 또한 정의될 수 있는) 그래픽 정의에 따라 특정 형상들 및 디폴트 스타일 속성들(default style properties)(예를 들어, 포매팅(formatting) 및 텍스트 속성들)에 데이터 모델로부터의 노드들 및 관계들을 매핑한다. 도 2를 참조하여 전술한 바와 같이, 레이아웃 트리(34)는 개별 지오메트리들, 속성들, 텍스트 맞춤 및 형상들의 배치를 포함하여, 그래픽을 구성할 형상들에 관한 데이터를 포함한다. 레이아웃 트리는 데이터 모델(30)을 통해 반복(iterating)함으로써, 그리고 그래픽 정의에 정의된 패턴들에 기초하여 레이아웃 노드들을 생성함으로써 생성된다는 것을 알 수 있을 것이다. 이터레이터(iterator)들은 데이터 모델에서의 요소들이 판독되고 레이아웃 노드 패턴들에 매칭되는 법을 나타냄으로써 레이아웃 트리를 구성하기 위한 명령들을 제공한다.The routine 500 continues from operation 520 to operation 530, where in operation 530, the drawing application 10 generates a layout tree from the received data model and the received graphic definition. In particular, the drawing application 10 "walks through" the nodes in the data model 30, and certain shapes and default style properties according to the graphical definition (which may also be defined by the XML schema). Map nodes and relationships from the data model to default style properties (e.g., formatting and text properties). As described above with reference to FIG. 2, layout tree 34 includes data relating to the shapes that will make up the graphic, including the individual geometries, attributes, text alignment, and placement of shapes. It will be appreciated that the layout tree is created by iterating through the data model 30 and by creating layout nodes based on the patterns defined in the graphic definition. Iterators provide instructions for constructing a layout tree by indicating how elements in the data model are read and matched to layout node patterns.

루틴(500)은 연산(530)으로부터 연산(540)으로 계속 진행되며, 연산(540)에서, 드로잉 응용 프로그램(10)은 그래픽 정의로부터의 알고리즘들, 파라미터들, 제 약들 및 제약 법칙들을 이용하여, 레이아웃 트리에서의 레이아웃 노드들에 대한 형상 크기 및 위치를 결정한다. 루틴(500)은 연산(540)으로부터 연산(550)으로 계속 진행되며, 연산(550)에서, 드로잉 응용 프로그램(10)은 제약 값들에 기초하여 렌더링될 그래픽이 드로잉 캔버스에서의 레이아웃 스페이스(layout space)에 들어맞는지를 결정한다.The routine 500 continues from operation 530 to operation 540, where the drawing application 10 uses algorithms, parameters, constraints and constraint laws from the graphic definition. Determine the shape size and position for the layout nodes in the layout tree. The routine 500 continues from operation 540 to operation 550, where the drawing application 10 causes the graphics to be rendered based on the constraint values in the layout space of the drawing canvas. Determines whether

연산(550)에서, 렌더링될 그래픽이 드로잉 캔버스에서의 레이아웃 스페이스에 들어맞지 않는 경우, 루틴(500)은 연산(560)으로 계속 진행되며, 연산(560)에서, 드로잉 응용 프로그램(10)은 레이아웃 스페이스 내로 그래픽을 맞추기 위한 제약 법칙들을 이용하여 제약 값들을 수정한다. 특히, 레이아웃 트리(34)에서의 레이아웃 노드들은 레이아웃 스페이스 내에 성공적으로 그래픽을 레이아웃하기 위한 시도로 제약 값들을 변경하기 위해 드로잉 응용 프로그램(10)이 이용할 수 있는 제약 법칙들의 정렬된 세트(ordered set)를 포함할 수 있다. 본 발명의 다양한 실시예들에 따르면, 드로잉 응용 프로그램(10)은 각 법칙을 차례로 수행함으로써, 현재의 법칙이 그래픽을 레이아웃 스페이스 내에 맞추지 못하는 경우에만 다음 법칙으로 이동한다. 일단 응용 프로그램(10)이 법칙 리스트의 전반에 걸쳐 수행을 완료하면, 응용 프로그램(10)은 형상들 및 글자 크기를 매우 작은 크기로 줄이거나, 텍스트를 절단(truncating)하거나, 레이아웃 스페이스에 형상들을 배치하지 않음으로써, 드로잉 캔버스 상의 레이아웃 스페이스 내에 드로잉 요소들이 들어맞도록 하는 고장시 조치(fall back) 법칙 리스트에 자동으로 액세스할 것이라는 것을 알 수 있을 것이다.At operation 550, if the graphic to be rendered does not fit in the layout space on the drawing canvas, the routine 500 continues to operation 560, at operation 560, the drawing application 10 is layout. Modify the constraint values using constraint laws to fit the graphic into the space. In particular, the layout nodes in the layout tree 34 are an ordered set of constraint laws that the drawing application 10 can use to change constraint values in an attempt to successfully lay out the graphic within the layout space. It may include. According to various embodiments of the present invention, the drawing application 10 performs each law in turn, moving to the next law only if the current law does not fit the graphic within the layout space. Once the application 10 has completed its execution throughout the list of rules, the application 10 may reduce the shapes and text size to a very small size, truncate the text, or add the shapes to the layout space. It will be appreciated that by not placing, it will automatically access a list of fall back rules that will cause the drawing elements to fit within the layout space on the drawing canvas.

전술한 그래픽 요소들은 형상들뿐만 아니라 형상들 내부에 들어맞는 텍스트를 포함한다는 것을 이해해야 한다. 따라서, 드로잉 응용 프로그램(10)은 또한 연산(550)에서, 임의의 텍스트가 드로잉 캔버스 상의 레이아웃 스페이스에서의 형상들 내에 들어맞지 않는지를 결정할 수 있다. 텍스트 제약 법칙들뿐만 아니라 다른 법칙들도 텍스트가 들어맞도록 하는 다양한 기술들이 적용되는 순서를 결정하기 위해 레이아웃 노드의 제약 법칙 리스트에 포함될 수 있다는 것을 알 수 있을 것이다. 이들 기술들은 형상의 크기를 늘리는 것 또는 텍스트 맞춤 제약들(text fit constraints)을 변경하는 것(예를 들어, 마진(margin) 및 글자 크기를 조정하는 것)을 포함할 수 있다. 텍스트 알고리즘들은 데이터 모델에 데이터가 존재하는 레이아웃 트리의 레이아웃 노드들과 관련된다. 다른 법칙들은 2개의 그래픽 요소들 사이의 스페이스의 양을 결정하기 위한 알고리즘들을 포함할 수 있다. 다른 법칙들은 2개의 그래픽 요소들 사이의 스페이스의 양, 그래픽 요소들의 상대적 위치 등을 결정하기 위한 알고리즘들을 이용할 수 있다는 것을 더 알 수 있을 것이다.It should be understood that the graphic elements described above include text that fits within the shapes as well as the shapes. Thus, the drawing application 10 may also determine, at operation 550, that any text does not fit within the shapes in the layout space on the drawing canvas. It will be appreciated that not only text constraints but also other laws can be included in the constraint node list of layout nodes to determine the order in which the various techniques for fitting text are applied. These techniques may include increasing the size of the shape or changing text fit constraints (eg, adjusting margin and text size). Text algorithms are associated with layout nodes of the layout tree where data exists in the data model. Other laws may include algorithms for determining the amount of space between two graphical elements. It will further be appreciated that other laws may use algorithms to determine the amount of space between two graphical elements, the relative position of the graphical elements, and the like.

연산(550)에서, 렌더링될 그래픽이 드로잉 캔버스 상의 레이아웃 스페이스에 들어맞는 경우, 루틴(500)은 연산(570)으로 진행되며, 연산(570)에서, 드로잉 응용 프로그램(10)은 연산(540)에서 결정된 레이아웃 트리 데이터에 기초하여 생성될 그래픽에 대한 형상 리스트를 생성한다. 일단 데이터 모델(30) 및 관계들로부터 특정 형상들 또는 형상 속성들로의 노드들이 매핑되면, 형상 리스트는 드로잉 캔버스 상에 렌더링될 수 있다. 그 다음, 루틴(500)은 종료된다.In operation 550, if the graphic to be rendered fits in the layout space on the drawing canvas, the routine 500 proceeds to operation 570, and in operation 570, the drawing application 10 operates on operation 540. Generates a shape list for the graphic to be generated based on the layout tree data determined in FIG. Once the nodes from the data model 30 and relationships to specific shapes or shape attributes are mapped, the shape list can be rendered on the drawing canvas. The routine 500 then ends.

전술한 것에 기초하여, 본 발명의 다양한 실시예들은 전자 문서에서의 콘텐 트의 특정 타입들을 처리하기 위한 방법, 장치 및 컴퓨터 판독가능한 매체를 포함한다는 것을 인식해야 한다. 전술한 명세서, 예들 및 데이터는 본 발명의 구성의 제조 및 사용에 대한 완전한 설명을 제공한다. 본 발명의 많은 실시예들은 본 발명의 기술사상 및 범위로부터 벗어남이 없이 이루어질 수 있기 때문에, 본 발명은 이하 첨부되는 특허청구범위에 속한다.Based on the foregoing, it should be appreciated that various embodiments of the present invention include methods, apparatus, and computer readable media for processing specific types of content in an electronic document. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

현대의 드로잉 프로그램들의 하나의 단점은, 비록 이들 프로그램들이 그래픽들을 생성하기 위한 툴들을 제공할 수 있지만, 많은 사용자들은 이들 기존의 툴들을 알고 있지 않거나, 이 툴들을 효율적으로 사용하는 법을 알고 있지 않다는 점이다. 결과적으로, 사용자들은 그 자신의 그래픽들을 생성하거나 그래픽 툴들을 부정확하게 사용함으로써, 그래픽의 형상이 오정렬되거나, 동일한 글자 크기여야 하는 텍스트가 동일하지 않게 된다. 현대의 드로잉 프로그램들의 다른 단점은, 텍스트를 포함하는 형상들이, 추가되거나 확장된 텍스트에 대하여 텍스트가 형상에 완전히 둘러싸인 채로 유지되도록, 글자 크기를 자동으로 조정하거나 형상들의 치수들을 자동으로 확장하지 않는다는 점이다. 현대의 드로잉 프로그램들의 또 다른 단점은, 이들 프로그램들이 고정된 레이아웃을 제공하거나 레이아웃을 전혀 제공하지 않는다는 점이다. 레이아웃이 없는 프로그램들은 사용자들이 수동으로 형상마다 크기 및 위치를 정하는 것을 요구하고, 고정된 레이아웃을 갖는 프로그램들은 사용자들이 형상의 크기 또는 위치에 대하여 임의의 변경들 또는 커스터마이제이션들을 행하지 못하게 한다. 본 발명에 따르면, 이러한 문제점들을 해결할 수 있다.One disadvantage of modern drawing programs is that although these programs can provide tools for generating graphics, many users do not know these existing tools or know how to use them efficiently. Is the point. As a result, users create their own graphics or use graphics tools incorrectly, such that the shape of the graphics is misaligned or the text that must be the same letter size is not the same. Another drawback of modern drawing programs is that shapes containing text do not automatically adjust letter size or automatically expand the dimensions of the shapes so that the text remains completely surrounded by the shape for added or expanded text. to be. Another disadvantage of modern drawing programs is that they provide a fixed layout or no layout at all. Programs without layout require users to manually size and position each shape, and programs with a fixed layout prevent users from making any changes or customizations to the size or position of the shape. According to the present invention, these problems can be solved.

Claims (36)

응용 프로그램 내에 그래픽을 생성하고 레이아웃(lay out)하기 위한 방법으로서,A method for creating and laying out graphics in an application, 데이터 모델을 수신하는 단계 - 상기 데이터 모델은 상기 그래픽에 표시될 데이터의 세트 및 데이터 관계들을 정의함 - ;Receiving a data model, the data model defining a set of data and data relationships to be displayed in the graphic; 그래픽 정의를 수신하는 단계 - 상기 그래픽 정의는 상기 데이터 모델로부터의 상기 데이터의, 레이아웃 노드들, 알고리즘들, 파라미터들, 제약들(constraints), 제약 법칙들(constraint rules) 및 형상 속성들(shape properties)에의 매핑(mapping)을 기술함 - ; 및Receiving a graphic definition, the graphic definition being the layout nodes, algorithms, parameters, constraints, constraint rules and shape properties of the data from the data model. Describes the mapping to-); And 상기 레이아웃 노드들과 연관된 상기 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 이용하여 상기 그래픽에서의 형상들에 대한 형상 크기 및 위치를 결정하는 단계Determining shape size and position for shapes in the graphic using the algorithms, parameters, constraints, constraint laws and shape attributes associated with the layout nodes. 를 포함하는 방법.How to include. 제1항에 있어서,The method of claim 1, 상기 그래픽 정의는 상기 데이터 모델에서의 요소들을, 상기 레이아웃 노드들 및 상기 레이아웃 노드들과 연관된 알고리즘들, 파라미터들, 제약들 및 제약 법칙들의 세트들에 매핑하기 위한 이터레이터(iterator)들을 특정하는 방법.Wherein the graphical definition specifies iterators for mapping elements in the data model to sets of algorithms, parameters, constraints and constraints associated with the layout nodes and the layout nodes. 제1항에 있어서,The method of claim 1, 다수의 외부 그래픽 정의들을 특정하는 단계를 더 포함하고, 다수의 외부 그래픽 정의들 각각은 특정 그래픽을 생성하는데 요구되는 정보를 특정하고, 상기 정보는 추가적인 매핑 조건들, 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 포함하는 방법.Specifying a plurality of external graphic definitions, each of the plurality of external graphic definitions specifying information required to generate a particular graphic, the information including additional mapping conditions, algorithms, parameters, constraints , Constraint laws and shape properties. 제1항에 있어서,The method of claim 1, 다수의 외부 알고리즘들을 특정하는 단계를 더 포함하고, 상기 다수의 외부 알고리즘들 각각은 특정 그래픽 구조를 달성하기 위한 상기 형상들의 상기 레이아웃을 특정하고, 상기 외부 알고리즘들 각각은 그래픽 정의에 의해 참조되는 방법.Specifying a plurality of outer algorithms, each of the plurality of outer algorithms specifying the layout of the shapes to achieve a particular graphical structure, each of the outer algorithms referenced by a graphic definition . 제1항에 있어서,The method of claim 1, 상기 그래픽에서의 상기 형상들에 대한 상기 형상 크기 및 위치는 상기 대응하는 레이아웃 노드들에서의 상기 제약들 및 제약 법칙들을 이용하여 상기 알고리즘들의 세트에서의 상기 알고리즘들에 의해 정의되는 방법.The shape size and position relative to the shapes in the graphic is defined by the algorithms in the set of algorithms using the constraints and constraint laws at the corresponding layout nodes. 제1항에 있어서,The method of claim 1, 상기 제약들은 상기 알고리즘들에 의해 사용하기 위한 값들을 특정하기 위한 수치 제약들(numeric constraints)을 포함하고, 상기 수치 제약은 특정 값을 포함하는 방법.The constraints include numeric constraints for specifying values for use by the algorithms, the numerical constraint comprising a specific value. 제6항에 있어서,The method of claim 6, 상기 수치 제약은 다른 제약 값들에 대한 참조에 의해 유도되는 방법.Wherein the numerical constraint is derived by reference to other constraint values. 제1항에 있어서,The method of claim 1, 상기 제약 값들은 상기 레이아웃 노드들의 크기 및 위치를 결정하기 위해 제약 법칙들의 세트에 따라 수정되는 방법.The constraint values are modified according to a set of constraint laws to determine the size and position of the layout nodes. 제1항에 있어서,The method of claim 1, 상기 제약들은 형상들에 대한 값들의 균등(equality) 및 불균등(inequality)을 특정하기 위한 부울 제약들(Boolean constraints)을 포함하고, 수치 제약의 상기 값들은 상기 부울 제약들에 의해 특정된 형상들에 전파(propagate)되는 방법.The constraints include Boolean constraints for specifying equality and inequality of the values for the shapes, wherein the values of the numerical constraints are applied to the shapes specified by the Boolean constraints. How it is propagated. 제1항에 있어서,The method of claim 1, 복수의 레이아웃 노드들은 서로 제약 값들을 통신하여, 상기 제약들을 이용한 상기 레이아웃 노드들의 크기 및 위치 결정을 가능하게 하는 방법.And a plurality of layout nodes communicate constraint values with each other to enable determination of the size and position of the layout nodes using the constraints. 제1항에 있어서,The method of claim 1, 상기 그래픽 정의는 마크업 언어(markup language)로 기록되는 방법.The graphical definition is written in a markup language. 제11항에 있어서,The method of claim 11, 상기 마크업 언어는 확장성 마크업 언어(extensible markup language)인 방법.The markup language is an extensible markup language. 드로잉(drawing) 응용 프로그램 내에 그래픽을 생성하고 레이아웃하기 위한 시스템으로서,A system for creating and laying out graphics in a drawing application, 데이터 모델을 수신하고 - 상기 데이터 모델은 상기 그래픽에 표시될 데이터의 세트 및 데이터 관계들을 정의함 - ;Receive a data model, the data model defining a set of data and data relationships to be displayed in the graphic; 그래픽 정의를 수신하고 - 상기 그래픽 정의는 상기 데이터 모델로부터의 상기 데이터의, 레이아웃 노드들, 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들에의 매핑을 기술함 - ;Receive a graphic definition, the graphic definition describing a mapping of the data from the data model to layout nodes, algorithms, parameters, constraints, constraint laws and shape attributes; 상기 레이아웃 노드들과 연관된 상기 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 이용하여 상기 그래픽에서의 형상들에 대한 형상 크기 및 위치를 결정하기 위한 프로그램 코드를 실행하도록 동작하는 클라이언트 컴퓨터A client computer operative to execute program code for determining shape size and position for shapes in the graphic using the algorithms, parameters, constraints, constraint laws and shape attributes associated with the layout nodes. 를 포함하는 시스템.System comprising a. 제13항에 있어서,The method of claim 13, 상기 그래픽 정의는 상기 데이터 모델에서의 요소들을, 상기 레이아웃 노드들 및 상기 레이아웃 노드들과 연관된 알고리즘들, 파라미터들, 제약들 및 제약 법칙들의 세트들에 매핑하기 위한 이터레이터들을 특정하는 시스템.Wherein the graphical definition specifies iterators for mapping elements in the data model to the layout nodes and sets of algorithms, parameters, constraints and constraint laws associated with the layout nodes. 제13항에 있어서,The method of claim 13, 상기 프로그램 코드는 다수의 외부 그래픽 정의들을 특정하도록 더 동작하고, 다수의 외부 그래픽 정의들 각각은 특정 그래픽을 생성하는데 요구되는 정보를 특정하고, 상기 정보는 추가적인 매핑 조건들, 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 포함하는 시스템.The program code is further operative to specify a plurality of external graphic definitions, each of the plurality of external graphic definitions specifying information required to generate a particular graphic, the information comprising additional mapping conditions, algorithms, parameters, A system comprising constraints, constraint laws and shape attributes. 제13항에 있어서,The method of claim 13, 상기 프로그램 코드는 다수의 외부 알고리즘들을 특정하도록 더 동작하고, 상기 다수의 외부 알고리즘들 각각은 특정 그래픽 구조를 달성하기 위한 상기 형상들의 상기 레이아웃을 특정하고, 상기 외부 알고리즘들 각각은 그래픽 정의에 의해 참조되는 시스템.The program code is further operative to specify a plurality of outer algorithms, each of the plurality of outer algorithms specifying the layout of the shapes to achieve a particular graphical structure, each of the outer algorithms referenced by a graphic definition. System. 제13항에 있어서,The method of claim 13, 상기 그래픽에서의 상기 형상들에 대한 상기 형상 크기 및 위치는 상기 대응하는 레이아웃 노드들에서의 상기 제약들 및 제약 법칙들을 이용하여 상기 알고리즘들의 세트에서의 상기 알고리즘들에 의해 정의되는 시스템.The shape size and position relative to the shapes in the graphic is defined by the algorithms in the set of algorithms using the constraints and constraint laws at the corresponding layout nodes. 제13항에 있어서,The method of claim 13, 상기 제약들은 상기 알고리즘들에 의해 사용하기 위한 값들을 특정하기 위한 수치 제약들을 포함하고, 상기 수치 제약은 특정 값을 포함하는 시스템.The constraints include numerical constraints for specifying values for use by the algorithms, the numerical constraint comprising a specific value. 제18항에 있어서,The method of claim 18, 상기 수치 제약은 다른 제약 값들에 대한 참조에 의해 유도되는 시스템.Wherein the numerical constraint is derived by reference to other constraint values. 제13항에 있어서,The method of claim 13, 상기 제약 값들은 상기 레이아웃 노드들의 크기 및 위치를 결정하기 위해 상기 제약 법칙들의 세트에 따라 수정되는 시스템.The constraint values are modified according to the set of constraint laws to determine the size and position of the layout nodes. 제13항에 있어서,The method of claim 13, 상기 제약들은 형상들에 대한 값들의 균등 및 불균등을 특정하기 위한 부울 제약들을 포함하고, 수치 제약의 상기 값들은 상기 부울 제약들에 의해 특정된 형상들에 전파되는 시스템.The constraints include Boolean constraints for specifying equality and inequality of values for shapes, and wherein the values of numerical constraints are propagated to shapes specified by the Boolean constraints. 제13항에 있어서,The method of claim 13, 복수의 레이아웃 노드들은 서로 제약 값들을 통신하여, 상기 제약들을 이용한 상기 레이아웃 노드들의 크기 및 위치 결정을 가능하게 하는 시스템.And a plurality of layout nodes communicate constraint values to each other to enable determination of the size and position of the layout nodes using the constraints. 제13항에 있어서,The method of claim 13, 상기 그래픽 정의는 마크업 언어로 기록되는 시스템.The graphical definition is written in a markup language. 제23항에 있어서,The method of claim 23, 상기 마크업 언어는 확장성 마크업 언어(XML)인 시스템.The markup language is Extensible Markup Language (XML). 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 응용 프로그램 내에 그래픽을 생성 및 레이아웃하기 위한 방법을 수행하게 하는 컴퓨터 실행가능한 명령들이 저장된 컴퓨터 판독가능한 매체로서,A computer readable medium having computer executable instructions stored thereon that when executed by a computer cause the computer to perform a method for generating and laying out graphics in an application program. 상기 방법은,The method, 데이터 모델을 수신하는 단계 - 상기 데이터 모델은 상기 그래픽에 표시될 데이터의 세트 및 데이터 관계들을 정의함 - ;Receiving a data model, the data model defining a set of data and data relationships to be displayed in the graphic; 그래픽 정의를 수신하는 단계 - 상기 그래픽 정의는 상기 데이터 모델로부터의 상기 데이터의, 레이아웃 노드들, 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들에의 매핑을 기술함 - ; 및Receiving a graphical definition, the graphical definition describing a mapping of the data from the data model to layout nodes, algorithms, parameters, constraints, constraint laws and shape attributes; And 상기 레이아웃 노드들과 연관된 상기 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 이용하여 상기 그래픽에서의 형상들에 대한 형상 크기 및 위치를 결정하는 단계를 포함하는Determining shape size and position for shapes in the graphic using the algorithms, parameters, constraints, constraint laws and shape attributes associated with the layout nodes. 컴퓨터 판독가능한 매체.Computer readable media. 제25항에 있어서,The method of claim 25, 상기 그래픽 정의는 상기 데이터 모델에서의 요소들을, 상기 레이아웃 노드 들 및 상기 레이아웃 노드들과 연관된 알고리즘들, 파라미터들, 제약들 및 제약 법칙들의 세트들에 매핑하기 위한 이터레이터들을 특정하는 컴퓨터 판독가능한 매체.The graphic definition specifying iterators for mapping elements in the data model to the layout nodes and sets of algorithms, parameters, constraints and constraint laws associated with the layout nodes. 제25항에 있어서,The method of claim 25, 상기 방법은 다수의 외부 그래픽 정의들을 특정하는 단계를 더 포함하고, 다수의 외부 그래픽 정의들 각각은 특정 그래픽을 생성하는데 요구되는 정보를 특정하고, 상기 정보는 추가적인 매핑 조건들, 알고리즘들, 파라미터들, 제약들, 제약 법칙들 및 형상 속성들을 포함하는 컴퓨터 판독가능한 매체.The method further comprises specifying a plurality of external graphic definitions, each of the plurality of external graphic definitions specifying information required to generate a particular graphic, the information comprising additional mapping conditions, algorithms, parameters And computer-readable media including constraints, constraint laws and shape attributes. 제25항에 있어서,The method of claim 25, 상기 방법은 다수의 외부 알고리즘들을 특정하는 단계를 더 포함하고, 상기 다수의 외부 알고리즘들 각각은 특정 그래픽 구조를 달성하기 위한 상기 형상들의 상기 레이아웃을 특정하고, 상기 외부 알고리즘들 각각은 그래픽 정의에 의해 참조되는 컴퓨터 판독가능한 매체.The method further includes specifying a plurality of outer algorithms, each of the plurality of outer algorithms specifying the layout of the shapes to achieve a particular graphical structure, each of the outer algorithms being defined by a graphic definition. Computer readable medium referred to. 제25항에 있어서,The method of claim 25, 상기 그래픽에서의 상기 형상들에 대한 상기 형상 크기 및 위치는 상기 대응하는 레이아웃 노드들에서의 상기 제약들 및 제약 법칙들을 이용하여 알고리즘들의 상기 세트에서의 상기 알고리즘들에 의해 정의되는 컴퓨터 판독가능한 매체.The shape size and position with respect to the shapes in the graphic is defined by the algorithms in the set of algorithms using the constraints and constraint laws at the corresponding layout nodes. 제25항에 있어서,The method of claim 25, 상기 제약들은 상기 알고리즘들에 의해 사용하기 위한 값들을 특정하기 위한 수치 제약들을 포함하고, 상기 수치 제약은 특정 값을 포함하는 컴퓨터 판독가능한 매체.The constraints include numerical constraints for specifying values for use by the algorithms, the numerical constraint comprising a specific value. 제30항에 있어서,The method of claim 30, 상기 수치 제약은 다른 제약 값들에 대한 참조에 의해 유도되는 컴퓨터 판독가능한 매체.And the numerical constraint is derived by reference to other constraint values. 제25항에 있어서,The method of claim 25, 상기 제약 값들은 상기 레이아웃 노드들의 크기 및 위치를 결정하기 위해 제약 법칙들의 세트에 따라 수정되는 컴퓨터 판독가능한 매체.And the constraint values are modified according to a set of constraint laws to determine the size and position of the layout nodes. 제25항에 있어서,The method of claim 25, 상기 제약들은 형상들에 대한 값들의 균등 및 불균등을 특정하기 위한 부울 제약들을 포함하고, 수치 제약의 상기 값들은 상기 부울 제약들에 의해 특정된 형상들에 전파되는 컴퓨터 판독가능한 매체.The constraints include Boolean constraints for specifying equality and inequality of values for shapes, and wherein the values of numerical constraints are propagated to shapes specified by the Boolean constraints. 제25항에 있어서,The method of claim 25, 복수의 레이아웃 노드들은 서로 제약 값들을 통신하여, 상기 제약들을 이용 한 상기 레이아웃 노드들의 크기 및 위치 결정을 가능하게 하는 컴퓨터 판독가능한 매체.And the plurality of layout nodes communicate constraint values with each other, thereby enabling the size and positioning of the layout nodes using the constraints. 제25항에 있어서,The method of claim 25, 상기 그래픽 정의는 마크업 언어로 기록되는 컴퓨터 판독가능한 매체.And the graphical definition is written in a markup language. 제35항에 있어서,36. The method of claim 35 wherein 상기 마크업 언어는 확장성 마크업 언어(XML)인 컴퓨터 판독가능한 매체.And the markup language is Extensible Markup Language (XML).
KR1020050073848A 2004-09-30 2005-08-11 Method, system, and computer-readable medium for creating and laying out a graphic within an application program KR101433936B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/955,271 2004-09-30
US10/955,271 US7348982B2 (en) 2004-09-30 2004-09-30 Method, system, and computer-readable medium for creating and laying out a graphic within an application program

Publications (2)

Publication Number Publication Date
KR20060050408A true KR20060050408A (en) 2006-05-19
KR101433936B1 KR101433936B1 (en) 2014-08-27

Family

ID=35501378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050073848A KR101433936B1 (en) 2004-09-30 2005-08-11 Method, system, and computer-readable medium for creating and laying out a graphic within an application program

Country Status (13)

Country Link
US (4) US7348982B2 (en)
EP (1) EP1643452B1 (en)
JP (1) JP4921744B2 (en)
KR (1) KR101433936B1 (en)
CN (1) CN100478876C (en)
AU (1) AU2005203708B2 (en)
BR (1) BRPI0503982B1 (en)
CA (1) CA2517409C (en)
MX (1) MXPA05009276A (en)
MY (1) MY149288A (en)
RU (1) RU2383929C2 (en)
TW (1) TWI379253B (en)
ZA (1) ZA200506944B (en)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239749B2 (en) * 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US7348982B2 (en) * 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8510657B2 (en) * 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
US8134575B2 (en) * 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US7743325B2 (en) * 2005-03-15 2010-06-22 Microsoft Corporation Method and computer-readable medium for fitting text to shapes within a graphic
US7750924B2 (en) * 2005-03-15 2010-07-06 Microsoft Corporation Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US7644356B2 (en) * 2005-06-10 2010-01-05 Hewlett-Packard Development Company, L.P. Constraint-based albuming of graphic elements
US7747944B2 (en) 2005-06-30 2010-06-29 Microsoft Corporation Semantically applying style transformation to objects in a graphic
JP2007114822A (en) * 2005-10-18 2007-05-10 Yokogawa Electric Corp Automatic layout method and device
JP2007200097A (en) * 2006-01-27 2007-08-09 Seiko Epson Corp Layout method
US8438486B2 (en) 2006-02-09 2013-05-07 Microsoft Corporation Automatically converting text to business graphics
JP4743154B2 (en) * 2006-07-05 2011-08-10 セイコーエプソン株式会社 Document editing apparatus, program, and storage medium
US20080140623A1 (en) * 2006-12-11 2008-06-12 Microsoft Corporation Recursive reporting via a spreadsheet
US7949948B2 (en) * 2007-05-09 2011-05-24 Microsoft Corporation Constraint and rule-based page layout
US8516365B2 (en) 2007-06-15 2013-08-20 Microsoft Corporation Dynamically laying out images and associated text using pre-defined layouts
US8417728B1 (en) * 2007-08-03 2013-04-09 Adobe Systems Incorporated User interfaces, methods, and systems for developing computer applications using artwork
US7810047B2 (en) * 2007-09-04 2010-10-05 Apple Inc. List item layouts system and method
CN101276457B (en) * 2008-04-22 2011-11-23 北京中星微电子有限公司 Verification pattern algorithm and system and method for realizing RTL
US8984395B2 (en) * 2008-06-19 2015-03-17 Opera Software Asa Methods, systems and devices for transcoding and displaying electronic documents
US20100218090A1 (en) * 2009-02-26 2010-08-26 Universal - Ad Ltd. Sub-page-based page layout system and method thereof
US8581916B2 (en) * 2009-06-26 2013-11-12 Intel Corporation Graphics analysis techniques
CN102054283B (en) * 2009-11-05 2016-01-20 齐营股份有限公司 The graphical representation method of the correlation of data group and device
US20110221764A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation Laying out and cropping images in pre-defined layouts
US8799325B2 (en) 2010-03-12 2014-08-05 Microsoft Corporation Reordering nodes in a hierarchical structure
JP2011221718A (en) * 2010-04-07 2011-11-04 Sony Corp Generation device, generation method, and program
WO2011136766A1 (en) * 2010-04-28 2011-11-03 Hewlett-Packard Development Company, L.P. System and method for automatically providing a graphical layout based on an example graphic layout
TWI426409B (en) * 2010-11-02 2014-02-11 Univ Shu Te Modularized design system and its method
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
JP2013050879A (en) * 2011-08-31 2013-03-14 Sony Corp Image output apparatus, method of controlling image output apparatus, and program
CN103150291B (en) * 2013-01-31 2015-09-09 小米科技有限责任公司 File method for cutting edge, terminal and server
CN103617505B (en) * 2013-12-05 2017-12-22 用友软件股份有限公司 The dynamic analysis and display systems and method of corporate process figure
US20160349931A1 (en) * 2015-05-28 2016-12-01 Rockwell Automation Technologies, Inc. Responsive user interface for an industrial environment
US20180285995A1 (en) * 2015-09-25 2018-10-04 Nec Patent Service,Ltd. Information processing device, information processing method, and program-recording medium
US10936778B2 (en) 2016-03-28 2021-03-02 Motivo, Inc. And optimization of physical cell placement
US9959380B2 (en) * 2016-03-28 2018-05-01 Motivo, Inc. Integrated circuit design systems and methods
CA3018157A1 (en) * 2016-04-04 2017-10-12 Unima Logiciel Inc. Method and system for creating a sequence used for communicating information associated with an application
EP3436933B1 (en) * 2016-05-17 2019-08-07 Google LLC Systems and methods for automatic determination of layout constraints
CN106484754B (en) * 2016-07-28 2019-08-23 西安交通大学 Knowledge forest layout method based on hierarchical data Yu diagram data visualization technique
CN107577490A (en) * 2017-08-03 2018-01-12 武汉斗鱼网络科技有限公司 View autoplacement method and device in a kind of iOS
CN108108430B (en) * 2017-12-18 2020-08-28 西安交通大学 Forest virtual reality system implementation method based on Unity3D knowledge
CN110795093B (en) * 2018-08-01 2024-04-16 北京京东尚科信息技术有限公司 Interactive view generation method and device
CN111104111B (en) * 2019-11-29 2022-11-22 苏宁云计算有限公司 Layout processing method and device for tree Canvas
CN117173000A (en) * 2023-09-08 2023-12-05 广州市科帕电子科技有限公司 Information hiding method and system based on quaternary coding

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0057688A1 (en) 1980-08-13 1982-08-18 Comshare Incorporated A machine for generating graphic charts
US4531150A (en) * 1982-11-05 1985-07-23 Konishiroku Photo Industry Co., Ltd. Image display system
US4686522A (en) * 1985-02-19 1987-08-11 International Business Machines Corporation Method of editing graphic objects in an interactive draw graphic system using implicit editing actions
US5337402A (en) * 1986-06-12 1994-08-09 Keiji Kitagawa Graphic data processing apparatus using displayed graphics for application program selection
JPS6438866A (en) * 1987-08-05 1989-02-09 Hitachi Ltd Document editing device
US5214755A (en) 1989-04-25 1993-05-25 Microsoft Corporation Document processing method and system
JPH03177964A (en) 1989-12-07 1991-08-01 Toshiba Corp Document arranging device
JP3093247B2 (en) 1990-09-21 2000-10-03 株式会社東芝 Presentation support environment system
US5649216A (en) 1991-05-17 1997-07-15 Joseph S. Sieber Method and apparatus for automated layout of text and graphic elements
CA2048039A1 (en) 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5426729A (en) * 1992-06-24 1995-06-20 Microsoft Corporation Method and system for nonuniformly adjusting a predefined shape
CA2135522A1 (en) * 1993-01-22 1994-08-04 Object Technology Licensing Corporation Flexible network system
JP2620576B2 (en) 1993-04-15 1997-06-18 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and system for adjusting a graphical user interface according to a font requested by a user
DE69327948T2 (en) * 1993-04-30 2000-10-26 Ibm Area layout in a view on a graphical display screen
US5909220A (en) 1993-05-10 1999-06-01 Sandow; Robin Interactive computerized image coloring systems and methods for processing combinations of color with automated subroutines and color standardization for diverse color systems
US5479593A (en) 1993-06-21 1995-12-26 Electronic Data Systems Corporation System and method for improved solving of equations employed during parametric geometric modeling
US5535134A (en) * 1994-06-03 1996-07-09 International Business Machines Corporation Object placement aid
US5596691A (en) 1994-06-15 1997-01-21 Claris Corporation Computer system and method for manipulating the display of drawings
US5748964A (en) 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5669006A (en) * 1995-02-23 1997-09-16 International Business Machines Corporation Method for automatically obtaining spatial layout for multimedia presentations
US5619631A (en) * 1995-06-07 1997-04-08 Binaryblitz Method and apparatus for data alteration by manipulation of representational graphs
US5673401A (en) 1995-07-31 1997-09-30 Microsoft Corporation Systems and methods for a customizable sprite-based graphical user interface
US5872867A (en) * 1995-08-04 1999-02-16 Sarnoff Corporation Method and apparatus for generating image textures
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
JPH09109351A (en) 1995-10-16 1997-04-28 Toppan Printing Co Ltd Display information layout apparatus
US7124359B2 (en) * 1996-01-11 2006-10-17 Canon Kabushiki Kaisha Image edit device adapted to rapidly lay-out photographs into templates with means for preview and correction by user
US6173286B1 (en) 1996-02-29 2001-01-09 Nth Degree Software, Inc. Computer-implemented optimization of publication layouts
US5818447A (en) 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US6057858A (en) 1996-08-07 2000-05-02 Desrosiers; John J. Multiple media fonts
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US5956737A (en) * 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
AU4334197A (en) * 1996-09-09 1998-03-26 Design Intelligence, Inc. Automatic layout and formatting of content for a design in medium
US5973692A (en) 1997-03-10 1999-10-26 Knowlton; Kenneth Charles System for the capture and indexing of graphical representations of files, information sources and the like
US6061659A (en) 1997-06-03 2000-05-09 Digital Marketing Communications, Inc. System and method for integrating a message into a graphical environment
US6321243B1 (en) 1997-06-27 2001-11-20 Microsoft Corporation Laying out a paragraph by defining all the characters as a single text run by substituting, and then positioning the glyphs
US6288726B1 (en) 1997-06-27 2001-09-11 Microsoft Corporation Method for rendering glyphs using a layout services library
US6774899B1 (en) * 1997-09-18 2004-08-10 Mitsubishi Electric Research Laboratories, Inc. Drawing graphs using user selectable visual oragnization features and/or other user controlled constraints
US5956043A (en) * 1997-09-18 1999-09-21 Novell, Inc. Textured tile rotation system and method
AU761202B2 (en) 1997-09-22 2003-05-29 Sony Corporation Generation of a bit stream containing binary image/audio data that is multiplexed with a code defining an object in ascii format
US6289502B1 (en) * 1997-09-26 2001-09-11 Massachusetts Institute Of Technology Model-based software design and validation
US6204859B1 (en) 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
KR100243385B1 (en) 1997-10-28 2000-02-01 정선종 Multimedia presentation working method
US6072480A (en) * 1997-11-05 2000-06-06 Microsoft Corporation Method and apparatus for controlling composition and performance of soundtracks to accompany a slide show
AUPP027397A0 (en) 1997-11-07 1997-12-04 Documotion Research, Inc. Tamper-evident form for securely carrying confidential information
JP3377419B2 (en) * 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Instruction string generation method and apparatus, conversion method, and computer
US6289505B1 (en) * 1997-11-18 2001-09-11 Sun Microsystems, Inc. Method, apparatus and computer programmed product for binary re-optimization using a high level language compiler
RU2142162C1 (en) 1998-01-19 1999-11-27 Кашик Алексей Сергеевич Method for dynamic displaying data about object
US6081816A (en) 1998-03-18 2000-06-27 Microsoft Corporation Method for placing text around polygons and other constraints
US6189132B1 (en) 1998-04-09 2001-02-13 International Business Machines Corporation Design rule correction system and method
US6510419B1 (en) * 1998-04-24 2003-01-21 Starmine Corporation Security analyst performance tracking and analysis system and method
US6256650B1 (en) * 1998-05-18 2001-07-03 Microsoft Corporation Method and system for automatically causing editable text to substantially occupy a text frame
US6301704B1 (en) * 1998-06-16 2001-10-09 Silicon Graphics, Inc. Method, system, and computer program product for using static single assignment form as a program representation and a medium for performing global scalar optimization
US6405225B1 (en) 1998-06-17 2002-06-11 Microsoft Corporation Integrating email functionality into a word processor by incorporating an email GUI within the word processor
US6204849B1 (en) * 1998-07-17 2001-03-20 Autodesk, Inc. Non-ambiguous graphics selection
US6161098A (en) 1998-09-14 2000-12-12 Folio (Fn), Inc. Method and apparatus for enabling small investors with a portfolio of securities to manage taxable events within the portfolio
US6166738A (en) 1998-09-14 2000-12-26 Microsoft Corporation Methods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objects
US6715130B1 (en) * 1998-10-05 2004-03-30 Lockheed Martin Corporation Software requirements metrics and evaluation process
US6305012B1 (en) * 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
US6957191B1 (en) * 1999-02-05 2005-10-18 Babcock & Brown Lp Automated financial scenario modeling and analysis tool having an intelligent graphical user interface
US6456305B1 (en) 1999-03-18 2002-09-24 Microsoft Corporation Method and system for automatically fitting a graphical display of objects to the dimensions of a display window
US6308322B1 (en) * 1999-04-06 2001-10-23 Hewlett-Packard Company Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints
US6691282B1 (en) * 1999-06-22 2004-02-10 Nortel Networks Limited Method and apparatus for displaying and navigating containment hierarchies
US6667750B1 (en) 1999-07-30 2003-12-23 Curl Corporation Multiple pass layout of graphical objects with elastics
US6826727B1 (en) 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US7246316B2 (en) 1999-11-30 2007-07-17 Siebel Systems, Inc. Methods and apparatus for automatically generating presentations
EP1111543A3 (en) 1999-12-22 2002-11-27 Adobe Systems, Inc. Method and apparatus for painting groups of objects
US6593933B1 (en) * 2000-01-13 2003-07-15 Microsoft Corporation Block-based synthesis of texture in computer rendered images
US6448973B1 (en) * 2000-01-13 2002-09-10 Microsoft Corporation Virtual texture
US7055095B1 (en) * 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US20010032151A1 (en) 2000-04-18 2001-10-18 Glenn Paul Internet presentation system
US20010051962A1 (en) 2000-06-08 2001-12-13 Robert Plotkin Presentation customization
US20020111969A1 (en) * 2000-09-28 2002-08-15 Halstead Robert H. System and method for processing graphical objects for layout using an elastic difference operation
US7231602B1 (en) 2000-11-29 2007-06-12 Microsoft Corporation Live preview for reformatting document text
US20020065852A1 (en) 2000-11-30 2002-05-30 Matt Hendrickson Online guided resume creation system that allows dynamic style formatting
US6944830B2 (en) 2000-12-21 2005-09-13 Xerox Corporation System and method for browsing hierarchically based node-link structures based on an estimated degree of interest
US6950981B2 (en) 2000-12-29 2005-09-27 International Business Machines Corporation Method and system for providing task information in a place
US6973618B2 (en) 2000-12-29 2005-12-06 International Business Machines Corporation Method and system for importing MS office forms
US6791582B2 (en) 2000-12-29 2004-09-14 International Business Machines Corporation Method and system for identifying and displaying information that is new or has been updated in a place
US6701311B2 (en) * 2001-02-07 2004-03-02 International Business Machines Corporation Customer self service system for resource search and selection
US6941478B2 (en) 2001-04-13 2005-09-06 Nokia, Inc. System and method for providing exploit protection with message tracking
CN1384454A (en) 2001-05-01 2002-12-11 株式会社东芝 Information generalizing system and method
EA008675B1 (en) 2001-06-22 2007-06-29 Нервана, Инк. System and method for knowledge retrieval, management, delivery and presentation
US6826729B1 (en) * 2001-06-29 2004-11-30 Microsoft Corporation Gallery user interface controls
US20040205602A1 (en) 2001-07-25 2004-10-14 Douglas Croeni Page layout design using geometric interference schema
JP2003044464A (en) 2001-07-31 2003-02-14 Seiko Epson Corp Layout device and layout program
JP2003052582A (en) 2001-08-10 2003-02-25 Toshiba Tec Corp Cleaning equipment
EP1298524A1 (en) 2001-09-28 2003-04-02 Ricoh Company, Ltd. Conference support apparatus, information processor, teleconference system and computer product
RU2218602C2 (en) 2001-11-08 2003-12-10 Карев Павел Викторович Method for color-code display of variable multiple-parameter states of system or process
AUPR962001A0 (en) 2001-12-19 2002-01-24 Redbank Manor Pty Ltd Document display system and method
US20050001837A1 (en) * 2002-03-01 2005-01-06 Shannon Michael P. Method and internet based software for graphing sport statistics
US20030218641A1 (en) 2002-05-23 2003-11-27 International Business Machines Corporation Method and system for navigating a hierarchical structure in a data processing system
TW578067B (en) 2002-06-21 2004-03-01 Inst Information Industry Knowledge graphic system and method based on ontology
US20040001106A1 (en) 2002-06-26 2004-01-01 John Deutscher System and process for creating an interactive presentation employing multi-media components
US6894726B2 (en) 2002-07-05 2005-05-17 Thomson Licensing S.A. High-definition de-interlacing and frame doubling circuit and method
US7010746B2 (en) 2002-07-23 2006-03-07 Xerox Corporation System and method for constraint-based document generation
US7058902B2 (en) * 2002-07-30 2006-06-06 Microsoft Corporation Enhanced on-object context menus
US20040041838A1 (en) * 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7945846B2 (en) * 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US20040145603A1 (en) * 2002-09-27 2004-07-29 Soares Stephen Michael Online multimedia presentation builder and presentation player
KR100504476B1 (en) 2002-10-30 2005-08-01 엘지전자 주식회사 method and display system for controlling icon
KR20040041979A (en) * 2002-11-12 2004-05-20 한국전자통신연구원 Graphic user interface
AU2002952711A0 (en) 2002-11-18 2002-11-28 Typefi Systems Pty Ltd A method of formatting documents
KR100484181B1 (en) 2002-12-02 2005-04-20 삼성전자주식회사 Apparatus and method for authoring multimedia document
CA2414047A1 (en) * 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
JP4241325B2 (en) * 2002-12-25 2009-03-18 セイコーエプソン株式会社 Layout system
TW562221U (en) * 2002-12-27 2003-11-11 Hon Hai Prec Ind Co Ltd Mounting device for disk drive
US20040133854A1 (en) * 2003-01-08 2004-07-08 Black Karl S. Persistent document object model
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
KR100459507B1 (en) 2003-02-15 2004-12-03 (주) 이모션 Apparatus for manufacturing graphic contents
US20040172584A1 (en) 2003-02-28 2004-09-02 Microsoft Corporation Method and system for enhancing paste functionality of a computer software application
US7325186B2 (en) 2003-02-28 2008-01-29 Microsoft Corporation Method and system for showing unannotated text nodes in a data formatted document
US7339598B2 (en) * 2003-07-11 2008-03-04 Vistaprint Technologies Limited System and method for automated product design
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US20050034083A1 (en) * 2003-08-05 2005-02-10 Denny Jaeger Intuitive graphic user interface with universal tools
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
US7548334B2 (en) * 2003-10-15 2009-06-16 Canon Kabushiki Kaisha User interface for creation and editing of variable data documents
US20050091584A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Methods for applying styles to visual aspects of user interface elements
GB2407677A (en) * 2003-10-31 2005-05-04 Hewlett Packard Development Co Post-rendering document space based on rules
US7178102B1 (en) 2003-12-09 2007-02-13 Microsoft Corporation Representing latent data in an extensible markup language document
US7395510B2 (en) * 2003-12-16 2008-07-01 Hewlett-Packard Development Company, L.P. Method of, and system for, adjusting a document configuration
US7536048B2 (en) 2004-01-15 2009-05-19 Xerox Corporation Method and apparatus for automatically determining image foreground color
JP2005275890A (en) 2004-03-25 2005-10-06 Nec Corp Presence information issuing device, system and program
JP4448537B2 (en) * 2004-04-26 2010-04-14 コダック グラフィック コミュニケーションズ カナダ カンパニー System and method for comparing documents containing graphic elements
US20050289466A1 (en) 2004-06-24 2005-12-29 Kaihu Chen Multimedia authoring method and system using bi-level theme templates
US20060064642A1 (en) 2004-09-22 2006-03-23 Edurite Technologies Pvt. Ltd. Seamless presentation integrator
US8510657B2 (en) * 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
US8134575B2 (en) * 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US7348982B2 (en) 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US7209815B2 (en) * 2004-12-28 2007-04-24 Snap-On Incorporated Test procedures using pictures
US7478079B2 (en) 2005-01-14 2009-01-13 Microsoft Corporation Method for displaying a visual representation of mapping between a source schema and a destination schema emphasizing visually adjusts the objects such that they are visually distinguishable from the non-relevant and non-selected objects
US7750924B2 (en) * 2005-03-15 2010-07-06 Microsoft Corporation Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US7743325B2 (en) * 2005-03-15 2010-06-22 Microsoft Corporation Method and computer-readable medium for fitting text to shapes within a graphic
US20060277476A1 (en) 2005-06-02 2006-12-07 Hsuan-Cheng Lai Method and system for dynamic generation of graphical content using a markup language
US7555711B2 (en) 2005-06-24 2009-06-30 Hewlett-Packard Development Company, L.P. Generating a text layout boundary from a text block in an electronic document
US7747944B2 (en) * 2005-06-30 2010-06-29 Microsoft Corporation Semantically applying style transformation to objects in a graphic
ATE529813T1 (en) * 2005-07-20 2011-11-15 Obigo Korea Co Ltd METHOD AND ARRANGEMENT IN A DISPLAY SYSTEM
US7423646B2 (en) * 2005-11-08 2008-09-09 Microsoft Corporation Smart shape insert
US8042065B2 (en) * 2005-11-17 2011-10-18 Microsoft Corporation Smart copy/paste of graphical nodes
US8438486B2 (en) 2006-02-09 2013-05-07 Microsoft Corporation Automatically converting text to business graphics
CN101231645B (en) * 2007-01-23 2012-03-28 鸿富锦精密工业(深圳)有限公司 System and method for dynamics exhibiting tree type contents
US7949948B2 (en) 2007-05-09 2011-05-24 Microsoft Corporation Constraint and rule-based page layout
US8225278B2 (en) 2007-05-14 2012-07-17 International Business Machines Corporation Method of visualizing modifications of a hierarchical state diagram
US8479218B2 (en) * 2007-07-09 2013-07-02 National Instruments Corporation Automatically arranging objects in a graphical program block diagram
US8826174B2 (en) 2008-06-27 2014-09-02 Microsoft Corporation Using visual landmarks to organize diagrams
US8176412B2 (en) * 2009-08-25 2012-05-08 International Business Machines Corporation Generating formatted documents
US8799325B2 (en) 2010-03-12 2014-08-05 Microsoft Corporation Reordering nodes in a hierarchical structure

Also Published As

Publication number Publication date
US20060066631A1 (en) 2006-03-30
US7348982B2 (en) 2008-03-25
RU2005130361A (en) 2007-04-10
BRPI0503982A (en) 2006-05-09
CA2517409C (en) 2013-12-24
AU2005203708B2 (en) 2010-07-08
US9747710B2 (en) 2017-08-29
TW200612356A (en) 2006-04-16
EP1643452B1 (en) 2019-06-19
US20080136822A1 (en) 2008-06-12
US20140292767A1 (en) 2014-10-02
MY149288A (en) 2013-08-15
TWI379253B (en) 2012-12-11
JP4921744B2 (en) 2012-04-25
CA2517409A1 (en) 2006-03-30
JP2006107465A (en) 2006-04-20
US10319125B2 (en) 2019-06-11
RU2383929C2 (en) 2010-03-10
BRPI0503982B1 (en) 2018-01-16
US8791955B2 (en) 2014-07-29
US20170301122A1 (en) 2017-10-19
EP1643452A1 (en) 2006-04-05
ZA200506944B (en) 2007-05-30
AU2005203708A1 (en) 2006-04-13
CN1755623A (en) 2006-04-05
MXPA05009276A (en) 2006-04-05
KR101433936B1 (en) 2014-08-27
CN100478876C (en) 2009-04-15

Similar Documents

Publication Publication Date Title
US10319125B2 (en) Method, system, and computer-readable medium for creating and laying out a graphic within an application program
RU2537776C2 (en) Markup-based extensibility for user interfaces
JP5336569B2 (en) Method and computer-readable medium for fitting text to a shape in a graphic
US7750924B2 (en) Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes
US7877737B2 (en) Tree-to-graph folding procedure for systems engineering requirements
US8583595B2 (en) Method and system for enhanced attribute synchronization in a content management system
US20090021767A1 (en) Document processing device
JP4303079B2 (en) System and method for conversion between text formatting or markup language formatting and outline structure
US20080195950A1 (en) Document Processing Device and Document Processing Method
US7900159B2 (en) Techniques for representing and organizing user interface data
US20100077295A1 (en) Document processing device and document processing module
EP1933233A1 (en) Data processing apparatus
AU2020200471A1 (en) Web Application Builder
US9558173B2 (en) Method for creating a document model from discontinuous selections of an existing document

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120601

Effective date: 20131022

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5