KR20040054465A - 단순화된 뷰를 가지는 사용자 인터페이스 요소 표현 - Google Patents

단순화된 뷰를 가지는 사용자 인터페이스 요소 표현 Download PDF

Info

Publication number
KR20040054465A
KR20040054465A KR1020030014754A KR20030014754A KR20040054465A KR 20040054465 A KR20040054465 A KR 20040054465A KR 1020030014754 A KR1020030014754 A KR 1020030014754A KR 20030014754 A KR20030014754 A KR 20030014754A KR 20040054465 A KR20040054465 A KR 20040054465A
Authority
KR
South Korea
Prior art keywords
user interface
node
interface element
nodes
simplified view
Prior art date
Application number
KR1020030014754A
Other languages
English (en)
Other versions
KR100863125B1 (ko
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 KR20040054465A publication Critical patent/KR20040054465A/ko
Application granted granted Critical
Publication of KR100863125B1 publication Critical patent/KR100863125B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Digital Computer Display Output (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

조합 사용자 인터페이스 요소는 복수의 서브 요소로부터 조립될 수 있다. 조합된 사용자 인터페이스 요소가 단일 요소로 나타나는 사용자 인터페이스 요소의 표현의 단순화된 뷰가 제공될 수 있다. 정의된 경우에, 사용자 인터페이스를 표현하기 위한 다양한 노드들이 선택적으로 노출가능한 것으로 지정될 수 있다. 그러한 선택적으로 노출가능한 노드들은 단순화된 뷰를 통해 오퍼레이션을 수행할 때 무시될 수 있다. 따라서, 프로그래머들은 조합 사용자 인터페이스 요소의 복잡성을 고려할 필요가 없는 코드를 저작할 수 있다. 속성 결정은 선택적으로 노출가능한 노드의 측면에서 수행될 수 있다. 단순화된 뷰는 각 선택적으로 노출가능한 노드를 가지는 네스팅된 사용자 인터페이스 요소를 지원할 수 있다.

Description

단순화된 뷰를 가지는 사용자 인터페이스 요소 표현{USER INTERFACE ELEMENT REPRESENTATION WITH SIMPLIFIED VIEW}
본 기술 분야는 사용자 인터페이스 요소의 내부 표현에 관한 것이다.
컴퓨터의 보급에 따라 소프트웨어 사용자 인터페이스의 분야에 혁신이 이루어졌다. 예를 들어, 사용자 인터페이스가 프로그래머에 의해 생성되고 조작될 수 있는 가용한 많은 툴들이 현재 존재한다. 또한, 현재 사용자 인터페이스 요소들은 웹 페이지나 워드 프로세스 문서와 같은 문서 내에 배치될 수 있다.
사용자 인터페이스 요소들은 편집 박스, 리스트 박스, 스크롤 바, 픽(pick) 리스트, 푸시버튼(pushbutton) 등과 같은 다양한 형태를 가질 수 있다. 사용자 인터페이스 요소는 단일 조합 아이템으로서 사용자에게 나타날 지라도, 실제로는 다수의 분리된 아이템들 또는 함께 조합될 수 있는 서브-요소들로서 컴퓨터에서 표현될 수 있다. 이들 서브-요소들 각각은 자체적으로 다른 서브 요소들로부터 조합될수 있다. 이와 같이, 사용자 인터페이스 요소들은 더 복잡하고 다른 사용자 인터페이스 요소를 구축하기 위한 빌딩 블록으로서 기능할 수 있다. 사용자 인터페이스(예를 들면, 사용자 인터페이스 프레임워크)를 관리하는 소프트웨어는, 특정 공통 요소들을 조합 요소들로 조립할 때 특정 공통 요소들의 정의들을 재이용할 수 있으므로, 이러한 접근법은 유용하다.
그러나, 사용자 인터페이스 요소들을 조합 사용자 인터페이스 요소들로서 표현함으로써 도입되는 복잡성이 문제가 될 수 있다. 예를 들면, 새롭거나 임시 프로그래머들은 조합 사용자 인터페이스가 조립되는 방법 또는 심지어 조합 인터페이스가 미리 조합되어 있는지에 대해 알고 싶어하지 않을 수도 있다. 그러한 프로그래머들은 조합 사용자 인터페이스 요소들을 다룰 때 오히려 그러한 복잡성을 회피하려 할 것이다. 실제, 경험이 많은 프로그래머도 그러한 복잡성을 다루는 것을 피하려고 한다. 그러므로, 조합 사용자 인터페이스 요소의 표현을 어떻게든 단순화시키는 것이 필요하다.
도 1은 단순화된 뷰를 가지는 사용자 인터페이스 요소의 표현 예를 도시한 도.
도 2는 도 1의 사용자 인터페이스 요소 표현의 단순화된 뷰의 예를 도시한 도.
도 3은 단순화된 뷰를 가지는 다른 사용자 인터페이스 요소 예의 표현을 도시한 도.
도 4는 도 3의 사용자 인터페이스 요소 표현의 단순화된 뷰의 예를 도시한 도.
도 5는 사용자 인터페이스 요소 표현의 단순화된 뷰를 구현하기 위한 방법의 예에 따른 플로우차트.
도 6은 단순화된 뷰를 가지는 표현을 구비하는 사용자 인터페이스 요소의 정의를 처리하기 위한 방법 예에 따른 플로우 차트.
도 7은 도 6에 제공된 바와 같이, 단순화된 뷰를 가지는 사용자 인터페이스 요소의 정의를 유발하기 위한 방법 예에 따른 플로우 차트.
도 8은 도 7에서 생성되는 바와 같이, 사용자 인터페이스 요소의 계층적 표현에 대해 오퍼레이션을 수행하기 위한 방법 예에 따른 플로우차트.
도 9는 콤보 박스로 지칭되는 사용자 인터페이스 요소 예의 스크린 샷(shot)을 도시한 도.
도 10a는 도 9에 도시된 바와 같은 콤보 박스의 계층적 표현 예를 도시한 도.
도 10b는 도 10과 유사한 콤보 박스의 계층적 표현 예를 도시하고 있고, 인캡슐레이션(encapsulation) 경계를 포함한다.
도 11은 도 10에 도시된 바와 같은 콤보 박스의 계층적 표현의 단순화된 뷰의 예를 도시한 도.
도 12는 선택적으로 노출가능한 노드를 가지는 사용자 인터페이스 요소의 계층적 표현을 생성하기 위한 방법 예에 따른 플로우차트.
도 13은 적어도 하나의 요소를 선택적으로 노출가능한 것으로서의 표시를 포함하는 콤보 박스에 대한 마크업 정의 예를 도시한 도.
도 14a는 적어도 하나의 요소를 선택적으로 노출가능한 것으로서의 표시를 포함하는 콤보 박스에 대한 프로그램적 정의 예를 도시한 도.
도 14b는 도 14a의 마크업 정의 예의 연속적인 내용을 도시한 도.
도 15는 도 13, 또는 14a 및 14b에 정의된 바와 같은 콤보 박스의 마크업 유발(invocation)의 예를 도시한 도.
도 16은 도 13 또는 14a 및 14b에 정의된 바와 같은 콤보 박스의 프로그램적 유발의 예를 도시한 도.
도 17은 사용자 인터페이스 요소 표현의 단순화된 뷰를 이용한 오퍼레이션을 수행하기 위한 방법 예에 따른 플로우차트.
도 18은 단순화된 뷰를 통해 오퍼레이션을 수행한 후에, 단순화된 뷰에서 노출되지 않는 것으로 지정된 적절한 노드를 가지는 도 9와 같은 콤보 박스의 계층적 표현의 전체 뷰의 예를 도시한 도.
도 19는 도 18의 표현에 대응하는 단순화된 뷰의 예를 도시한 도.
도 20a는 사용자 인터페이스 요소에 대한 선택적으로 노출가능한 사용자 노드의 다른 표현을 도시한 도.
도 20b는 도 20a에 도시된 표현에 대응하는 단순화된 뷰를 도시한 도.
도 21은 리피터(repeater) 특징을 이용하는 리스트 박스 사용자 인터페이스 요소의 스크린 샷(shot)을 도시한 도.
도 22는 리피터를 포함하는 사용자 인터페이스 요소의 계층적 표현 예를 도시한 도.
도 23은 도 22에 대응하는 단순화된 뷰의 예를 도시한 도.
도 24는 도 22와 같은 리피터를 포함하는 사용자 인터페이스 요소의 계층적 표현을 생성하기 위한 방법 예에 따른 플로우차트.
도 25는 선택적으로 노출가능한 것으로서 지정된 리피터의 마크업 유발의 예를 도시한 도.
도 26은 선택적으로 노출가능한 것으로서 지정된 리피터의 프로그램적 유발의 예를 도시한 도.
도 27은 선택적으로 노출가능한 것으로서 지정된 리피터의 마크업 유발의 다른 예를 도시한 도.
도 28은 리피터 특징을 이용하지 않는 도 21과 같은 리스트 박스의 마크업 정의 예를 도시한 도.
<도면의 주요 부분에 대한 간단한 설명>
100 : 계층적 표현
110, 120 : 노드
본 명세서에 기재된 바와 같이, 하나 이상의 사용자 인터페이스 요소의 표현의 단순화된 뷰가 제공될 수 있다. 예를 들어, 계층적 표현에서 사용자 인터페이스 요소를 나타내는 일부 노드들은 선택적으로 노출가능할 수 있다. 그러한 노드들은 일부 환경에서 노출되고 다른 환경에서는 노출되지 않을 수 있다. 이러한 예를 통해, 단순화된 표현 뷰(예를 들면, 선택적으로 노출가능한 노드를 노출시키지않음)가 제공될 수 있다.
하나의 구현에서, 사용자 인터페이스 서비스를 제공할 때, 사용자 인터페이스의 표현의 단순화된 뷰에 대해 다양한 오퍼레이션이 수행될 수 있다. 예를 들어, 오퍼레이션을 수행할 때, 선택적으로 노출가능한 노드들이 노출되지 않을 수 있다. 그러한 접근법은 표현의 세부사항에 대해 알기 원하지 않는 프로그래머에게 유용할 수 있다.
예를 들면, 복수의 사용자 인터페이스 요소들은 오퍼레이션이 수행될 수 있는 단일 조합 유닛으로 조합될 수 있다. 조합 유닛이 복수의 사용자 인터페이스 요소로 구성된다는 사실은 사용자 인터페이스 요소의 표현의 단순화된 뷰에서 명백할 수 있다. 그러므로, 프로그램은 노출되지 않는 노드에 관계없이 표현을 관찰하고 조작할 수 있다. 결과적으로, 프로그래머는 더 단순한 코드 또는 마크업을 쓸 수 있다. 그리고, 프로그래머는 조합 유닛에 대해 하나 이상의 노드를 포함할 수도 있는 기저 구조를 완벽하게 알 필요가 없다.
그러므로, 단순화된 뷰를 제공하는 사용자 인터페이스 서비스는 소프트웨어 재사용이 촉진되는 강력한 툴을 제공할 수 있고, 잘 모르는 사용자들은 기본 레벨에서 사용자 인터페이스 요소들과 상호 작용할 수 있다.
추가 특징 및 장점들은 첨부 도면을 참조하여 제공되는 이하의 예시된 실시예의 상세한 설명으로부터 명백하게 된다.
<실시예>
개요
본 명세서에 기재된 다양한 기술들은 사용자 인터페이스 요소들을 생성하고, 제공하며 조작하는데 유용하다. 사용자 인터페이스 요소는 그래픽 푸시버튼, 편집 박스, 스크롤 바, 픽 리스트, 드롭 다운 메뉴, ACTIVEX 컨트롤, 화상 등과 같은 여러 가지 형태를 취할 수 있다. 사용자 인터페이스 요소들은 프로그램의 일부(예를 들면, 프로그램의 기능을 제어함) 또는 문서 내에 나타날 수 있다. 그러한 사용자 인터페이스 요소의 내부 표현의 단순화된 뷰는 사용자 인터페이스 요소를 위한 프로그래밍을 더 간단하게 한다. 예를 들면, 임시 또는 잘 모르는 프로그래머는 특정 복잡성을 알 필요없이 단순화된 뷰와 상호 작용하는 프로그램을 저작할 수 있다. 또한, 더 사려깊은 프로그래머는 가능한 프로그래밍 실수를 회피하도록 그러한 복잡성으로부터 보호되기를 바랄 수 있다.
원한다면, 본 명세서에 기재된 기술(예를 들면, 단순화된 뷰)은 사용자 인터페이스 서비스의 일부로서 정의될 수 있다. 그러므로, 서비스와 상호작용하는 프로그램들은 원하는대로 특징을 활용할 수 있다.
특정 실시예들에서, 사용자 인터페이스 요소는 단순화된 뷰를 가지는 계층적 표현을 가지는 것으로서 정의될 수 있다. 그러한 정의는 단순화된 뷰를 가지는 계층적 표현을 생성하도록 유발될 수 있다. 이어서, 계층적 표현에 대해 오퍼레이션이 수행될 수 있다. 그러한 오퍼레이션은 계층적 표현의 전체 또는 단순화된 뷰에 수행될 수 있다.
사용자 인터페이스 요소가 복수의 사용자 인터페이스 요소를 포함하는 조합 사용자 인터페이스 요소인 경우, 주(예를 들면, 부모) 노드는 노출될 수 있고,조합 사용자 인터페이스 요소에 대한 다른 노드들은 선택적으로 노출가능한 것으로서 정의될 수 있다. 노출되지 않는 경우에, 표현의 뷰는 주 노드를 나타내지만, 나머지 선택가능한 노출가능 노드를 나타내지는 않는다. 그러므로, 하나의 노드는 복수의 노드들보다는 조합 사용자 인터페이스 요소에 대해 노출될 수 있다.
조합 사용자 인터페이스 요소의 표현의 전체 뷰는 사용자 인터페이스 요소를 나타내는 계층적 표현에서 복수의 노드들이 존재한다는 점에서 비교적 복잡할 수도 있다. 전체 뷰를 조작하기를 원하는 프로그래머는 다양한 노드들과 이들의 계층적 관계를 알아야 한다는 점에 직면한다. 본 명세서에 기재된 바와 같이, 대신에 프로그램은 단순화된 뷰를 이용하여 오퍼레이션을 수행할 수 있다.
단순화된 뷰에서, 노드(예를 들면, 계층에서 부모 또는 자식 노드)에 오퍼레이션을 수행할 때 노출되지 않는 노드는 무시될 수 있다. 예를 들어, 자식들을 노드에 부가할 때, 노출되지 않는 중간 노드들이 무시되거나 스킵될 수 있다. 그러므로, 사용자 인터페이스의 계층적 표현의 단순화된 뷰에서 자식들을 노드에 부가하도록 하는 요구는 실제로는 노드의 적절한 자식 노드(예를 들면, 조합 사용자 인터페이스 요소의 요소를 표현함)에 자식들을 부가하는 것으로 실제 나타난다. 단순화된 뷰에서 자식들을 부가하는 것은 사용자 인터페이스 요소 및 그 상관관계를 형성하는 복수의 노드들의 복잡성을 아는 것을 요구하지 않으므로, 그러한 접근법은 유용하다.
예를 들면, 리스트 박스는 계층적 관계에서 복수의 노드로서 표현될 수 있고, 노들들 중 하나는 리스트 박스에 대한 표시된 선택을 자식 노드로서 수용하는특정 노드로서 지정될 수 있다. 그러나, 프로그래머는 그러한 복잡성에 익숙해지지 않기를 원할 수도 있다.
단순화된 뷰를 이용하면, 그러한 오퍼레이션은 추가 사용자 선택을 사용자 인터페이스 요소의 주 노드의 자식 노드로서 부가함으로써(예를 들면, 단순화된 뷰를 통해) 용이하게 수행될 수 있다. 단순화된 뷰에서, 자식 노드를 주 노드에 부가하라는 요구는 자식 노드를 적절한 노드(예를 들면, 주 노드의 자손 노드)에 부가하라는 요구로서 구현된다. 이와 같이, 프로그램은 사용자 인터페이스 요소의 단순화된 표현을 이용하여 사용자 인터페이스 요소에 대해 오퍼레이션을 수행할 수 있다. 결과적으로, 프로그래머는 전체 뷰의 복잡성을 알 필요가 없고, 더 단순한 코드 또는 마크업이 이용될 수 있다.
단순화된 뷰를 구현하는 하나의 방법은 표현 내의 다양한 노드들을 인캡슐레이팅(encapsulating) 부모 또는 인캡슐레이팅 컨테이너로서 정의하는 것이다. 이와 같이, 특정 노드가 주 노드(예를 들면, 인캡슐레이팅 부모)로서 지정될 수 있고, 다른(예를 들면, 자식) 노드는 자식 노드(예를 들면, 부모 노드가 단순화된 뷰에서 자식 노드를 가지고 있거나 가지게 될 경우)를 수용하는 특정 노드로서 지정될 수 있다.
단순화된 뷰를 구현하는 다른 방법은 단순화된 뷰에서 선택적으로 노출가능한 노드의 자식 노드를 선택적으로 노출가능한 노드의 형제들 중의 형제들로 간주되도록 선택적으로 노출가능한 노드를 정의하는 것이다.
본 명세서에 기재되는 바와 같이, 자식 노드를 부가하는 이외의 다수의 오퍼레이션들은 사용자 인터페이스 요소 표현에 대해 배우거나 조작하도록 수행될 수 있다. 뿐만 아니라, 오퍼레이션들은 표현 내의 임의의 노드 상에서 수행될 수 있고, 또한 단순화된 뷰를 활용할 수 있다.
또한, 선택적으로 노출가능한 노드들의 측면에서 속성값(property value)이 결정될 수 있다(예를 들면, 부가 노드에 대함). 일부 경우에, 주 노드(예를 들면, 선택적으로 노출가능한 노드를 무시함), 근접(예를 들면, 노출되지 않음) 부모 노드, 또는 그 조합과 연관된 속성값을 이용하는 것이 바람직할 수 있다.
사용자 인터페이스 요소 표현에 관한 일부 세부사항이 숨겨지므로, 조합 사용자 인터페이스 요소에 대한 주 노드 및 선택적으로 노출가능한 노드가 종종 "인캡슐레이팅된" 사용자 인터페이스 요소를 형성하는 것으로 말해진다.
단순화된 뷰와 상호작용하는 프로그램이나 마크업 언어는 기저 표현의 일부 복잡성으로부터 감추어질 수 있다. 그러므로, 조합 사용자 인터페이스 요소는 조합 사용자 인터페이스를 이용하여 프로그램에 대한 추가 복잡성을 도입하지 않고 복수의 사용자 인터페이스 요소로 조립될 수 있다. 그러한 접근법은, 사용자 인터페이스 요소 개발자들이 새로운 사용자 인터페이스 요소를 생성할 때 사용자 인터페이스 요소를 다룰 때 불필요한 복잡성을 도입시키지 않고 기존의 사용자 인터페이스를 재사용하도록 조장한다는 점에서 유용하다. 또한, 선택적으로 노출가능한 노드를 지정하는 정의의 네스팅(nesting)이 지지될 수 있다.
사용자 인터페이스 요소의 계층적 표현 예
소프트웨어에서 사용자 인터페이스 요소를 표현하는 하나의 방법은 그것을다양한 노드를 가지는 계층적 트리의 형태로 저장하는 것이다. 도 1은 사용자 인터페이스 요소의 계층적 표현(100)의 예를 도시하고 있다. 노드(110, 120)는 부모-자식 관계를 가지는 것으로 도시되어 있다. 예를 들면, 노드(110)는 자식 요소(120)의 부모 요소이다. 표현(100)은 하나 이상의 노드를 포함하므로, "조합" 사용자 인터페이스 요소를 표현한 것으로 말해진다. 조합 사용자 인터페이스 요소의 경우에, 노드(110)는 하나의 시각적인 프리젠테이션에 대응하고, 노드(120)는 다른 시각적인 프리젠테이션에 대응할 수 있다. 그러나, 노드(110 또는 120) 중 적어도 하나는 아무런 시각적인 묘사(depiction)를 가지지 않을 수 있다.
표현(100)에서 하나 이상의 노드들은 선택적으로 노출가능한 것으로 지정될 수 있다. 예에서, 노드(120)가 그렇게 지정된다. 표현(100)의 단순화된 뷰를 제공할 때, 선택적으로 노출가능한 노드(120)는 노출되지 않는다. 결과적으로, 사용자 인터페이스 요소 계층적 표현(10)을 나타내는 노드들 중 루트 노드(110)만이 노출된다. 그러므로, 노출되지 않은 노드(110)는 종종 "주" 노드라 불려진다.
다수의 요소들을 포함하는 더욱 더 복잡한 사용자 인터페이스가 도 1에 도시된 방식대로 표현될 수 있다. 각 요소들은 도 1에 도시되지 않은 추가 복잡성 계층(예를 들면, 선택적으로 노출가능한 노드를 포함하는 추가 노드들)을 부가하는 다른 사용자 인터페이스 요소를 포함할 수 있다. 또한, 다양한 자식 노드들이 다른 사용자 인터페이스 요소의 표현을 위한 주 노드일 수 있다.
도 1은 선택적으로 노출가능한 노드(예를 들면, 노드(120))를 포함하는 사용자 인터페이스 요소의 계층적 표현의 전체 뷰를 도시하고 있다. 그러나, 계층적표현(110)의 전체 뷰는 사용자 인터페이스 요소의 표현을 위한 다양한 오퍼레이션을 수행할 때 바람직하지 않을 수도 있다. 예를 들면, 노드(120)와의 직접적인 상호작용이 일부 환경에서 불필요할 수 있다. 그렇다면, 도 2에 도시된 바와 같은 표현의 단순화된 뷰(200)의 예가 제공될 수 있다.
단순화된 뷰(200)의 예는 단지 하나의 노드(200)를 도시하고 있다. 노드(210)는 전체 뷰(예를 들면, 노드(120)가 노드(110)내에서 인캡슐레이션됨)의 노드(110, 120)의 조합 표현 또는 단지 전체 뷰의 노드(110)의 표현 중 어느 하나가 될 수 있다.
사용자 인터페이스 요소의 다른 계층적 표현 예
다른 계층적 표현 예(310)가 도 3에 도시된다. 예에서, 노드(310, 320, 325)는 조합 사용자 인터페이스 요소를 나타내는 노드의 셋트(330)이다. 노드 셋트(330)에서, 노드(310)는 주 노드이고, 나머지 노드(320, 325)는 선택적으로 노출가능한 것으로 정의된다. 다른 노드(340)는 선택적으로 노출가능하지 않고, 선택적으로 노출가능한 노드(320)들 중 하나의 자식으로서 도시된다. 표현(300)은 선택적으로 노출가능한 노드를 포함하고, 전체 뷰가 요구된 경우에 제공된다.
대응하는 단순화된 뷰가 도 4에 도시되어 있다. 선택적으로 노출가능한 노드(320, 325)는 단순화된 뷰가 요구될 때 노출되지 않는다. 대신에, 단순화된 뷰(400)는 노드(410, 예를 들면 노드(310), 또는 노드(310, 320, 325)의 조합) 및 노드(340)를 도시하고 있다.
이제, 도 3을 참조하면, 노드들(320) 중 하나는 단순화된 뷰 자식들(예를 들면, 노드(340))이 저장되는 노드로서 지정될 수 있다. 그러한 노드는 종종 "컨테이너" 노드(예를 들면, 인캡슐레이션된 노드에 대함)라 지칭된다.
그러므로, 사용자 인터페이스의 비교적 복잡한 표현은 단순화된 형태로 제공될 수 있다. 그러한 복잡한 사용자 인터페이스의 계층적 표현의 전체 뷰(300)가 계층적 표현에서 선택적으로 노출가능한 노드에 관심이 없는 사용자에 의해 저작된 프로그램에 대해 제공될 필요가 없다. 예를 들면, 프로그래머는 선택적으로 노출가능한 노드(320, 325)에 관련된 사용자 인터페이스 요소의 존재 또는 기능이나 외관의 정의에 별로 관심이 없을 수 있다. 그러나, 프로그램은 노드(340)와 상호작용해야 할 필요가 있을 수 있다. 그러므로, 관심사가 되는 노드만을 보여주는 사용자 인터페이스의 계층적 표현의 단순화된 뷰(400)를 제공하는 것이 종종 바람직하다.
본 명세서에 기재된 기술은 추가 또는 더 적은 노드를 가지는 다른 다양한 표현에 적용될 수 있다.
단순화된 뷰 구현예의 개관
도 5는 사용자 인터페이스 요소의 표현의 단순화된 뷰를 구현하기 위한 방법 예(500)를 도시하고 있다(예를 들면, 사용자 인터페이스 서비스에서). 단계 510에서, 계층적 표현을 가지는 사용자 인터페이스 요소가 정의된다. 예를 들면, 정의는 복수의 노드들을 포함할 수 있고, 이들 일부는 선택적으로 노출가능하다.
정의가 생성된 후, 단계 520에서, 사용자 인터페이스를 생성하도록 야기될 수 있다. 예를 들면, 정의된 사용자 인터페이스 요소의 계층적 표현이 정의를 통해 생성되어 저장될 수 있다.
단계 530에서, 하나 이상의 오퍼레이션들이 표현에 대해 수행될 수 있다. 그러한 오퍼레이션들은 표현에서 선택적으로 노출가능한 노드를 노출시키지 않고 계층적 표현의 단순화된 뷰를 통해 수행될 수 있다.
원한다면, 정의의 유발 및 표현에 대한 오퍼레이션의 수행 등은 표현의 전체 뷰를 참조하지 않고 수행될 수 있다. 그러므로, 프로그래머는 전체 뷰의 세부 사항을 알지 않고서도 코드 또는 마크업을 저작할 수 있다. 실제, 임의의 하나의 묘사된 액션은 개별적으로 유용할 수 있고, 한번에 또는 동일한 프로그램에 의해 수행될 필요는 없다.
단순화된 뷰를 가지는 사용자 인터페이스 요소를 정의하기 위한 방법 예
도 6은 단순화된 뷰로 계층적 표현을 가지는 사용자 인터페이스 요소의 정의를 수신하기 위한 방법 예를 도시하고 있다. 정의는 마크업 언어(예를 들면, XML 또는 HTML) 또는 프로그래밍 언어(예를 들면, 자바, C++)와 같은 다양한 언어를 이용하여 생성될 수 있다. 그러므로, 정의는 프로그램으로부터 수신되거나 마크업 문서에 지정될 수 있다.
단계 610에서, 사용자 인터페이스 요소의 표현을 위해 저장될 하나 이상의 노드들의 표시가 수신된다. 예를 들면, 사용자 인터페이스 요소(예를 들면, 서브 요소)가 지정될 수 있다. 정의는 요소들간의 계층적 관계를 표시할 수 있다. 그러한 정의는 조합 사용자 인터페이스 요소를 형성하는 다양한 요소에 대한 노드 정의를 포함할 수 있다.
단계 620에서, 적어도 하나의 선택적으로 노출가능한 노드의 표시가 수신된다. 원한다면, 선택적으로 노출가능한 노드들은 정의에서 지정되는 대신에 자동적으로 선택될 수 있다. 정의된 사용자 인터페이스 요소의 표현의 단순화된 뷰가 제공되는 경우에, 선택적으로 노출가능한 노드들이 노출되지 않는다. 그리고 나서, 정의는 나중 유발을 위해 단계 630에서 저장될 수 있다.
단순화된 뷰를 가지는 정의된 사용자 인터페이스 요소를 유발하기 위한 방법 예
사용자 인터페이스 요소의 인스턴스는 정의(예를 들면, 도 6에 도시된 방법을 통해 정의된 것과 같음)를 유발함으로써 생성될 수 있다. 도 7은 단순화된 뷰를 가지는 사용자 인터페이스 요소의 정의를 유발하기 위한 방법 예를 도시하고 있다. 단계 710에서, 사용자 인터페이스 요소를 생성하라는 요구가 수신된다. 그러한 요구는 프로그램적으로 (예를 들면, 소프트웨어 프로그램으로부터) 수신되거나 마크업 문서로부터 수신될 수 있다. 요구는 사용자 인터페이스 요소를 정의했던 동일한 주체로부터 수신될 필요는 없다.
단계 720에서, 사용자 인터페이스 요소의 계층적 표현의 정의는 사용자 인터페이스(예를 들면 조합 사용자 인터페이스 요소를 형성하는 사용자 인터페이스 요소들에 대응함)의 계층적 표현에서 적절한 노드를 생성하는데 이용된다. 생성된 노드들은 표현의 전체 뷰가 요구되면 제공된다.
단계 730에서, 적절한 노드(예를 들면, 정의에 의해 지정됨)는 선택적으로 노출가능한 것으로 지정된다. 그러한 선택적으로 노출가능한 노드들은 단순화된뷰(예를 들면, 사용자 인터페이스 요소가 표시되는 표현)가 요구되는 경우에 노출되지 않는다(예를 들면, 만나지 않는다).
노드가 사용자 인터페이스 요소의 표현의 뷰에서 노출되는지 여부는 사용자 인터페이스 요소가 렌더링되는 경우에 표시 장치 상에 대응하는 사용자 인터페이스 요소가 표시되는지(예를 들면, 숨겨지는지) 여부에 관계없다.
단순화된 뷰를 가지는 사용자 인터페이스 요소에 대해 오퍼레이션을 수행하기 위한 방법 예
일단 사용자 인터페이스의 정의가 유발되어 사용자 인터페이스 요소의 계층적 표현을 생성하면(예를 들면, 도 7에 도시됨), 표현에 대한 오퍼레이션이 수행될 수 있다. 그러한 오퍼레이션은 표현의 전체 또는 단순화된 뷰에 대해 수행될 수 있다. 단순화된 뷰에 대해 수행되는 오퍼레이션은 예를 들면, 노드의 자식을 열거하고, 자식을 노드에 부가하며, 노드의 자식을 제거하고, 계층적 표현내에서 네비게이션하는 것을 포함한다.
사용자 인터페이스 요소의 표현의 단순화된 뷰에 대해 오퍼레이션을 수행하기 위한 방법 예가 도 8에 도시되어 있다. 단계 810에서, 사용자 인터페이스 요소(예를 들면, 조합 사용자 인터페이스 요소의 주 노드)에 대해 오퍼레이션을 수행하라는 요구가 수신된다. 단계 820에서, 요구된 오퍼레이션은 사용자 인터페이스 요소의 계층적 표현의 단순화된 뷰를 이용하여 수행된다. 오퍼레이션은 계층적 표현의 변형으로 결과적으로 나타나거나(예를 들면, 노드를 추가하거나 제거한 경우), 표현이 변경될 수 있다(노드내에서 열거하거나 네비게이션하는 경우).
예를 들면, 단순화된 뷰를 이용하여 노드의 자식을 열거하라는 요구는 자식 노드가 선택적으로 노출가능한 것으로 지정된 경우, 노드의 자식 노드(또는 손자 노드)에 저장된 자식들의 열거로 결과적으로 나타날 수 있다.
단순화된 뷰에서 선택적으로 노출가능한 자식들을 가지는 부모 노드에 자식을 부가하라는 요구는 단순화된 뷰에서 가시되는 부모 노드이거나 아닐 수 있는 사용자 요소의 표현의 전체 뷰의 계층에서 적절한 위치에 부가되는 자식으로 결과적으로 나타날 수 있다.
그러므로, 단순화된 뷰에서, 자식이 부모 노드 하에 바로 부가된 것처럼 보일 것이다. 자식들을 유발하는 오퍼레이션에 대해, 사용자 인터페이스 요소의 계층적 표현의 정의가 이용되어 계층적 표현의 전체 뷰 내에서 자식들을 부가하거나 찾는 적절한 위치를 찾을 수 있다. 이와 같이, 프로그램은 단순화된 뷰와 상호작용하도록 저작될 수 있고, 프로그래머는 숨겨진 노드를 포함하는 전체 뷰의 세부 사항 및 계층 내의 배열을 알아야 하는 수고를 덜 수 있다.
콤보 박스와 관련된 구현 예
다음의 몇몇 실시예는 콤보 박스로 알려진 예시적인 사용자 인터페이스에 관한 다양한 프로세싱을 설명한다. 설명된 기술은 현재 존재하거나 이후에 개발될 다수의 사용자 인터페이스 요소에 적용될 수 있다.
콤보 박스 사용자 인터페이스 요소 예
도 9는 콤보 박스로서 통상 알려진 사용자 인터페이스 요소(905)의 예를 도시하고 있다. 예에서, 콤보 박스(905)는 수 개의 사용자 인터페이스 요소를 포함하는 조합 사용자 인터페이스 요소이고, 이들은 추가 사용자 인터페이스 요소들을 포함한다. 콤보 박스(905)는 입력 박스(910), 드롭다운 버튼(930), 및 팝업 윈도우(920)를 포함한다. 일반적으로, 사용자가 드롭다운 버튼(930) 위를 클릭하면, 팝업 윈도우(920)가 표시된다. 본 예에서, 팝업 윈도우(920)는 리스트 박스(925, 예를 들면, 팝업 윈도우(920)로부터 가시적으로는 식별 불가능함)를 포함한다. 그러나, 팝업 윈도우(920)는 다른 또는 추가 사용자 인터페이스 요소(예를 들면, 드롭다운 메뉴)를 포함할 수 있다. 리스트 박스(925)는 또한, 그리드 패널(945)과, 그리드 패널내에 포함되고 리스트 아이템(940)을 통해 스크롤링하기 위한 스크롤바(945)를 포함하는 스크롤 뷰어(926, 예를 들면, 팝업 윈도우(920)로부터 가시적으로 식별 불가능함과 같이, 자신의 요소와의 조합 사용자 인터페이스 요소이다.
콤보 박스(905)의 예제 예시에서, 리스트 박스 요소(925)는 스크롤 뷰어 요소(926) 및 팝업 요소(920)로부터 가시적으로 식별 불가능한 것으로서 도시된다. 그러므로, 예시는 팝업 윈도우(920)는 스크롤 뷰어(926)내에 포함된 빈 위치 홀더에 그리드 패널(935)을 부가함으로써 형성되는 리스트 박스 요소(925)를 포함하는 것으로 도시하고 있다. 다른 배열들도 가능하다. 예를 들면, 팝업 윈도우(920)가 리스트 박스(925)와 다른 사용자 요소를 포함할 수 있다. 또한, 스크롤 뷰어(926)는 빈 위치 홀더에 포함된 그리드 패널(935) 이외의 요소(예를 들면, 메뉴)를 구비할 수 있다.
스크롤바(945)는 스크롤 버튼(950, 951, 955, 및 956) 및 스크롤 썸(960,thumb)과 같은 요소를 포함하는 조합 사용자 인터페이스 요소로서 표현될 수 있다. 그려진 콤보 박스(905) 대신에 임의의 수의 변동이 이용될 수 있다. 예를 들면, 요소들은 제거될 수 있고, 추가 요소들이 부가될 수 있거나 다른 요소들이 정의될 수 있다. 예를 들면, 수평 스크롤 바(도시되지 않음)도 수평으로 긴 리스트 아이템을 통해 스크롤할 때 사용자를 돕도록 부가될 수도 있다.
콤보 박스 사용자 인터페이스 요소의 표현 예(전체 뷰)
도 10a는 전체 뷰가 요구되는 경우에 제공되는(예를 들면, 사용자 인터페이스 서비스에 의함) 콤보 박스(예를 들면, 도 9에 도시됨)의 계층적 표현 예(1000)를 도시하고 있다. 도시된 바와 같이, 노드는 계층적 형태의 트리 구조로 배열된다.
콤보 박스에 대한 주 노드는 계층의 최상 노드로서 1005로서 표시된다. 콤보 박스(예를 들면, 도 9에 도시됨)의 다른 요소들은 팝업(1020), 입력 박스(1010) 및 드롭다운 버튼(1030)으로서 계층적 표현내에서 노드로서 표시된다. 팝업(1020)은 리스트 박스(1025)를 포함하는 것으로 도시된다. 리스트 박스(1025)는 스크롤 뷰어(1026)를 더 포함하는 계층적 표현의 부모 노드이다.
스크롤 뷰어(1026)는 계층적 표현 내에서 부모 노드이다. 스크롤 뷰어 노드(1026)는 위치 홀더 요소(1035), 수직 스크롤 바(1030) 및 수평 스크롤 바(1040)에 대한 부모 노드이다. 도 9와 관련하여 상기 설명한 바와 같이, 부모 리스트 박스 노드(1025)와 그 자식 요소 스크롤 뷰어(1026) 사이에는 어떠한 가시적 차이도 없다. 이것은 리스트 박스(1025)가 위치 홀더 요소 노드(1035)의 자식노드로서 그리드 패널 요소(1045)를 부가함으로써 형성되기 때문이다. 그러나, 다른 자식 노드들은 다른 사용자 요소와 조합하여 스크롤 뷰어(1026)를 이용하기 위한 위치 홀더 요소 하에 부가되어, 다른 더 복잡한 사용자 인터페이스 요소를 형성할 수 있다. 마지막으로, 리스트 아이템(1050A, 1050B, 및 1050C)은 그리드 패널(1045)의 자식들이다.
예는 조합 사용자 인터페이스 요소가 다른 사용자 인터페이스 요소로부터 구축될 수 있고 따라서 많은 노드에 의해 표현될 수 있는 방법을 예시한다. 예를 들면, 리스트 박스 조합 사용자 인터페이스 요소는 리스트 박스 노드(1025) 및 그 자손 노드로서 정의될 수 있다. 콤보 박스 조합 사용자 인터페이스 요소를 구축하려면, 입력 노드(1010), 팝업 노드(1020) 및 버튼 노드(1030)가 콤보 박스 노드(1005) 하에서 조합될 수 있다. 최종적으로, 리스트 박스 조합 사용자 인터페이스 요소(예를 들면, 리스트 박스 노드(1020) 및 그 자손들)는 팝업 노드(1020) 아래에 삽입될 수 있다(예를 들면, 마크업 또는 프로그램적으로). 리스트 박스 조합 사용자 인터페이스 요소에 대한 간단한 참조가 결과적으로는 리스트 박스 노드(1025) 및 그 자손들이 생성으로 나타날 수 있다. 실제, 리스트 아이템에 관련된 노드들(예를 들면, 노드 (1050A, 1050B, 1050C))은 리스트 박스 사용자 인터페이스 요소의 정의 내에 포함되지 않을 수도 있다.
예에서 도시된 노드의 다중 네스팅은 사용자 인터페이스 요소를 정의하고 조작하는 복잡성을 추가할 수 있다. 콤보 박스 표현이 비교적 복잡하지만, 더욱 더 복잡한 예들이 구현될 수 있다. 그러나, 기술들은 더 간단한 예들에도 적용될 수있다.
예에서, 노드(1010, 1020, 1025, 1026, 1030, 1031A, 1031B, 1033, 1034A, 1034, 1035, 1040, 1041A, 1041B, 1043, 1044A, 1044B, 및 1045)를 포함하는 노드 셋트(1060)는 선택적으로 노출가능한 것으로서 정의된다. 표현의 단순화된 뷰가 제공되는 경우에, 선택적으로 노출가능한 노드들이 노출되지 않는다.
사용자 인터페이스 요소의 계층적 표현의 단순화된 뷰가 요구된다. 예를 들면, 계층적 표현의 상대적 복잡성을 다룰 필요없이 추가 리스트 아이템을 추가하는 것이 바람직할 수도 있다(예를 들면, 리스트 아이템을 자식들로서 부가하는 경우).
콤보 박스 사용자 인터페이스 요소의 표현 예(단순화된 뷰)
조합 사용자 인터페이스 요소는 복잡한 복수의 노드를 포함할 수 있지만, 사용자 인터페이스 요소의 계층적 표현의 단순화된 뷰를 제공하는 것이 바람직하다. 도 11은 콤보 박스(예를 들면, 도 9에 도시됨)의 단순화된 뷰가 요구될 때 제공되는 계층적 표현 예(1100, 예를 들면, 도 10a의 표현(1000)에 대응함)를 도시하고 있다. 예에서, 리스트 아이템에 대한 노드(1050A, 1050B, 및 1050C)들은 콤보 박스의 주 노드(1105)의 직접적인 자식들로서 도시되어 있다. 도시되지 않은 다른 노드들은 콤보 박스 노드(1105)"에 의해 인캡슐레이션되어 있는" 것으로 종종 말해진다. 단순화된 뷰를 이용하면, 리스트 아이템을 조작하는 것에 관련된 프로그램은 리스트 아이템을 주 노드(1110)의 자식들로 간주할 수 있고, 조합 사용자 인터페이스 요소에서 다른 요소에 관련된 로직을 포함할 필요가 없다. 콤보 박스 사용자 인터페이스 요소의 정의는 단순화된 뷰를 위한 오퍼레이션이 계층적 표현의 전체 뷰를 위한 적절한 오퍼레이션으로 변환될 수 있는 충분한 정보를 포함할 수 있다.
단순화된 뷰를 가지는 사용자 인터페이스 요소의 네스팅 예
본 명세서에 기재된 배열은 네스팅을 지지할 수 있다. 네스팅에서, 자체적으로 선택적으로 노출가능한 노드를 가지는 다른 사용자 인터페이스 요소 내에서 선택적으로 노출가능한 노드를 가지는 사용자 인터페이스 요소가 존재할 수도 있다. 그러한 네스팅은 다양한 방식으로 결정될 수 있다. 예를 들면, 조합 사용자 인터페이스 요소내의 일부 노드들이 노출(예를 들면, 단순화된 뷰에서 볼 수 있음)된 것으로 지정될 수 있지만, 사용자 인터페이스 요소가 다른 조합 사용자 인터페이스 요소의 일부로 만들어진(예를 들면, 그 내부에 인캡슐레이션됨) 경우, 그러한 노드들은 선택적으로 노출가능한 것으로 지정되는(예를 들면, 인캡슐레이팅 조합 사용자 인터페이스 요소에 의해) 인캡슐레이팅 조합 사용자 인터페이스 요소를 나타내는 계층의 영역 내에 존재한다는 사실에 의하여 선택적으로 노출가능한(예를 들면, 단순화된 뷰에서 볼 수 없는) 것으로 간주될 수 있다.
또한, 그러한 네스팅은 상대성(relativity)을 지지할 수 있다. 예를 들면, 노드들은 오퍼레이션을 수행하라는 요구가 수행되는 노드에 따라 선택적으로 노출가능한 것을 간주될 수도 또는 그렇지 않을 수도 있다. 환언하면, 다른 사용자 인터페이스 요소 내에서 인캡슐레이팅된 노드에 대해 오퍼레이션을 수행하라는 요구가 인캡슐레이팅 사용자 인터페이스 요소에 대해 오퍼레이션을 수행할 때 보이지 않는 노드를 도시한 뷰로 결국은 나타나게 된다.
도 10b는 도 10a에 도시된 바와 같이 콤보 박스의 계층적 표현 예를 도시하고 있다. 편의상, 스크롤 바와 연관된 일부 노드들이 생략된다.
예에서, 스크롤 뷰어 노드(1026)는 스크롤 뷰어 노드(1026), 컨테이너 요소 노드(1035) 및 다양한 스크롤바 노드들(예를 들면, 노드 (1030))을 포함하는 조합 사용자 인터페이스 요소의 주 노드이다. 단순화된 뷰에서 스크롤 뷰어 노드(1026)에 대해 수행된 오퍼레이션에 대해, 조합 사용자 인터페이스 요소의 다른 노드들이 선택적으로 노출가능한(예를 들면, 스킵됨) 것으로 간주되어 스크롤 뷰어 노드(1026)에 의해 인캡슐레이션된다. 예를 들면, 단순화된 뷰에서 자식 노드를 스크롤 뷰어 노드(1026)에 부가하라는 요구는 컨테이너 요소 노드(1035)에 부가된 자식 노드가 결국은 될 것이다. 이와 같이, 인캡슐레이션 경계(1090)가 정의된다.
마찬가지로, 리스트 박스 노드(1025)는 스크롤 뷰어 노드(1026, 예를 들면, 및 그럼으로써 인캡슐레이션되는 노드들) 및 그리드 패널(1045)을 포함하는 조합 사용자 인터페이스 요소의 주 노드이다. 리스트 박스 노드(1025)에 대해 수행되는 오퍼레이션에 대해, 조합 사용자 인터페이스 요소의 나머지 노드들이 선택적으로 노출가능한(예를 들면, 스킵됨) 것으로 간주되어 리스트 박스 노드(1025)에 의해 인캡슐레이션된다. 이와 같이, 인캡슐레이션 경계(1080)가 정의된다.
또한, 콤보 박스 노드(1005)는 입력 노드(1010), 팝업 노드(1020), 버튼 노드(1030), 및 리스트 박스 노드(1025, 예를 들면, 및 그럼으로써 인캡슐레이션되는 노드들)를 포함하는 조합 사용자 인터페이스의 주 노드이다. 콤보 박스 노드(1005)에 대해 수행되는 오퍼레이션에 대해, 조합 사용자 인터페이스 요소의나머지 노드들은 선택적으로 노출가능한(예를 들면, 스킵됨) 것으로 간주되어 콤보 박스 노드(1005)에 의해 인캡슐레이션된다. 이와 같이, 인캡슐레이션 경계(1070)가 정의된다. 리스트 박스 노드(1025)가 인캡슐레이션 노드의 일부이므로, 효율적인 인캡슐레이션 경계(1095)가 효과를 발휘한다. 환언하면, 콤보 박스 노드(1005)에 대해 수행된 오퍼레이션에 대해, 콤보 박스 노드(1005) 및 리스트 아이템 노드(1050A-C) 이외에 도시된 노드들은 선택적으로 노출가능한(예를 들면, 스킵됨)으로 간주되어 콤보 박스(1005)에 의해 인캡슐레이션된다. 예를 들면, 단순화된 뷰에서 자식 노드를 콤보 박스 노드(1005)에 부가하라는 요구는 결국은 그리드 패널 노드(1045)에 부가되는 자식 노드로 나타나게 될 것이다.
단순화된 뷰를 가지는 사용자 인터페이스 요소를 표시하기 위한 방법 예
단순화된 뷰를 제공하는데 다양한 방법들이 이용될 수 있다. 하나의 그러한 방법이 사용자 인터페이스 요소의 표현 내에 노드에 대한 다양한 속성을 저장하는 것이다. 이하의 예는 표현에서 어느 노드가 선택적으로 노출가능한지를 지정하도록 속성(예를 들면, "인캡슐레이팅 부모" 및 "인캡슐레이팅 컨테이너")을 이용하는 것을 기술한다.
노드의 적절한 속성(예를 들면, "인캡슐레이팅 부모")을 TRUE로 설정함으로써, 계층에서 노드 이하의 노드들은 선택적으로 노출가능한 것으로 지정된다(예를 들면, 단순화된 뷰에서 노출되지 않음).
본 명세서에 기재된 바와 같이, 그러한 노드는 "주" 노드로서 지칭된다. 또한, 계층에서 주 노드 이하의 특정 노드가 TRUE로 설정된 적절한 속성(예를 들면,"인캡슐레이팅 컨테이너")을 가지면, 특정 노드의 자식들은 선택적으로 노출가능하지 않은 것으로서(예를 들면 단순화된 뷰에서 노출됨) 지정된다. 그러한 경우에, 특정 노드의 자식들은 단순화된 뷰를 위해 주 노드의 자식들로 간주된다. 그래서, 자식들이 단순화된 뷰를 통해 주 노드에 부가되는 경우에, 이들은 TRUE로 설정된 속성(예를 들면, "인캡슐레이팅 컨테이너")을 가지는 특정 노드의 자식들로서 실제로 부가된다.
네스팅은 도 10b를 참조하여 설명한 바와 같이 지원될 수 있다. 예에서, 인캡슐레이션 경계의 상부에서의 노드(예를들면, 주 노드)는 적절한 속성(예를 들면, "인캡슐레이팅 부모" 속성) 셋트를 가질 수 있고, 인캡슐레이션 경계의 기저부에서의 노드는 적절한 속성(예를들면, "인캡슐레이팅 컨테이너" 속성) 셋트를 가질 수 있다. 이와 같이, 인캡슐레이션 경계들은 속성 설정을 통해 정의될 수 있다.
도 12는 사용자 인터페이스 요소의 계층적 표현 내에서 다양한 속성의 노드들의 지시값들을 통해 단순화된 뷰를 가지는 사용자 인터페이스 요소를 나타내기 위한 방법 예(1200)를 도시하고 있다. 계층적 표현의 노드는 노드 자체, 그 자식, 또는 그 부모를 선택적으로 노출하는 것에 관련된 속성을 가질 수 있다. 그러한 속성을 설정함으로써, 단순화된 뷰를 가지는 사용자 인터페이스 요소가 표시될 수 있고, 단순화된 뷰를 통해 표현에 대해 오퍼레이션이 수행될 수 있다.
단계 1210에서, 사용자 인터페이스의 계층적 표현의 적어도 하나의 노드가 주 노드(예를 들면, 선택적으로 노출되지 않은 노드를 인캡슐레이팅함)를 지원하는 것으로 선택된다. 단계 1220에서, 선택된 노드 상의 IsEncapsulatingParent 속성이 'TRUE'로 설정된다. 단계 1230에서, 주 노드의 자손은 단순화된 뷰에서 주 노드의 임의의 자식들(예를 들면, 이제 존재하거나 후속적으로 부가됨)에 대한 컨테이너로서 기능하도록 선택된다. 그리고 나서, 단계 1240에서, 자손 노드의 IsEncapsulatingConatainer 속성이 'TRUE'로 설정된다.
예에서 설명된 바와 같은 속성을 설정함으로써, 컨테이너 및 주 노드와 컨테이너간의 임의의 중간 자손(예를 들면, 자식)은 선택적으로 노출가능한(예를 들면, 단순화된 뷰에서 스킵되거나 부모내에 "인캡슐레이션" 됨) 것으로 정의된다. 컨테이너 이하의 자식 노드들은 단순화된 뷰에서 노출된다(예를 들면, 볼 수 있다).
일부 배열에서, 임의의 자식 요소들이 전혀 없을 수도 있다. 그러한 경우에, 잎(leaf) 노드의 적절한 속성이 설정될 수 있다. 이어서, 자식들이 단순화된 뷰에서 부가되는 경우에, 잎 노드 아래에 배치된다.
콤보 박스의 마크업 정의 예
그 표현의 단순화된 뷰를 가지는 사용자 인터페이스 요소는 다양한 방식으로 정의될 수 있다. 그러한 하나의 방법은 처리되어 후속 유발을 위해 저장될 수 있는 마크업 언어(예를 들면, HTML 또는 XML)를 통해서이다. 도 13은 XML로 저작된 단순화된 뷰를 가지는 콤보 박스(도 11에 도시된 것과 같음)의 정의 예를 도시하고 있다.
정의된 콤보 박스의 인스턴스가 생성된 경우에, 계층적 표현의 다양한 노드에 대해 적절한 속성이 설정되어, 원하는 단순화된 뷰를 달성한다. 계층적 표현의 다양한 노드의 속성을 정의하는 방식은 마크업 언어뿐만 아니라 다른 타입의 언어에 이용하는데에 적응가능하다.
예에서, 네스팅이 달성된다. 도 13의 정의는 결국은 도 10b에 도시된 배열로 나타날 수 있다.
콤보 박스의 프로그램적 정의 예
단순화된 뷰를 가지는 사용자 인터페이스 요소는 프로그램(예를 들면, C++이나 자바와 같은 프로그래밍 언어)적으로 정의될 수 있다. 예를 들면, 도 14a 및 14b는 단순화된 뷰를 가지는 콤보 박스의 계층적 표현의 프로그램적 정의를 도시하고 있다.
도 13의 마크업 정의 및 도 14a 및 14b의 프로그램적 정의 모두는 단순화된 뷰에서 노출된 콤보 박스의 자식들을 유지하기 위한 리스트 박스 요소(즉, 리스트 박스 아이템)를 포함하는 팝업 요소를 구비하는 것으로 정의된 콤보 박스를 도시하고 있다. 리스트 박스 요소(조합 제어 자체임)는 단순화된 뷰에서 노출된 리스트 박스의 자식들을 유지하기 위한 그리드 패널(즉, 리스트 아이템)을 포함하는 스크롤 뷰어 요소를 구비하는 것으로 더 정의된다.
또한, 프로그램적 정의 예에서, 네스팅이 달성된다. 도 14a 및 14b의 정의는 도 10b에 도시된 배열로 결국 나타난다. 그러므로, 조합 사용자 인터페이스 요소(예를 들면, 콤보 박스)는 다양한 사용자 인터페이스 요소의 조립을 통해 정의되고, 이들 각각은 선택적으로 노출가능한 노드에 대한 예비(provisions)를 가질 수 있다. 조합 사용자 인터페이스 요소로 조립될 때, 네스팅은 선택적으로 노출가능한 노드들이 인캡슐레이션된 사용자 인터페이스 요소 내에서 정의되는 방법에 관한세부내용이 외부 레벨(예를 들면, 인캡슐레이팅) 사용자 인터페이스 요소를 동작시킬 때 투명하게 유지되도록 핸들링될 수 있다.
콤보 박스 정의의 마크업 유발 예
사용자 인터페이스 요소의 정의(예를 들면, 도 13 및 14에 정의된 것)는 유발되어, 단순화된 뷰에서 노출되지 않은 채로 남아있는 임의의 선택적으로 노출가능한 노드를 포함하는 사용자 인터페이스 요소의 표현을 생성한다. 그러한 유발은 다양한 방식으로(예를 들면, 마크업 언어를 통하거나 프로그램적으로) 달성될 수 있다.
정의(예를 들면, 도 13 및 14에 도시된 것)의 유발 예(1500)는 XML로 저작되어 도 15에 도시되어 있다. 참조부호 1510에서 태그"<COMBO BOX>"를 포함함으로써, 유발은 콤보 박스의 계층적 표현의 단순화된 뷰를 용이하게 하는 콤보 박스의 이전에 생성된 정의를 이용한다. 예에 도시된 바와 같이, 유발 부분에 대한 유일한 다른 노력은 콤보 박스의 전체 계층적 표현을 알지 않고 리스트 아이템(1520)을 지정하는 것이다. 그러므로, 도 15의 유발 구조는 콤보 박스가 실제 복수의 다른 사용자 인터페이스 요소들로 구성될 지라도 콤보 박스의 계층적 표현의 단순화된 뷰에 대응할 수 있다. 이와 같이, 조합 제어를 생성하는 사용자 인터페이스 요소의 재이용이 조장된다. 예에서, 단순화된 뷰는 유발이 XML로 수행된다는 사실에 의해 시스템에 의해 이용될 수 있다.
콤보 박스 정의의 프로그램적 유발 예
마찬가지로, 콤보 박스를 유발하는 방식은 도 16에 도시된 바와 같은 정의의프로그램적 유발(1600)에까지 미친다. 예는 다양한 프로그래밍 언어(예를 들면, 자바 및 C++)로 구현될 수 있다. 참조부호 1610에서 코드 라인 "COMBOBOX=NEW COMBOBOX ()"은 이전에 생성된 정의를 유발한다. 마크업 버전에 대해 상기 설명한 장점들이 또한 프로그램적 유발에도 적용된다. 단순화된 뷰 대신에 전체 뷰에 액세스하기 위해, 다른 언어(예를 들면, "COMBOBO.FULLVIEW.ELEMENTS" 등)가 이용될 수 있다.
단순화된 뷰에 대해 오퍼레이션을 수행하기 위한 방법 예
일단 소프트웨어 또는 마크업이 정의된 사용자 인터페이스 요소를 유발하면, 단순화된 뷰를 가지는 사용자 인터페이스 요소의 계층적 표현이 생성되고, 오퍼레이션들에 대해 가용하다. 오퍼레이션들은 자식들을 부가하고, 자식들을 제거하며, 자식들을 열거하고, 단순화된 뷰에서 노드의 부모 노드가 어느 것인지를 질문하는 것과, 사용자 인터페이스 요소의 계층적 표현를 네비게이션하기 위한 다양한 오퍼레이션들을 포함한다. 이들 오퍼레이션의 결과는 이들이 계층적 표현의 단순화된 뷰 또는 전체 뷰를 이용하여 수행되는지 여부에 따라 달라진다.
다양한 실시예에서, 프로그램은 단순화된 뷰가 요구되는지 여부를 지정할 수 있다. 또는, 다른 시나리오에서, 단순화된 뷰가 요구된다는 컨텍스트로부터 가정될 수 있다.
단순화된 뷰에서 자식들을 부가하거나 제거하는 것과 같은 일부 오퍼레이션에 대해, 사용자 인터페이스 요소의 계층적 표현의 정의는 오퍼레이션이 전체 뷰에 대해 수행될 방법을 결정하는데 이용될 수도 있다.
도 17은 단순화된 뷰에 대해 오퍼레이션을 수행하는, 즉 사용자 인터페이스 요소(예를 들면, 그러한 요소를 나타내는 노드)에 자식을 부가하기 위한 방법 예(1700)를 도시하고 있다. 단계 1710에서, 사용자 인터페이스 요소의 계층적 표현의 단순화된 뷰 상의 노드에 자식들을 부가하는 표시가 수신된다. 단계 1720에서, 사용자 인터페이스의 계층적 표현이 정의된 방법에 기초하여, 선택적으로 노출가능한 노드들이 스킵되고, 단계 1730에서 새로운 자식 노드가 정의에 따른 적절한 노드(예를 들면, 'TRUE'로 설정된 "인캡슐레이팅 컨테이너" 속성을 가지는 노드)에 부가된다.
도 17에 예시된 프로세스는 도 18에 도시된 바와 같이 이용되어, 새로운 자식(1850)을 콤보 박스의 계층적 표현의 단순화된 뷰에 부가한다. 일단 콤보 박스의 정의가 유발되면, 새로운 자식(1850D)과 같은 새로운 자식들이 도 19에 도시된 바와 같이 콤보 박스의 계층적 표현의 단순화된 뷰에 부가될 수 있다. 계층적 표현의 정의를 이용하면, 도 19의 단순화된 뷰에서 새로운 자식(1850D)의 부가는 도 18에 도시된 바와 같이 계층적 표현의 전체 뷰에서 적절한 위치로의 부가로서 번역될 것이다.
오퍼레이션을 수행하기 위한 상세 예
콤보 박스 사용자 인터페이스 요소의 계층적 표현 예(1800)가 도 18에 도시되어 있다. 자식을 콤보 박스(예를 들면, 노드(1005))에 부가하라는 요구가 수신된 경우, "인캡슐레이팅 부모" 속성이 노드(1005) 상에서 검출되고, 횡단(traversal)은 "인캡슐레이팅 컨테이너" 속성을 가지는 연관 자손 노드로 진행한다. 예에서, 횡단은 포인터(1855)를 통해 달성될 수 있다. "인캡슐레이팅 부모" 속성이 노드(1025) 상에서 검출되므로, 횡단은 "인캡슐레이팅 컨테이너" 속성을 가지는 연관 자손 노드로 연속해서 진행한다. 예에서, 횡단은 노드(1045)로의 포인터(1860)를 통해 달성될 수 있다. 그리고 나서, 새로운 자식이 자식 노드(1850D)로서 노드(1045)에 부가된다.
원한다면, 직접 포인터(1880)는 자식들이 부가되어야 하는 적절한 노드로 더 직접적으로 네비게이션하도록 구현될 수 있다. 추가적으로, 주 노드로의 포인터(1885)가 포함될 수 있다.
새로운 자식이 도 19에 도시된 바와 같이 단순화된 뷰에 부가된 경우에, 유발 프로그램에 새로운 자식(1850D)이 콤보 박스 주 노드(1905)의 자식으로 부가되는 것처럼 보일 것이다. 그러나, 오퍼레이션은 실제 도 18의 전체 뷰에서(예를 들면, 그리드 패널 노드(1045) 하에서) 새로운 자식(1850D)의 부가로서 구현된다(예를 들면, 사용자 인터페이스 서비스에 의함).
네스팅은 다양한 방식으로 핸들링될 수 있다. 예를 들면, 포인터는 인캡슐레이션의 중간 레벨을 스킵하도록 도시된 바와 같이 이용될 수 있다. 또는, 네스팅의 레벨은 계층적 표현을 횡단하면서 추적될 수 있다. 레벨에 따라, 어느 노드가 스킵될지가 결정될 수 있다. 횡단은 또한 계층의 바닥으로부터 상부까지 진행할 수 있다(예를 들면, 그 부모를 나열하는 자식 노드에 의한 요구에서).
선택적으로 노출가능한 노드의 다른 표현
선택적으로 노출가능한 노드의 다른 표현(2000)이 도 20a에 도시되어 있다.예에서, 특정 노드(2020)는 표현의 전체 뷰에서 선택적으로 노출가능한 것으로 특히 지정된다.
대응하는 단순화된 뷰(2050)는 도 20b에 도시되어 있다. 도시된 바와 같이, 특정 노드(2020)의 자식들(2030B, 2030C)은 부모 노드(2010)의 자식들(예를 들면, 노드(2030A))의 형제들인 것으로 간주된다. 환언하면, 특정 노드(2020)의 자식들(2030B, 2030C)은 특정 노드(2020)의 형제들(예를 들면, 전체 뷰에서 형제(2030A))의 형제인 것으로 간주된다.
그러한 구현은 다양한 방식으로 달성될 수 있다. 하나의 예에서, 특별한 속성(예를 들면, "숨겨진 컨테이너")은 단순화된 뷰가 요구되는 경우에 노출되지 않는 특정 노드(2020)에 대해 참인 것으로 설정된다.
다른 표현의 구현 예
일부 사용자 인터페이스 요소 시나리오에서, 특정 위치(예를 들면, 데이터베이스)로부터 노드를 생성하는 것이 바람직할 수 있다. 예를 들면, 도 21은 리스트 박스 예(2100)를 예시한다. 데이터베이스 또는 다른 데이터 소스로부터 하나 이상의 리스트 아이템(2110)을 생성하는 것이 바람직할 수 있다.
데이터베이스로부터 내용을 생성하는 그러한 한가지 방법은 사용자 인터페이스 요소의 계층적 표현 내에서 특별 요소를 포함하는 것이다. 특별 요소는 단순화된 뷰에 대해 노출되지 않은 채로 유지되지만, 여전히 내용을 생성하고 전체 뷰에 존재하도록 동작한다. 원한다면, 특별 요소는 데이터 소스에 바인딩되어 내용을 리스트 아이템(2110)과 같이, 사용자 인터페이스 요소에 자동으로 삽입할 수 있다.
그러한 하나의 특별한 요소는 "리피터(repeater)"라 지칭된다. 도 22는 리스트 아이템(2230, 2240)과 같은 리스트 아이템의 일부를 자동적으로 생성하기 위한 계층적 표현에 삽입되는 리피터 노드(2220)을 포함하는 리스트 박스(예를 들면, 도 21에 도시됨)의 계층적 표현(2200)을 예시하고 있다.
리피터를 이용하면, 사용자 인터페이스 개발자는 리피터를 기록의 집합(예를 들면, 데이터베이스로부터)에 바인딩함으로써 자동으로 내용을 생성할 수 있다. 또한, 템플레이트 컨테이너(2221, 2222)는 리피터(2220)와 연관되어, 리피터의 특별 자식에 대한 내용을 생성하고 있는 데이터베이스에서 특정 기록에 연관된 정보를 포함할 수 있다. 본 예에서, 리스트 아이템(2230, 2240)은 데이터 소스의 기록에 바인딩되어 텍스트 컨텍스트(2235 및 2245, 예를 들면, 이름, 위치 또는 기록의 다른 필드)를 생성한다. 도 22가 템플레이트 컨테이너(2221, 2222) 각각과 연관된 단일 자식 요소(리스트 아이템(2235 및 2240))만을 도시하고 있지만, 다중 자식들 요소들(예를 들면, 전화번호, 이름 및 사람의 화상)을 가질 수 있다.
리스트 박스의 계층적 표현(2220)의 전체 뷰에서, 리피터(2220)는 리스트 박스 노드(2205) 및 플로우 패널 노드(2210)의 자식 노드들 중 하나인 것처럼 나타난다. 템플레이트 컨테이너(2221 및 2222)는 리피터(2220)의 자식들로서 나타난다.
그러나, 리스트 박스의 정의를 유발하는 프로그램은 리피터를 플로우 패널 노드(2210)의 자식으로서 볼 것으로 기대하지 않는다. 또한, 리스트 박스의 정의는 플로우 패널(2210)의 자식으로서 리스트 아이템 이외의 것을 전혀 받아들이지 않도록 설정된 규칙을 가질 수 있다. 그러므로, 리피터(2220) 및 템플레이트 컨테이너(2221, 2222)는 단순화된 뷰가 이용되는 경우에 리스트 박스의 계층적 표현 내에 노출되기를(예를 들면, 숨겨지기를) 원하지 않는다.
리스트 박스의 계층적 표현의 단순화된 뷰에서 리피터(2220) 및 템플레이트 컨테이너(2221, 2220)를 노출시키지 않음으로써, 리스트 아이템(2230, 2240)은 그 부모, 리피터(2220)의 형제들의 형제들(예를 들면, 리스트 아이템 노드(2250)의 형제들)로서 효율적으로 조성된다. 그러한 단순화된 뷰(2300)는 도 23에 도시되어 있고, 여기에서 도 22의 리피터(2220)는 노출되지 않으며, 리스트 아이템(2230, 2240 및 2250)은 도 23에서 형제들로서 나타난다.
다른 표현예의 생성
선택적으로 노출가능한 노드(예를 들면, 리피터)의 다른 표현을 생성하기 위한 방법 예(2400)가 도 24에 도시되어 있다. 단계 2410에서, 계층적 표현을 가지는 사용자 인터페이스 요소가 선택된다. 단계 2430에서, 계층적 표현의 적어도 하나의 노드가 선택적으로 노출가능한(예를 들면, 계층적 표현의 단순화된 뷰에서 노출되지 않음) 것으로 지정된다.
예를 들면, 그러한 지정은 지정된 노드의 "숨겨진 컨테이너" 속성을 "TRUE"로 설정함으로써 달성될 수 있다. 리피터의 클래스 구축자는 그러한 속성을 설정할 수 있으므로, 리피터가 예를 들때마다 속성이 설정된다.
리피터는 원하는대로 활성화될 수 있다(예를 들면, 리피터를 가지는 것으로 정의된 사용자 인터페이스 요소의 유발시 자동으로). 그러나, 유발 프로그램은 노출되지 않은 리피터를 고려할 필요는 없으며, 이것은 자동적으로 리스트 아이템을거주시킨다. 유발 프로그램에 관련되는 한, 사용자 인터페이스 요소의 정의를 단지 유발하는 것뿐이고, 사용자 인터페이스 요소는 리피터를 가지고 있는 것으로 정의되는 것을 알지 못한다.
또는, 유발 프로그램이 리피터를 인식하고 있는 경우, 리피터와 연관된 리스트 아이템을 처리하는 소프트웨어 또는 마크업은 리피터와 관련된 복잡성에 익숙해질 필요는 없다. 단순화된 뷰에서, 사용자 인터페이스 요소는 단지 리피터없이 리스트 아이템을 가지고 있는 것으로 나타난다.
사용자 인터페이스 요소에서 리피터의 마크업 유발 예
사용자 인터페이스 요소는 다양한 방식으로 리피터를 유발할 수 있다. 그러한 한가지 방법은 마크업 언어(예를 들면, XML 또는 HTML)를 통해서이다. 도 25는 XML을 이용하여 리피터 노드를 포함하는 리스트 박스 예(2500)를 예시하고 있다. 이러한 리피터의 유발은 리피터 클래스(예를 들면, 적절한 구축자를 포함함)의 이전 정의에 좌우되고, 따라서 리피터의 "숨겨진 컨테이너" 속성을 "TRUE"로 지정할 필요가 없다.
사용자 인터페이스 요소에서 리피터의 프로그램적 유발 예
리피터는 사용자 인터페이스 요소에 이용하기 위해 프로그램적으로(예를 들면, C++이나 자바와 같은 프로그래밍 언어로) 유발될 수 있다. 도 26은 리스트 박스에 대한 리피터의 프로그램적 유발 예를 가지는 코드(2600)를 예시하고 있다.
사용자 인터페이스 요소에서 리피터의 다른 유발 예
도 27은 사용자 인터페이스 요소에서 리피터의 다른 마크업 유발(2710)을 포함한 마크업 언어를 예시한다. 도시된 예는 템플레이트 컨테이너(예를 들면, 템 플레이트 컨테이너(2221 및 2222))에 대한 복수(예를 들면, 2개)의 자식 노드, 즉 화상에 대한 하나 및 고객 이름에 대한 하나로 나타나게 된다.
임의의 예들에서, 리피터를 유발시킴으로써, 유발하는 사용자 또는 프로세스는 리스트 박스를 완성하는데 참조부호 2710에서 단지 하나의 리스트 아이템(예를 들면, 소스를 나타냄)만을 정의하는 것이 필요하고, 결과적인 리스트 아이템들은 유발(예를 들면, 소스를 참조하여)시 자동적으로 리피터에 의해 생성된다.
도 28은 리피터 특징을 이용하지 않고 다수의 리스트 아이템을 가지는 리스트 박스의 정의 예를 도시하고 있다. 따라서, 리스트 아이템(2810)은 마크업에서 명시적으로 리스트되고, 대응하는 데이터베이스가 갱신될 때 업데이트되지 않는다. 그러므로, 사용자 인터페이스 요소 내의 리피터의 가용성(예를 들면, 데이터 소스에 바인딩하는 능력을 포함함)은 많거나 다이나믹하게 업데이트되는 선택을 가지는 사용자 인터페이스 요소를 제공할 때 더 효율적인 코드나 마크업으로 나타날 수 있다.
다른 표현을 통한 오퍼레이션의 수행
단순화된 뷰를 통해 기술된 표현에 대해 오퍼레이션이 수행될 때, "숨겨진 컨테이너"로서 지정된 적절하게 지정된 노드(예를 들면, 리피터 노드)가 노출되지 않는다. 도 22를 참조하면, 리스트 아이템(2230 및 2240)은 임의의 다른 리스트 아이템으로서 기능하고, 렌더링된 리스트 박스의 사용자에 의해 선택될 수 있다.
또한, 단순화된 뷰를 통한 리스트 아이템(2230)의 부모에 대한 요구는 2230의 부모 노드가 플로우 패널 노드(2210, 리피터(2220)나 템플레이트(2221)가 아님)인 것을 나타냄으로써 답변된다. 그러므로, 노드(2220 및 2221, 예를 들면, "숨겨진 컨테이너"로서 지정됨)는 스킵된다(예를 들면, 노출되지 않는다). 다르게는, 플로우 패널 및 스크롤 뷰어가 선택적으로 노출가능한 것으로 지정되면, 리스트 아이템(2230)의 부모는 단순화된 뷰에서 리스트 박스(2205)가 될 것이다.
원하는 경우에 일부 기능은 금지될 수 있다. 예를 들면, 리피터(2220)에 의해 거주되었던 리스트 아이템(2230 및 2240)에 부가하거나 삭제하는 것이 금지될 수 있다.
또 다른 표현의 구현 예
선택적으로 노출가능한 노드를 가지는 사용자 인터페이스 요소의 또 다른 표현 예는 지정된 노드만이 단순화된 뷰에서 노출되도록 노드를 지정함으로써 달성될 수 있다. 예를 들면, 노드의 자손들(예를 들면, 모든 자손들)은 선택적으로 노출가능한 것으로 간주되고, 단순화된 뷰에 도시되지 않는다. 그러한 표현은 단순화된 뷰에서 사용자 인터페이스 요소에 대해 노출된 단지 하나의 노드를 가질 것이다.
예를 들면, 도 20a에 도시된 사용자 인터페이스 요소의 표현에서, 노드(2010)가 그렇제 지정되었던 경우에, 자손들(예를 들면, 노드(2020, 2030A, 2030B, 및 2030C)은 선택적으로 노출가능한 것으로 지정된다. 결과적인 표현은 단순화된 뷰에서 노출된 노드(2010, 예를 들면 주 노드)만을 가질 것이다.
원하는 경우에, 자식을 그러한 단순화된 뷰에 부가하는 오퍼레이션은 노드가단순화된 뷰 자식 노드를 지원하지 않은 것으로 정의되므로 에러로 나타나게 된다. 그러한 단순화된 뷰를 이용하여 열거 자식들 오퍼레이션을 수행하는 것은 동일한 이유로 에러일 수 있고, 또는 빈 셋트가 제공될 수 있다.
그러한 표현은 특정 사용자에게 거의 관심이 없는 이들 사용자 인터페이스의 전체 뷰의 세부사항을 차단하는데 유용할 수 있다. 상기 기재된 표현은 다수의 방식으로 달성될 수 있다. 예를 들면, 자손들이 선택적으로 노출가능하다는 것을 나타내는 단일 속성이 설정될 수 있다. "인캡슐레이팅 부모" 컨테이너 속성은 TRUE로 설정되어 결과적으로 그러한 배열로 나타나게 된다(예를 들면, TRUE로 설정된 "인캡슐레이팅 컨테이너"와 대응하는 노드가 없는 경우).
화상의 표현 예
기술들의 다른 구현 예는 화상이 가용하지 않은 경우에 제공되는 텍스트를 나타내는 텍스트로 선택적으로 노출가능한 자식을 가지는 것으로 화상의 내부 표현을 구현하는 것이다. 주 노드는 화상을 포함할 수 있고, 선택적으로 노출가능한 자식은 대응하는 텍스트를 표현할 수 있다. 이와 같이, 단순화된 뷰는 선택적으로 노출가능한 자식을 알지 않고서도 조절될 수 있다.
노드 속성을 결정하는 방법 예
노드가 어느 속성값을 취할(예를 들면, 인계할) 지를 결정할 때, 선택적으로 노출가능한 노드들이 고려될 수 있다. 원하는 경우, 그러한 노드들은 무시될 수 있고(예를 들면, 주 노드로부터 취해진 속성들), 그러한 노드들은 취해질 속성값을 결정할 수 있으며, 또는 선택적으로 노출가능한 노드들은 주 노드와 조합하여 작용하여 어느 속성 값이 취해질지를 결정한다. 그러한 결정은 예를 들면 노드를 표현에 부가할 때 관련될 수 있다.
계층에서 노드는 속성값을 통해 다른 노드에 대한 원하는 속성을 나타낼 수 있다(예를 들면, 스타일 시트를 통해 설정됨). 예를 들면, 노드는 자식들의 폰트 속성이 "볼드"인 것으로 지정할 수 있다.
예를 들면, 도 10a에서, 주 노드(1005)의 자식들의 폰트 속성이 '볼드'인 것으로 속성 규칙이 가르키지만, 리스트 박스 노드(1025)와 연관된 속성 규칙이 '이탤릭'폰트 속성을 가질 것을 자식들에게 요구한다면, 1050A와 같은 리스트 아이템의 속성이 무엇이 될 지에 관해 모호하다.
하나의 구현에서, 선택적으로 노출가능하지 않은 자식 노드의 유전가능한 속성이 단순화된 뷰에서 가장 근접한 부모로부터 유전된다. 상기 예에서, 단순화된 뷰가 도 11에 도시된 바와 같은 경우에, 리스트 아이템(1050A, 1050B, 및 1050C)에 대한 단순화된 뷰에서 가장 근접한 부모는 주 노드(1105)이다. 그러므로, 본 실시예에서, 콤보 박스의 폰트 속성은 리스트 아이템에 의해 취해질 것이다.
다른 구현에서, 단순화된 뷰에서 가장 근접한 부모는 임의의 선택적으로 노출가능한 자식 노드의 임의의 속성 규칙이 선택적으로 노출가능하지 않은 자식들 노드에 적용될지 여부를 질의하기 위한 규칙을 포함할 수 있다. 예를 들면, 속성 규칙을 적용하는 프로세스는 리스트 박스에 연관된 속성 규칙이 콤보 박스와 연관된 속성 규칙 대신에 리스트 아이템에 적용될 필요가 있는지 여부를 질의할 수도 있다.
또 다른 구현에서, 상기 설명한 바와 같이 숨겨진 컨테이너의 자식들 노드의 속성이 숨겨진 컨테이너 자체에 의해 설정된 속성 규칙으로부터 결정될 수 있고, 계층적 표현의 단순화된 뷰에서 즉각적인 부모 노드가 아니다.
원하는 경우에, 유연한 속성 결정이 지원될 수 있는 구현의 조합이 제공될 수 있다.
조합 사용자 인터페이스 요소를 용이하게 함
본 명세서에 기재된 다양한 기술들은 조합 사용자 인터페이스 요소를 정의하고, 생성하며 상호작용하는 것을 용이하게 하는데 이용될 수 있다. 예를 들면, 유발은 우연히 조합 사용자 인터페이스일 수 있는 특정 사용자 인터페이스 요소의 단순한 지시일 수 있다. 유발은 결국은 사용자 인터페이스 요소를 나타내는 복수의 노드이 생성으로 나타나게 될 수 있다.
그러나, 조합 사용자 인터페이스 요소를 정의하는 프로그래머는 다양한 노드들이 선택적으로 노출가능하다는 것을 나타내도록 조처를 취할 수 있다. 그러므로, 정의를 유발하는 프로그래머는 그러한 노드들이 노출되지 않는 단순화된 뷰(또는 디폴트로 그러한 뷰가 제공됨)에 프로그래밍하도록 선택될 수 있다. 그러한 경우에, 정의를 유발하는 프로그래머는 조합 제어가 실제로 복수의 노드들로 구성되어 있는지를 인식할 필요가 없다.
또한, 추가 제어를 정의하는 것들은 그 제어 정의 내에 조합 제어를 네스팅할 수 있다. 어느 노드가 선택적으로 노출가능하다는 것을 나타내는 것은 네스팅이 용이하게 달성될 수 있도록 보존될 수 있다. 이와 같이, 제1 조합 제어는 제2조합 제어를 포함하는 것으로 정의될 수 있고, 단순화된 뷰는 정확하게 제공된다(예를 들면, 제2 조합 제어에 대해 선택적으로 노출가능한 것으로 지정된 노드들은 제2 조합 제어에 대해 선택적으로 노출가능하게 될 것이다). 원하는 경우, 제1 조합 제어의 주 노드는 선택적으로 노출가능한 것으로 표시될 수 있다.
네스팅을 예시하는데 도움이 되는 예는 도 14a 및 14b에 도시된 콤보 박스의 프로그램적 정의를 포함한다. 예에서, 콤보 박스는 리스트 박스로 구성된다. 리스트 박스 정의는 리스트 박스 내에서 선택적으로 노출가능한 노드들을 달성하는 설정 속성을 포함한다. 또한, 리스트 박스 자체는 스크롤 뷰어의 정의를 유발하고, 이것은 자체적으로 속성을 설정하여 스크롤 뷰 내에서 선택적으로 노출가능한 노드를 달성한다. 그러나, 콤보 박스에 액세스하는 소프트웨어나 마크업에, 네스팅은 리스트 박스의 내부 상세사항(예를 들면, 그 내부의 선택적으로 노출가능한 노드를 포함함)이 나타나지 않도록 구현될 수 있다(예를 들면, 콤보 박스의 단순화된 뷰를 액세스할 때).
한편, 리스트 박스에 대해 수행된 오퍼레이션은 여전히 그 내부의 노드들은 선택적으로 노출가능하다는 사실을 이용할 수 있다(예를 들면, 단순화된 뷰에서 리스트 박스에 대해 오퍼레이션을 수행할 때). 그러므로, 선택적인 노출가능성은 네스팅가능하고 또한 상대적일 수 있다.
다른 방법
예시된 실시예를 참조하여 본 발명의 원리들을 기재하고 설명했지만, 예시된 실시예들은 그러한 원리를 벗어나지 않고서도 배열 및 세부사항에서 변형될 수 있다든 것은 자명하다.
예를 들면, 다양한 사용자 인터페이스 요소들이 함께 조합되고 네스팅되어 더 복잡한 표현을 제공할 수 있다. 사용자 인터페이스 요소는 인터페이스의 일부로서 제공도되거나 문서(예를 들면, 웹 페이지 또는 워드 프로세싱 문서)내에 내장될 수 있다. 여기에 기재된 기술들은 또한 계층적 형태로 표현될 수 있는 임의의 다른 문서나 파일에도 적용될 수 있다.
상기 특정 속성 이름이 이용되지만, 다른 속성 방식이 계층적 표현에서 노드를 선택적으로 노출하는데 이용될 수 있다.
상기 설명한 프로그램, 프로세스, 또는 방법들은 임의의 특정 타입의 컴퓨터 장치에 연관되거나 한정되지 않는다는 것은 자명하다. 다양한 타입의 일반 목적 또는 전용 컴퓨터 장치가 이용될 수 있고, 여기에 기재된 사상에 따라 오퍼레이션을 수행할 수 있다. 여기에 기재된 액션은 그러한 액션을 수행하기 위한 컴퓨터 실행가능 명령을 포함하는 컴퓨터로 판독가능한 매체에 의해 달성될 수 있다. 소프트웨어로 도시된 예시된 실시예의 요소들은 하드웨어로 구현될 수 있고, 그 반대로도 가능하다. 본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 고려하면, 상세 설명된 실시예는 단지 예시된 것으로서 본 발명의 범주를 제한하는 것으로 받아들여서는 안 된다. 오히려, 이하의 특허 청구의 범위 및 그 등가의 범주와 사상 내에 드는 모든 실시예를 본 발명의 권리 범위로서 청구한다.

Claims (37)

  1. 사용자 인터페이스 요소의 계층적 표현에 대한 오퍼레이션을 수행하기 위한 요구를 처리하는 방법에 있어서,
    상기 오퍼레이션을 수행하는 요구를 수신하는 단계; 및
    상기 계층적 표현의 단순화된 뷰에 대해 상기 오퍼레이션을 수행하는 단계
    를 포함하는 방법.
  2. 제1항에 따른 방법을 수행하기 위한 컴퓨터로 실행가능한 명령을 포함하는 컴퓨터로 판독가능한 매체.
  3. 제1항에 있어서,
    상기 계층적 표현은 조합 사용자 인터페이스 요소를 형성하는 복수의 노드들을 포함하고, 상기 노드의 적절한 서브 셋트는 상기 조합 사용자 인터페이스 요소 내에 사용자 인터페이스 요소를 형성하는 방법.
  4. 제1항에 있어서,
    상기 계층적 표현에서 적어도 하나의 노드는 선택적으로 노출가능한 것으로 지정되고, 상기 지정된 노드는 상기 단순화된 뷰에서 노출되지 않는 방법.
  5. 제1항에 있어서,
    상기 오퍼레이션은 상기 단순화된 뷰에서 선택적으로 노출가능한 것으로서 지정된 상기 계층내 노드들을 스킵함으로써 수행되는 방법.
  6. 제5항에 있어서,
    노드들은 상기 계층 내의 노드에 속성을 설정함으로써 상기 계층에서 선택적으로 노출가능한 것으로 지정되는 방법.
  7. 제1항에 있어서,
    상기 오퍼레이션은 상기 표현에서 노드의 자식 노드들(child nodes)을 나열하는 요구이고, 상기 오퍼레이션은 상기 단순화된 뷰에 대해 수행됨으로써, 상기 노드의 적어도 하나의 근접(immediate) 자식이 상기 단순화된 뷰에서 노출되지 않는 방법.
  8. 제1항에 있어서,
    상기 오퍼레이션은 상기 표현에서 노드의 부모 노드를 제공하는 요구이고, 상기 오퍼레이션은 상기 단순화된 뷰에 대해 수행됨으로써, 상기 노드의 근접 부모는 상기 단순화된 뷰에서 노출되지 않는 방법.
  9. 제1항에 있어서,
    상기 오퍼레이션은 하나 이상의 자식 노드들을 상기 표현내 노드에 부가하는 요구이고, 상기 오퍼레이션은 상기 단순화된 뷰에 대해 수행됨으로써, 상기 자식 노드들이 상기 노드의 자손에 부가되는 방법.
  10. 제1항에 있어서,
    상기 오퍼레이션은 노드에 대한 속성을 제공하는 요구이고,
    상기 노드의 적어도 하나의 선택적으로 노출된 조상 노드의 속성이 무시되는 방법.
  11. 제1항에 있어서,
    상기 오퍼레이션은 노드에 대한 속성을 제공하는 요구이고,
    상기 노드의 적어도 하나의 선택적으로 노출된 조상 노드의 속성은 상기 속성에 기초하여 선택적으로 무시되거나 간주되는 방법.
  12. 제1항에 있어서,
    상기 오퍼레이션은 노드에 대한 속성을 제공하는 요구이고,
    상기 노드의 적어도 하나의 선택적으로 노출된 조상 노드의 속성 규칙들은 무시되는 방법.
  13. 제1항에 있어서,
    상기 오퍼레이션은 노드에 대한 속성을 제공하는 요구이고,
    상기 노드의 적어도 하나의 선택적으로 노출된 조상 노드의 규칙들은 상기 속성에 기초하여 선택적으로 무시되거나 간주되는 방법.
  14. 사용자 인터페이스 요소를 표현하는 방법에 있어서,
    복수의 노드들을 구비하는 상기 사용자 인터페이스 요소의 계층적 표현을 생성하는 단계; 및
    상기 표현에서 적어도 하나의 노드를 선택적으로 노출가능한 것으로 지정하는 단계
    를 포함하는 사용자 인터페이스 요소 표현 방법.
  15. 제14항에 있어서,
    상기 노드는 상기 노드의 조상에 대한 속성을 설정함으로써 선택적으로 노출가능한 것으로 지정되는 사용자 인터페이스 요소 표현 방법.
  16. 제15항에 있어서,
    상기 노드는 상기 노드의 부모에 대한 속성을 설정함으로써 선택적으로 노출가능한 것으로 지정되는 사용자 인터페이스 요소 표현 방법.
  17. 제14항에 있어서,
    상기 선택적으로 노출가능한 노드들 중 적어도 하나는 조상 노드의 단순화된 뷰 자식을 수신하는 노드로서 지정되는 사용자 인터페이스 요소 표현 방법.
  18. 제17항에 있어서,
    상기 선택적으로 노출가능한 노드는 상기 선택적으로 노출가능한 노드에 대해 속성을 설정함으로써 지정되는 사용자 인터페이스 요소 표현 방법.
  19. 제14항에 있어서,
    상기 선택적으로 노출가능한 노드는 조합 사용자 인터페이스 요소 내에 네스팅(nesting)된 사용자 인터페이스 요소를 포함하는 복수의 노드들 중 하나인 사용자 인터페이스 요소 표현 방법.
  20. 제14항에 있어서,
    상기 선택적으로 노출가능한 노드는 사용자 인터페이스 요소를 나타내는 복수의 노드들 중 하나이고,
    상기 사용자 인터페이스 요소를 표현하는 노드들은 상기 사용자 인터페이스 요소의 정의 내에서 선택적으로 노출가능한 것으로 정의되지 않은 적어도 하나의 노드를 포함하며,
    상기 사용자 인터페이스 요소를 표현하는 노드들은 조합 사용자 인터페이스 요소 내에 네스팅되고,
    상기 조합 사용자 인터페이스 요소는 상기 사용자 인터페이스 요소를 표현하는 노드들이 선택적으로 노출가능한 것으로 지정된다는 표시를 포함하며,
    상기 사용자 인터페이스 요소를 표현하는 노드들 중 하나를 통해 참조되는 경우에 선택적으로 노출가능하지 않은 것으로 지정된 상기 노드를 선택적으로 노출가능하지 않은 것으로 다루는 단계; 및
    선택적으로 노출가능하지 않은 것으로 지정된 상기 노드를 선택적으로 노출가능한 것으로 다르게 다루는 단계
    를 포함하는 사용자 인터페이스 요소 표현 방법.
  21. 제14항에 있어서,
    선택적으로 노출가능한 것으로 지정된 상기 노드는 상기 계층적 표현에서 상기 노드 이하의 복수의 노드를 생성하기 위한 데이터를 제공하도록 작용가능한 사용자 인터페이스 요소 표현 방법.
  22. 제21항에 있어서,
    상기 데이터는 데이터베이스에 기인하는 사용자 인터페이스 요소 표현 방법.
  23. 제21항에 있어서,
    상기 노드 이하의 상기 복수의 노드들은 리스트 아이템인 사용자 인터페이스 요소 표현 방법.
  24. 조합 사용자 인터페이스 요소를 정의하는 방법에 있어서,
    조합 사용자 인터페이스 정의에서 사용자 인터페이스 요소에 대한 복수의 정의를 참조하는 단계; 및
    상기 조합 사용자 인터페이스 정의에서, 상기 사용자 인터페이스 요소에 대한 적어도 하나의 노드를 선택적으로 노출가능한 것으로 지정하는 단계
    를 포함하는 조합 사용자 인터페이스 요소 정의 방법.
  25. 제24항에 있어서,
    사용자 인터페이스 요소 자체에 대한 정의들 중 적어도 하나는 그 내부의 노드들 중 하나를 선택적으로 노출가능한 것으로 지정하는 조합 사용자 인터페이스 요소 정의 방법.
  26. 제24항에 있어서,
    상기 조합 사용자 인터페이스 요소는 콤보 박스(combo box)를 포함하는 조합 사용자 인터페이스 요소 정의 방법.
  27. 제24항에 있어서,
    노드들은, 상기 사용자 인터페이스 요소에 대한 노드; 상기 사용자 인터페이스 요소에 대한 부모 노드; 및 상기 사용자 인터페이스 요소에 대한 조상 노드 중하나 이상의 속성을 적절하게 지정함으로써 선택적으로 노출가능한 것으로 지정되는 조합 사용자 인터페이스 요소 정의 방법.
  28. 제24항의 상기 조합 사용자 인터페이스 정의를 유발하는 단계; 및
    상기 조합 사용자 인터페이스 요소의 표현의 단순화된 뷰를 위한 요구에 응답하여, 상기 선택적으로 노출가능한 노드 사용자 인터페이스 요소를 노출시키지 않는 단계
    를 포함하는 방법.
  29. 인캡슐레이션된 사용자 인터페이스 요소를 표현하는 데이터 구조가 인코딩된 컴퓨터로 판독가능한 매체에 있어서,
    상기 데이터 구조는,
    주 노드; 및
    상기 주 노드에 계층적으로 관련된 하나 이상의 선택적으로 노출가능한 노드들
    을 포함하는 컴퓨터로 판독가능한 매체.
  30. 제29항에 있어서,
    상기 데이터 구조는 상기 선택적으로 노출가능한 노드들이 노출되지 않은 경우에 상기 선택적으로 노출가능한 노드들 중에서 어떤 노드가 상기 주 노드의 자식을 수신할 것인지를 지정하는 것을 더 포함하는 컴퓨터로 판독가능한 매체.
  31. 사용자 인터페이스 서비스에 있어서,
    사용자 인터페이스 요소의 정의를 받아들이기 위한 코드 - 상기 정의는 단순화된 뷰의 지정을 포함함 -;
    상기 정의에 기초하여 상기 사용자 인터페이스 요소의 계층적 표현을 생성하기 위한 코드; 및
    상기 단순화된 뷰를 통해 상기 계층적 표현에 대해 오퍼레이션을 수행하기 위한 요구에 응답하는 코드
    를 포함하는 사용자 인터페이스 서비스.
  32. 제31항에 있어서,
    상기 단순화된 뷰는 적어도 하나의 선택적으로 노출가능한 노드를 포함하는 사용자 인터페이스 서비스.
  33. 사용자 인터페이스 서비스에 있어서,
    사용자 인터페이스 요소의 정의를 받아들이기 위한 수단 - 상기 정의는 단순화된 뷰의 지정을 포함함 -;
    상기 정의에 기초하여 상기 사용자 인터페이스 요소의 계층적 표현을 생성하기 위한 수단; 및
    상기 단순화된 뷰를 통해 상기 계층적 표현에 대해 오퍼레이션을 수행하기 위한 요구에 응답하는 수단
    을 포함하는 사용자 인터페이스 서비스.
  34. 사용자 인터페이스 요소-관련 오퍼레이션을 수행하기 위한 방법에 있어서,
    단순화된 뷰를 가지는 상기 사용자 인터페이스 요소의 계층적 표현의 정의를 수신하는 단계;
    상기 정의를 유발하는 단계; 및
    상기 사용자 인터페이스 요소의 상기 계층적 요소의 상기 단순화된 뷰에 대해 상기 오퍼레이션을 수행하는 단계
    를 포함하는 방법.
  35. 제34항에 있어서,
    상기 정의하는 단계는, 상기 사용자 인터페이스의 상기 계층적인 표현의 전체 뷰 내의 노드를 상기 단순화된 뷰에서 노출되지 않은 것으로 선택적으로 정의하는 단계를 포함하는 방법.
  36. 제35항에 있어서,
    상기 전체 뷰 내의 노드들은 상기 계층적 표현을 포함하는 상기 노드들의 속성들을 적절히 설정함으로써 상기 단순화된 뷰에서 노출되지 않은 것으로서 정의되는 방법.
  37. 조합 사용자 인터페이스 요소의 서브 요소를 자동적으로 생성하기 위한 방법에 있어서,
    사용자 인터페이스 요소 발생기를 상기 사용자 인터페이스 요소를 표현하는 데이터 구조로 삽입하는 단계;
    상기 사용자 인터페이스 요소 발생기를 데이터 소스와 연관시키는 단계; 및
    상기 데이터 소스를 이용하여 사용자 인터페이스 요소를 생성하는 단계
    를 포함하고,
    상기 사용자 인터페이스 요소 발생기는 상기 조합 사용자 인터페이스 요소의 계층적 표현의 단순화된 뷰에서 선택적으로 노출가능한 방법.
KR1020030014754A 2002-12-18 2003-03-10 단순화된 뷰를 가지는 사용자 인터페이스 요소 표현 KR100863125B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/323,504 US7337401B2 (en) 2002-12-18 2002-12-18 User interface element representation with simplified view
US10/323,504 2002-12-18

Publications (2)

Publication Number Publication Date
KR20040054465A true KR20040054465A (ko) 2004-06-25
KR100863125B1 KR100863125B1 (ko) 2008-10-15

Family

ID=23259480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030014754A KR100863125B1 (ko) 2002-12-18 2003-03-10 단순화된 뷰를 가지는 사용자 인터페이스 요소 표현

Country Status (14)

Country Link
US (1) US7337401B2 (ko)
EP (1) EP1435567A3 (ko)
JP (1) JP4694107B2 (ko)
KR (1) KR100863125B1 (ko)
CN (1) CN100351822C (ko)
AU (1) AU2003200656B2 (ko)
BR (1) BR0300828A (ko)
CA (1) CA2422417C (ko)
MX (1) MXPA03009824A (ko)
MY (1) MY140453A (ko)
NO (1) NO327715B1 (ko)
RU (2) RU2314559C2 (ko)
TW (1) TWI221990B (ko)
ZA (1) ZA200301626B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879983B1 (ko) * 2006-09-01 2009-01-23 삼성전자주식회사 Htc를 이용한 독립 컴포넌트 제공 시스템 및 독립컴포넌트를 이용한 이벤트 처리 방법

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949957B2 (en) * 2002-12-31 2011-05-24 International Business Machines Corporation Edit selection control
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7707255B2 (en) * 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US8799808B2 (en) 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
WO2005076130A1 (en) * 2004-02-03 2005-08-18 Corizon Limited Method and apparatus for composite user interface creation
US7913177B1 (en) * 2004-03-08 2011-03-22 Adobe Systems Incorporated System and method for managing instantiation of interface elements in rich internet applications
US7860838B2 (en) * 2004-06-04 2010-12-28 Hewlett-Packard Development Company, L.P. Dynamic hierarchical data structure tree building and state propagation using common information model
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7895531B2 (en) 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US7574677B2 (en) * 2004-09-13 2009-08-11 Sap Ag System and method for a transparent record
US7523129B1 (en) * 2004-09-15 2009-04-21 Microsoft Corporation Data-binding enhancements
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7543278B2 (en) * 2004-10-15 2009-06-02 Microsoft Corporation System and method for making a user interface element visible
US8713063B2 (en) * 2005-01-13 2014-04-29 International Business Machines Corporation Method and system for automatically hiding irrelevant parts of hierarchical structures in computer user interfaces
US7886290B2 (en) 2005-06-16 2011-02-08 Microsoft Corporation Cross version and cross product user interface
KR100774874B1 (ko) * 2005-07-30 2007-11-08 엘지전자 주식회사 플라즈마 표시장치와 그 구동방법
US8239882B2 (en) * 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8689137B2 (en) 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US9542667B2 (en) 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US20070061745A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Nested views in an electronic file system
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US8605090B2 (en) 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US20070288854A1 (en) * 2006-06-13 2007-12-13 Nokia Corporation Reusable XForms processor
KR101288970B1 (ko) * 2006-11-28 2013-07-24 삼성전자주식회사 렌더링 장치 및 방법
CN100504771C (zh) * 2007-06-08 2009-06-24 腾讯科技(深圳)有限公司 一种生成应用程序界面的方法及系统
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8782555B2 (en) 2007-08-30 2014-07-15 Microsoft Corporation Nested user interfaces for multiple displays
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
JP5896741B2 (ja) * 2008-07-23 2016-03-30 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 複数の階層レベルでの音楽メタデータの表示
WO2010107476A1 (en) * 2009-03-19 2010-09-23 Duke University Inhibiting gsnor
US8799353B2 (en) 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US8302014B2 (en) 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
CN102479212B (zh) * 2010-11-30 2016-06-22 国际商业机器公司 识别网页上键盘不可访问节点的方法以及装置
EP3040946B1 (en) * 2014-12-30 2019-11-13 Dassault Systèmes Viewpoint selection in the rendering of a set of objects
CN104503769B (zh) * 2015-01-07 2017-06-20 山东鲁能智能技术有限公司 一种基于xml配置文件的字符点阵液晶界面实现方法
US9685142B2 (en) * 2015-11-03 2017-06-20 International Business Machines Corporation Obtaining and displaying relationships between elements
CN107454478B (zh) * 2017-08-01 2020-06-16 武汉斗鱼网络科技有限公司 网络直播客户端中弹幕输入框卡顿处理方法及系统
EP3803563A1 (en) 2018-06-03 2021-04-14 Apple Inc. Framework providing application programming interface for user interfaces and animation
CN110516205B (zh) * 2019-07-19 2023-04-07 平安科技(深圳)有限公司 数据结构图的展示方法、装置、计算机设备及存储介质
CN113064971A (zh) * 2021-04-12 2021-07-02 苏州城方信息技术有限公司 一种基于交互式图结构的政策文本关系的挖掘与表达方法
CN113885766B (zh) * 2021-09-24 2024-02-09 远光软件股份有限公司 组织架构图的展示方法、装置、存储介质及终端设备
CN113849247B (zh) * 2021-09-26 2024-04-30 上海哔哩哔哩科技有限公司 直播间页面元素的显示方法、装置及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0529121A1 (en) * 1991-08-24 1993-03-03 International Business Machines Corporation Graphics display tool
JP2525546B2 (ja) * 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
EP0603425A1 (en) * 1992-12-22 1994-06-29 International Business Machines Corporation Representation of n-ary trees
US5588099A (en) 1994-09-01 1996-12-24 Microsoft Corporation Method and system for automatically resizing tables
US5649222A (en) 1995-05-08 1997-07-15 Microsoft Corporation Method for background spell checking a word processing document
US5860073A (en) 1995-07-17 1999-01-12 Microsoft Corporation Style sheets for publishing system
JPH10124280A (ja) * 1996-10-22 1998-05-15 Toshiba Corp ウィンドウシステムにおける表示方法
US6128016A (en) * 1996-12-20 2000-10-03 Nec Corporation Graphic user interface for managing a server system
JP3760580B2 (ja) * 1997-07-25 2006-03-29 富士ゼロックス株式会社 階層構造表示装置及び階層構造表示方法
US5953724A (en) * 1997-11-24 1999-09-14 Lowry Software, Incorporated Global database library data structure for hierarchical graphical listing computer software
US6029170A (en) 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6061679A (en) 1997-11-25 2000-05-09 International Business Machines Corporation Creating and searching a data structure ordered by ranges of key masks associated with the data structure
US6169984B1 (en) 1998-04-01 2001-01-02 Microsoft Corporation Global incremental type search navigation directly from printable keyboard character input
US6249284B1 (en) 1998-04-01 2001-06-19 Microsoft Corporation Directional navigation system in layout managers
US6169546B1 (en) 1998-04-01 2001-01-02 Microsoft Corporation Global viewer scrolling system
US6285366B1 (en) * 1998-06-30 2001-09-04 Sun Microsystems, Inc. Hierarchy navigation system
US6108698A (en) * 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
JP2000259303A (ja) * 1999-03-05 2000-09-22 Hitachi Information Systems Ltd データ表示装置およびデータ表示方法ならびに該方法を記録した記録媒体
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6671853B1 (en) 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US7039863B1 (en) 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
US6662342B1 (en) 1999-12-13 2003-12-09 International Business Machines Corporation Method, system, and program for providing access to objects in a document
US6775678B1 (en) 2000-04-11 2004-08-10 Microsoft Corporation Data structure and method of storing a digital document
US6883137B1 (en) 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
DE60111376T2 (de) 2000-05-16 2006-03-16 O'carroll, Garrett System und verfahren zur dokumentverarbeitung
GB2363044A (en) * 2000-05-16 2001-12-05 Ibm Method and computer system for selecting and displaying graphic objects
KR100694238B1 (ko) * 2000-09-28 2007-03-14 가부시키가이샤 리코 구조편집방법, 영상구조편집방법, 오브젝트의 내용구조관리방법, 오브젝트의 내용구조표시방법, 컨텐츠관리방법 및 기록매체
BR0107329A (pt) 2000-10-17 2002-08-27 Koninkl Philips Electronics Nv Processo de codificação para codificar um elemento de descrição de uma instância de um esquema tipo xml, processo de decodificação para decodificar um fragmento compreendendo um conteúdo e uma sequência de informação de identificação, codificador para codificar um elemento de descrição de uma instância de um esquema tipo xml, decodificador para decodificar um fragmento compreendendo um conteúdo e uma sequência de informação de identificação, sistema de transmissão, sinal para transmissão através de uma rede de transmissão, e, tabela destinada a ser usada em um codificador
US6732109B2 (en) 2001-01-31 2004-05-04 The Eon Company Method and system for transferring information between a user interface and a database over a global information network
US6910040B2 (en) 2002-04-12 2005-06-21 Microsoft Corporation System and method for XML based content management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879983B1 (ko) * 2006-09-01 2009-01-23 삼성전자주식회사 Htc를 이용한 독립 컴포넌트 제공 시스템 및 독립컴포넌트를 이용한 이벤트 처리 방법

Also Published As

Publication number Publication date
MXPA03009824A (es) 2004-06-30
NO20031008L (no) 2004-06-21
TWI221990B (en) 2004-10-11
RU2007115294A (ru) 2008-10-27
CN1508704A (zh) 2004-06-30
MY140453A (en) 2009-12-31
EP1435567A3 (en) 2008-02-13
BR0300828A (pt) 2004-08-17
KR100863125B1 (ko) 2008-10-15
CA2422417A1 (en) 2004-06-18
CN100351822C (zh) 2007-11-28
NO327715B1 (no) 2009-09-14
AU2003200656A1 (en) 2004-07-08
ZA200301626B (en) 2004-02-26
CA2422417C (en) 2011-06-28
AU2003200656B2 (en) 2010-09-16
JP2004206668A (ja) 2004-07-22
JP4694107B2 (ja) 2011-06-08
US20040122789A1 (en) 2004-06-24
EP1435567A2 (en) 2004-07-07
US7337401B2 (en) 2008-02-26
RU2383918C2 (ru) 2010-03-10
RU2314559C2 (ru) 2008-01-10
TW200411419A (en) 2004-07-01
NO20031008D0 (no) 2003-03-04

Similar Documents

Publication Publication Date Title
KR100863125B1 (ko) 단순화된 뷰를 가지는 사용자 인터페이스 요소 표현
US5933139A (en) Method and apparatus for creating help functions
US6275227B1 (en) Computer system and method for controlling the same utilizing a user interface control integrated with multiple sets of instructional material therefor
US5991534A (en) Method and apparatus for editing a software component
JP5284509B2 (ja) ページ分割されたコンテンツを表示し、それと対話するための方法およびシステム
Fujima et al. Clip, connect, clone: combining application elements to build custom interfaces for information access
RU2365978C2 (ru) Интерфейс программирования для компьютерной платформы
US8166396B2 (en) User interface rendering
JP2002189595A (ja) リフレッシュ可能なWebクエリを作成するための統合された方法
JP5697661B2 (ja) プラットフォームの拡張性フレームワーク
US6246403B1 (en) Method and apparatus for generating a graphical user interface
JP2008512794A (ja) オブジェクト処理グラフアプリケーション開発システム
JP2000003274A (ja) コンピュータ上で実行可能なエディタのテキスト要素生成方法及びエディタのテキスト要素生成装置並びにエディタ上にテキスト要素を生成させるように構成されたプログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP2002502999A (ja) 知識の本体の抽象化およびアクセスのためのコンピュータ・システム、方法およびユーザ・インターフェース構成要素
US20080005752A1 (en) Methods, systems, and computer program products for generating application processes by linking applications
Rao et al. The information grid: A framework for information retrieval and retrieval-centered applications
US20050251380A1 (en) Designer regions and Interactive control designers
US5832473A (en) Information management system with user data-based user interface
Ferrans et al. HyperWeb: a framework for hypermedia-based environments
Koivunen et al. HutWindows: an improved architecture for a user interface management system
JP2009157580A (ja) Hmi開発支援装置、hmi開発支援方法およびhmi開発支援プログラム
MacDonald Pro. NET 2.0 Windows Forms and Custom Controls in VB 2005
JPH064280A (ja) ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース
JP2008052387A (ja) プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
Dathan et al. Interactive Systems and the MVC Architecture

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110923

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee