KR20060096265A - 풍부한 사용자 인터페이스 디자인을 위한 스타일 메카니즘 - Google Patents

풍부한 사용자 인터페이스 디자인을 위한 스타일 메카니즘 Download PDF

Info

Publication number
KR20060096265A
KR20060096265A KR1020060003392A KR20060003392A KR20060096265A KR 20060096265 A KR20060096265 A KR 20060096265A KR 1020060003392 A KR1020060003392 A KR 1020060003392A KR 20060003392 A KR20060003392 A KR 20060003392A KR 20060096265 A KR20060096265 A KR 20060096265A
Authority
KR
South Korea
Prior art keywords
style
user interface
applying
styles
property
Prior art date
Application number
KR1020060003392A
Other languages
English (en)
Other versions
KR101238485B1 (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 KR20060096265A publication Critical patent/KR20060096265A/ko
Application granted granted Critical
Publication of KR101238485B1 publication Critical patent/KR101238485B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • 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/117Tagging; Marking up; Designating a block; Setting of attributes
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62DCHEMICAL MEANS FOR EXTINGUISHING FIRES OR FOR COMBATING OR PROTECTING AGAINST HARMFUL CHEMICAL AGENTS; CHEMICAL MATERIALS FOR USE IN BREATHING APPARATUS
    • A62D1/00Fire-extinguishing compositions; Use of chemical substances in extinguishing fires
    • A62D1/0071Foams
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62DCHEMICAL MEANS FOR EXTINGUISHING FIRES OR FOR COMBATING OR PROTECTING AGAINST HARMFUL CHEMICAL AGENTS; CHEMICAL MATERIALS FOR USE IN BREATHING APPARATUS
    • A62D1/00Fire-extinguishing compositions; Use of chemical substances in extinguishing fires
    • A62D1/0028Liquid extinguishing substances
    • A62D1/0035Aqueous solutions
    • A62D1/0042"Wet" water, i.e. containing surfactant
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62DCHEMICAL MEANS FOR EXTINGUISHING FIRES OR FOR COMBATING OR PROTECTING AGAINST HARMFUL CHEMICAL AGENTS; CHEMICAL MATERIALS FOR USE IN BREATHING APPARATUS
    • A62D3/00Processes for making harmful chemical substances harmless or less harmful, by effecting a chemical change in the substances
    • A62D3/30Processes for making harmful chemical substances harmless or less harmful, by effecting a chemical change in the substances by reacting with chemical agents
    • A62D3/32Processes for making harmful chemical substances harmless or less harmful, by effecting a chemical change in the substances by reacting with chemical agents by treatment in molten chemical reagent, e.g. salts or metals
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62DCHEMICAL MEANS FOR EXTINGUISHING FIRES OR FOR COMBATING OR PROTECTING AGAINST HARMFUL CHEMICAL AGENTS; CHEMICAL MATERIALS FOR USE IN BREATHING APPARATUS
    • A62D2101/00Harmful chemical substances made harmless, or less harmful, by effecting chemical change

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Chemical & Material Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Emergency Management (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Toxicology (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 사용자 인터페이스내의 오브젝트에 적용되어 오브젝트의 소정 속성을 정의하는 스타일 모델 실행에 관한 것이다. 본 모델은 2개 부문: 사용자 인터페이스의 시각 및 느낌에 영향을 미치는 스타일 정의를 사용하는 "런타임(runtime)"과, 사용자 인터페이스의 시각 및 느낌을 정의하는데 사용된 WYSIWYG 도구에 의해 제공된 경험인 "디자인-시간"으로 나뉜다. 디자인-시간은 런타임 오브젝트 측면에서 실행될 수도 있다. 스타일과 관련된 특성들은 디자인-시간 UI를 이용하여 오브젝트에 설정되어 런타임시 실행될 수 있다. 스타일은 테마로 그룹화되어 수많은 오브젝트들에 변경을 적용하는데 용이한 메카니즘을 제공할 수도 있다.
그래픽 편집, 스타일, 사용자 인터페이스 디자인, 컴퓨터 환경

Description

풍부한 사용자 인터페이스 디자인을 위한 스타일 메카니즘{STYLING MECHANISM FOR RICH USER INTERFACE DESIGN}
도 1은 본 발명의 특징이 실행될 수도 있는 예시적인 컴퓨팅 환경을 나타내는 블럭도.
도 2는 본 발명에 따른 런타임 컴포넌트에 의해 수행된 프로세스의 흐름도.
도 3 및 도 4는 예시적인 디자인-시간 사용자 인터페이스이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨터 환경
120 : 프로세싱 유닛
131 ; 시스템 메모리
132, 144 : 구동 시스템
135, 145 : 어플리케이션 프로그램
136, 146 ; 다른 프로그램 모듈
137, 147 ; 프로그램 데이터
140 ; 비착탈식 불휘발성 메모리 인터페이스
150 : 착탈식 불휘발성 메모리 인터페이스
160 : 사용자 입력 인터페이스
170 : 네트워크 인터페이스
본 발명은 통상적으로 그래픽 편집 분야에 관한 것이다. 보다 구체적으로, 본 발명은 컴퓨팅 환경내에서 그래픽 및 다른 타입의 오브젝트에 속성을 적용하는데 사용되는 스타일 메카니즘을 제공하는 시스템 및 방법에 관한 것이다.
스타일은, 본 분야의 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 통상적으로 특정 공개시 또는 특정 발표자에 의해 기입된 재료가 제공되는 방식이다. 스타일은 예를 들면, 텍스트, 라인 및/또는 면(fill)이 제공되는 방식을 정의하기 위해, MICROSOFT WORD 및 MICROSOFT VISIO에서 사용된다. 스타일 정의는 텍스트, 라인 및/또는 면(fill)의 소정 특성을 실행하여 문서 전반에 걸쳐서 통일된 외형을 제공한다.
사용자 인터페이스(UI) 디자인시 일반적으로 감각으로 스타일이 실행되지 않았던 한 영역은, 디자인 시간 및 런타임 양측에서 UI 디자인의 정의를 한정, 실행 및 유지하는데 바람직하다. 이를 목표로, 예를 들면, 웹 페이지 디자인시 사용되는 CSS(Cascading Style Sheets) 및 XSL(Extensible Style Language)에 대해 시도가 있어왔다. 그러나, 이들 방법 둘다 이해하기에 복잡하고 어렵기로 유명하다. 보다 중요한 것은, 효과적으로 이용할 수 있는 소프트웨어 도구들, 특히 디자인의 직접적인 조작 및 이해를 할 수 있는 WYSIWYG(What You See Is What You Get) 도구 를 쓰는 것은 매우 어렵다고 증명되었다.
한가지 문제점은 실행 소프트웨어가 이들 루울을 실행하고 인터페이스의 기능을 깨지않고 이들이 변화될 수 있게 하면서, 어떻게 소프트웨어 디자인 시간 도구들이 UI 스타일을 정의할 수 있는지에 관한 것이다. 구체적으로, 스타일 메카니즘은 그래픽 및 개발 도구를 통해 조정할 수 있으며, UI 디자이너들이 쉽게 마스터할 수 있도록 간단하면서도 친숙한, UI 디자인의 모든 특성에 일반적이며 적용가능해야 한다. 그러나, 어떠한 종래의 스타일 메카니즘도 이들 특성을 제공하지 못한다.
따라서, 상술한 기능들을 제공하는 스타일 메카니즘이 필요하다. 본 발명은 그에 대한 해결책을 제공한다.
본 발명은 오브젝트의 임의의 속성을 정의하기 위해 사용자 인터페이스내의 오브젝트에 적용되는 스타일 모델을 실행하기 위한 방법에 관한 것이다. 이 모델은 2가지 부문: 사용자 인터페이스의 시각 및 느낌에 영향을 미치는 스타일 정의를 이용하는 "런타임(runtime)"과, 사용자 인터페이스의 시각 및 느낌을 정의하는데 사용된 WYSIWYG 도구에 의해 제공된 경험인 "디자인-시간"으로 나뉜다. 디자인 시간은 런타임 오브젝트에 관련하여 실행될 수도 있다. 스타일과 관련된 특성은 디자인 시간 UI를 이용하여 오브젝트에 대해 설정될 수 있고 런타임시 실시될 수 있다. 스타일은 수많은 오브젝트들에 변경을 적용하는 손쉬운 메카니즘을 제공하는 테마로 그룹화될 수도 있다.
본 발명의 추가적인 특성 및 이점들은 첨부된 도면들을 참조하여 진행되는 예시적인 실시예의 다음 상세한 설명으로부터 명백하게 될 것이다.
예시적인 컴퓨터 환경
도 1은 본 발명이 실행될 수도 있는 적당한 컴퓨터 시스템 환경의 일례를 나타낸다. 컴퓨터 시스템 환경(100)은 적당한 컴퓨터 환경의 일례일 뿐이며 본 발명의 이용범위 또는 기능에 대해 어떠한 제한을 제시하려는 것은 아니다. 이러한 컴퓨터 환경(100)은 예시적인 구동 환경(100)내에 도시된 구성요소들의 조합 또는 임의 하나에 관련한 필수요건 또는 임의의 종속성을 갖는 것으로서 해석되지 않아야 한다.
본 발명은 수많은 다른 범용 또는 특수 목적의 컴퓨터 시스템 환경 또는 구성에서 동작가능하다. 본 발명에 이용하기에 적합할 수도 있는 공지의 컴퓨터 시스템, 환경 및/또는 구성의 예들은 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 소비자 가전, 네트워크 PC, 마이크로컴퓨터, 메인프레임 컴퓨터, 상술한 시스템 또는 디바이스 중 어느 하나를 포함하는 분배 컴퓨터 환경 등을 포함하지만 이에 국한되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령들의 일반적인 컨텍스트로 기술될 수도 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 요약 데이터 타입을 실행하는 루틴, 프로그램, 오브 젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크되는 원격 처리 장치에 의해 작업이 수행되는 분배 컴퓨터 환경에서 실행될 수도 있다. 분배 컴퓨터 환경에서, 프로그램 모듈 및 다른 데이터는 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 양측에 배치될 수도 있다.
도 1을 참조하면, 본 발명을 실행하기 위한 예시적인 시스템은 범용 컴퓨터 디바이스를 컴퓨터(110)의 형태로 포함한다. 컴퓨터(110)의 컴포넌트는 프로세싱 유닛(120), 시스템 메모리(130), 및 프로세싱 유닛(120)에 시스템 메모리를 포함한 다양한 시스템 컴포넌트를 연결시키는 시스템 버스(121)를 포함할 수도 있지만, 이에 국한되지 않는다. 시스템 버스(121)는 다양한 버스 구성들 중 임의의 것을 이용하여 메모리 버스 또는 메모리 제어기, 주변 버스, 및 로컬 버스를 포함하는 몇가지 타입의 버스 구조 중 임의의 것일 수도 있다. 일례로서, 그러한 구조들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, PCI(Peripheral Component Interconnect) 버스(또는 메짜닌(Mezzanine) 버스로서 알려져 있음), PCI-Express(Peripheral Component Interconnect Express) 및 SMBus(Systems Management Bus)를 포함하지만, 이에 국한되지 않는다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 억세스될 수 있으며 휘발성 및 비휘발성 매체, 착탈식 및 비착탈식 매체 둘다를 포함하는 임의의 활용가능한 매체일 수 있 다. 일례로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수도 있으며, 이에 국한되지 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술으로 실행되는 휘발성 및 불휘발성, 착탈식 및 비착탈식 매체 둘다를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있으며 컴퓨터(110)에 의해 억세스될 수 있는 임의의 다른 매체를 포함하지만 이에 국한되지 않는다. 통신 매체는 캐리어파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호에 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 통상적으로 구현하고 임의의 정보 전송 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호내의 정보를 인코딩하는 방식으로 설정 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 일례로서, 통신 매체는 유선 네트워크 또는 직통 접속와 같은 유선 매체와 음파, RF 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이에 국한되지 않는다. 상술한 것들 중 임의의 것의 조합은 또한 컴퓨터 판독가능한 매체의 범위내에 포함된다.
시스템 메모리(130)는 ROM(131) 및 RAM(132)과 같은 휘발성 및/또는 불휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 예를 들면, 시동하는 동안 컴퓨터(110)내의 구성요소들간에 정보를 전송할 수 있게 하는 기본적인 루틴을 포함하 는 BIOS(basic input/output system)(133)는 통상적으로 ROM(131)에 저장된다. RAM(132)은 프로세싱 유닛(120)에 의해 즉시 억세스가능하고 및/또는 이 프로세싱 유닛에 의해 현재 동작중에 있는 데이터 및/또는 프로그램 모듈을 통상적으로 포함한다. 일례로서, 도 1은 구동 시스템(134), 어플리케이션 프로그램(135), 다른 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만, 이에 국한되지 않는다.
컴퓨터(110)는 또한 다른 착탈식/비착탈식, 휘발성/불휘발성 컴퓨터 저장 매체를 포함할 수도 있다. 일례로서, 도 1은 비착탈식, 불휘발성 자기 매체로부터 판독하거나 이 매체에 기입하는 하드 디스크 드라이브(141), 착탈식, 불휘발성 자기 디스크(152)로부터 판독하거나 이 디스크에 기입하는 자기 디스크 드라이브(151), CD-ROM 또는 다른 광학 매체와 같은, 착탈식, 불휘발성 광 디스크(156)으로부터 판독하거나 이 디스크에 기입하는 광 디스크 드라이브(155)가 도시되어 있다. 예시적인 구동 환경에서 사용될 수 있는 다른 착탈식/비착탈식, 휘발성/불휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD, 디지털 비디오 테이프, 고체 ROM 등을 포함하지만, 이에 국한되지 않는다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비착탈식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151)와 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 착탈식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
상술한 그리고 도 1에 도시되어 있는 드라이브들 및 그 관련 컴퓨터 저장 매 체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)용 다른 데이터의 저장을 제공한다. 도 1에서, 예를 들면, 하드 디스크 드라이브(141)는 구동 시스템(144), 어플리케이션 프로그램(145), 다른 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로서 도시되어 있다. 이들 구성요소들은 구동 시스템(134), 어플리케이션 프로그램(135), 다른 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일하거나 또는 이들과 상이할 수 있다는 것에 유념하라. 구동 시스템(144), 어플리케이션 프로그램(145), 다른 프로그램 모듈(146) 및 프로그램 데이터(147)는 여기서 약간 상이한 번호를 부여하여 최소한 이들은 상이한 복사본이라는 것을 나타내었다. 사용자는 키보드(162) 및 통상 마우스, 트랙볼 또는 터치 패드로 참조되는 포인팅 디바이스(161)와 같은 입력 디바이스들을 통해 명령 및 정보를 컴퓨터(110)에 입력할 수도 있다. 다른 입력 디바이스들(비도시됨)은 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수도 있다. 이들 및 다른 입력 디바이스들은 종종 시스템 버스에 결합되는 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 접속될 수도 있지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 버스 구조 및 다른 인터페이스에 의해 접속될 수도 있다. 모니터(191) 또는 다른 타입의 디스플레이 디바이스는 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터에 부가하여, 컴퓨터들은 출력 주변 인터페이스(195)를 통해 접속될 수도 있는, 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 디바이스를 포함할 수도 있다.
컴퓨터(110)는 네트워크화된 환경에서, 원격 컴퓨터(180)와 같은, 하나 이상 의 원격 컴퓨터들에 대한 논리적인 접속을 이용하여 구동될 수도 있다. 원격 컴퓨터(180)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스 또는 다른 공통 네트워크 노드일 수도 있으며, 통상적으로 메모리 저장 디바이스(181)만이 도 1에 도시되었지만, 컴퓨터(110)에 관련하여 상술한 구성요소들 모두 또는 대다수를 포함한다. 도시된 논리적인 접속은 LAN(local area network)(171)와 WAN(wide area network)(173)을 포함하지만, 다른 네트워크를 포함할 수도 있다. 그러한 네트워크 환경은 사무실, 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 거쳐 통신을 설정하기 위한 다른 수단 또는 모뎀(172)을 포함한다. 내부 또는 외부에 있을 수도 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적당한 메카니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워크화된 환경에서, 컴퓨터(110)에 대해 도시된 프로그램 모듈들 또는 그 부분들은 원격 메모리 저장 디바이스에 저장될 수도 있다. 일례로서, 도 1에는 메모리 디바이스(181)에 상주하는 것으로서 원격 어플리케이션 프로그램(185)가 도시되어 있지만, 이에 국한되지 않는다. 도시된 네트워크 접속들은 예시적인 것이며 컴퓨터들간의 통신 링크를 설정하는 다른 수단이 사용될 수도 있다는 것을 알 수 있을 것이다.
UI 디자인을 위한 스타일링의 예시적인 실시예
모뎀 사용자 인터페이스(UI)는 통상적으로 UI내에 구성요소들을 나타내는 한 세트의 오브젝트들(예를 들면, 버튼, 사각형, 원도우) 및 이들 구성요소들의 특성(예를 들면, 컬러, 위치, 텍스트값)에 의해 정의된다. 본 발명은 컬러, 위치, 기하학 등을 포함하지만 이에 국한되지 않는 한 세트의 특성과, 이들 특성에 대한 값의 할당, 예를 들면, 그린, 스크린의 중앙, 원형 등으러서 "스타일"을 실행한다. 각 스타일은 명칭 또는 고유하게 참조되는데 사용될 수 있는 다른 식별자를 가질 수도 있으며, 스타일들은 UI 정의시 오브젝트들에 적용될 수 있다. 예를 들면, 사용자 인터페이스 디자이너는 전경 및 배경색이 블랙 및 화이트로서 정의되는 일명 "제브라(Zebra)"와 전경과 배경색이 블랙 및 오렌지로서 정의되는 "타이거(Tiger)", 2가지 스타일을 정의할 수 있다. 만일 "제브라"가 버튼 및 리스트박스의 세트에 적용되는 경우, 이들은 블랙 및 화이트로 나타날 것이며, 또는 디자이너는 "타이거"를 적용하여 블랙 및 오렌즈 구성을 취할 수 있다.
본 발명의 스타일 정의 메카니즘은 2개 부문: UI의 시각 및 느낌에 영향을 미치는 스타일 정의를 이용하는 "런타임" 구성요소와, 사용자 인터페이스의 시각 및 느낌을 정의하는데 사용된 WYSIWYG에 의해 제공된 경험인 "디자인-시간" 구성요소로 나뉘어질 수도 있다. 디자인-시간 구성요소는 런타임 오브젝트면에서 수행될 수 있다.
런타임 스타일 오브젝트
스타일 오브젝트는 값 할당을 갖는 명명된 세트의 특성이다. 특성들은 임의의 클래스로부터 올 수도 있다. 특성을 참조하기 위한 일반적인 메카니즘은 CLR(Common Language Runtime) 및 다른 오브젝트 시스템들이 타입의 명칭 및 특성의 명칭을 부여함으로써 특성으로 참조될 수 있도록 사용된다. 예를 들면, "Button.Background", 여기서 "Button"은 타입의 명칭이고 "Background"는 그 타입의 특성의 명칭이다. CLR은 MICROSOFT CORP.로부터 활용가능한 .NET 프레임워크의 부분이며 프로그램의 실행을 관리하고 공통 오브젝트-지향 클래스의 공유를 제공한다.
이와 같이 주어지면, XML에서 스타일을 선언할 수 있으며, 예를 들면:
<Style Name="MyStyle" Button.Background="RGB(0,0,1,0)"
DockPanel.Dock="Left"/>
만일 스타일-계승(style-inheritance)이 실행되면, 스타일은 다른 스타일에 기초하여 이루어질 수도 있다. 이는 스타일이 모 스타일(parent style)로부터 임의의 특성 및/또는 값 쌍들을 픽업할 수도 있다는 것을 의미한다. 새로운 스타일에서의 특성 할당은 우선시되며 모 세팅(parent setting)에 "오버라이드(override)"한다라고 말한다.
예를 들면:
<Style Name="BaseStyle" Button.Background="RGB(0,0,1,0)"
Button.Foreground="RGB(0,1,0,0)"/>
<Style Name="DerivedStyle" BasedOn="BaseStyle"
Button.Background="RGB(0,1,1,0)"
Button.BorderColor="RGB(0,1,1,1)"/>
스타일의 의사-C# 클래스 정의는 다음과 같을 수 있다:
class Style
{
public string Name { get; set; }
public Dictionary<Property, object> Properties {
get; }
public Style BasedOn { get; set; }
}
모든 구성요소는 특성이라고 명명되는 스타일을 포함하며, 그 값은 스타일의 ID이다. 이 특성의 값은 구성요소의 스타일이다.
<Button Style="ButtonStyle" .../>
명명 및 공유된 리소스들은 임의의 특성 타입으로 정의될 수 있다.
<def:Resource Name="Blue" Value="RGB(0,0,0,1)"/>
<def:Resource Name="SystemForeground"
Value="RGB(0,0,1,1)"/>
<Style Name="Foo" Background="%Blue"
Foreground="%SystemForeground"/>
임의의 스타일 특성의 값은 구성요소에 대한 로컬값이 있는지를 체크함으로써 결정된다. 만일 어떠한 것도 존재하지 않는다면, 특성값은 구성요소의 스타일로부터 사용된다.
스타일 및 리소스들은 테마로 구성될 수도 있다. 테마는 한 세트의 콘텐트의 전반적인 시각을 스위치하기 쉽게 하는 한 그룹의 스타일 정의이다.
<Theme>
<def:Resource Name="Blue" Value="RGB(0,0,0,1)"/>
<def:Resource Name="SystemForeground"
Value="RGB(0,0,2,1)"/>
<Style Name="BaseButtonStyle" .../>
<Style Name="SpinButtonStyle"
BasedOn="BaseButtonStyle"... />
...
</Theme>
로컬 테마는 현재 스타일을 오버라이드하거나 스타일의 세트를 확장시킬 수 있다. 따라서, 사용자는 모든 버튼들의 스타일 특성을 변경할 필요없이 어플리케이션시 모든 버튼에 대한 디폴트 버튼 백그라운드를 변경하도록 선택할 수도 있다. 또한, 모든 제어는 공지된 스타일 명칭들 중 하나인 디폴트 스타일 특성을 구체화하는 것이 바람직하다. 예를 들면, 버튼 클래스는 "SystemButtonStyle"로서 디폴트 스타일을 정의할 수도 있다.
본 발명에 따르면, 상술한 몇가지 변경은 가능하다. 제1 변경에 따르면, 임의로 범위 설정된 테마가 정의될 수도 있다. 여기서, 테마는 트리 구조의 소정 레벨에서 도입될 수 있다. 따라서, 테마는 스타일들을 오버라이드할 수 있으며 패널 내부 또는 버튼 내부 등에 새로운 스타일을 도입시킬 수 있다. 제2 변경은 스타일을 정의하고 동일한 것으로서 템플레이트한다. 만일 템플레이트가 첨부되는 제어에 대한 특성을 설정할 수 있다면, 여기서 정의되는 스타일들은 템플레이트의 서브세트만이다. 제3 변경은 강하게 타이핑된 스타일이다. 스타일들은 관련 특성(질문 그룹과 유사)의 세트가 될 수도 있다. 이들 관련 특성은 모든 텍스트 특성, 스트로크 특성 등일 수도 있다. 제어는 이 변경하에서 스타일의 각 타입에 대한 별도의 특성을 가질 것이다. 이는 매우 유동적이며 스타일들에 대한 유용한 구성을 부과한다.
런타임시, 스타일들은 식별하기 위한 스타일 명칭을 이용하여, 스타일의 리스트를 제공하는 오브젝트들을 갖는 오브젝트들에 적용될 수도 있다. 예를 들면:
<Button Style = "MyStyle; OtherStyle" />
오브젝트에 대한 특성들의 실제값은 선행 계산에 의해 결정된다. 우선, 오브젝트에 대해 직접적으로 설정된 임의의 특성들이 적용되고나서, 스타일들의 리스트는 순서대로 진행되고 아직 설정되지 않은 특성들은 현재 스타일로부터 적용된다. 따라서, 상술한 예에서, 버튼상에 직접적으로 설정되지 않았던 MyStyle내의 특성들이 적용될 것이며, 다음으로 버튼상에 직접적으로 설정되지 않았던 또는 MyStyle에 의해 설정된 OtherStyle의 특성들이 적용될 것이다.
일반적으로, 스타일들의 리스트{s1, s2, s3, ... Sn}를 갖는 오브젝트 O가 주어지면, 최종 특성값은 이 순서로 적용될 것이다:
O에 대해 설정된 임의의 특성
s1에 대해 설정되며, O에 대해서는 설정되지 않은 임의의 특성
s2에 대해 설정되며, O 또는 s1에 대해서는 설정되지 않은 임의의 특성
...
sn에 대해 설정되며, O, s1, s2, ... sn-1에 대해서는 설정되지 않은 임의의 특성
도 2를 참조하면, 본 발명의 런타임 구성요소에 의해 수행된 프로세스의 흐름도가 나타나 있다. 이 프로세스는 스텝(200)에서 각 오브젝트("O")마다 시작한다. 다음으로, 다음 스타일은 스텝(204)에서 선택된다. 스텝(206)에서, 스타일과 관련된 다음 특성은 스타일로부터 적용된다. 스텝(208)에서, 특성이 O에 대해 설정되어 있는지를 판정한다. 그렇지 않다면, 특성은 스텝(210)에서 설정되고, 그렇지 않다면, 프로세스는 스텝(212)로 진행하여 스타일내에 임의의 나머지 특성들이 있는지의 여부를 판정한다. 그렇다면, 프로세스는 스텝(206)으로 리턴하고, 그렇지 않다면, 프로세스는 스텝(214)로 진행하며, 여기서 만일 적용되어야 할 임의의 스타일들이 남아 있는지를 판정한다. 그렇다면, 프로세스는 스텝(204)로 리턴하고, 그렇지 않다면, 프로세스는 스텝(216)에서 종료한다.
본 발명에 따르면, 한 세트의 사용자 인터페이스 도구들은 명칭으로 스타일들의 리스트를 표시할 수도 있으며, 디자이너가 제공된 특성에 특성 및 값을 할당할 수 있게 한다. 더욱이, 도구들은 UI의 구성요소들에 스타일을 제공한다. 그러한 UI의 예시적인 디자인은 도 3 및 도 4에 나타나 있다. 런타임 구성요소는 UI 요소가 특성 할당을 픽업할 수 있게 하고, 스타일의 정의 어플리케이션을 변경함으 로써 UI 요소가 새로운 특성 할당을 픽업할 수 있게 한다. 본 발명에 대한 확장은 다수의 스타일들이 단일 오브젝트에 적용될 수 있게 하여, 컬러 스타일 및 폰트 스타일이 함께 혼합될 수 있게 하며, 스타일 계승은 클래스 계승의 오브젝트 지향 개념을 채택하여 좀 더 용이하게 관리하고 스타일을 재사용할 수 있게 한다.
도 3 및 도 4를 참조하면, 스타일들은 본 명세서에서 나타난 예시적인 다이얼로그 박스를 이용하여 정의될 수도 있다. UI는 특성들이 오브젝트에 대해 직접적으로 설정될 수 있게 한다. UI를 이용하여, 오브젝트가 선택될 수도 있고 특성들이 이로부터 추출될 수도 있다. 추출된 특성들은 스타일로서 명명될 수 있다. 스타일은 오브젝트에 포인팅하고 스타일에 명칭을 설정함으로써 적용될 수도 있다. 도 3에 나타난 바와 같이, 선택된 버튼은 "블루베리(Blueberry)" 스타일로부터 그 컬러 특성을 픽업한다. 스타일의 금속성으로의 간단한 변경은 도 4에 나타난 바와 같이, 특성의 전체 세트를 변경할 것이다.
따라서, 본 발명은 리소스 모델과 호환 가능한, 간단하면서도 도구사용가능한 메카니즘을 제공한다. 이는 XML를 이용하여 실행될 수 있기 때문에, 시리얼화되는 것은 물론 쉽게 디버그될 수 있다. 본 발명이 다양한 도면들의 바람직한 실시예에 관련하여 기술되었지만, 다른 유사 실시예들이 사용될 수도 있으며, 본 발명의 동일 기능을 수행하기 위한 상술한 실시예에 대해 이로부터 동떨어짐없이 변형 및 부가가 이루어질 수도 있다. 예를 들면, 본 분야의 숙련된 자라면, 본 출원에서 기술된 바와 같은 본 발명은 유선이든 무선이든 임의의 컴퓨터 디바이스 또는 환경에 적용될 수도 있으며, 통신 네트워크를 통해 접속된 소정 수의 컴퓨팅 디바이스 및 네트워크를 통한 상호작용에 적용될 수도 있다. 또한, 핸드헬드 디바이스 구동 시스템 및 다른 어플리케이션 특정 구동 시스템을 포함한, 다양한 컴퓨터 플랫폼이 특히 계속해서 확장되는 다수의 무선 네트워크 디바이스들로서 고려될 수 있다는 것에 역점을 두어야 한다. 더욱이, 본 발명은 복수의 프로세싱 칩 또는 디바이스에 또는 이들 칩 및 디바이스 전반에 걸쳐서 수행될 수 있으며, 저장은 복수의 디바이스 전반에 걸쳐서 유사하게 영향을 미칠 수 있다. 따라서, 본 발명은 임의의 단일 실시예에 국한되지 않아야 하며, 게다가 첨부된 청구항에 따른 폭 및 범위내에서 유추되어야 한다.

Claims (14)

  1. 런타임동안 사용자 인터페이스내의 오브젝트에 스타일들을 적용하는 방법에 있어서,
    상기 오브젝트와 관련된 제1 스타일을 확인하는 단계;
    상기 오브젝트에 상기 제1 스타일과 관련된 제1 특성을 적용하는 단계; 및
    상기 오브젝트와 관련된 각각의 다음 스타일에 대해, 상기 오브젝트에 상기 다음 스타일과 관련된 제2 특성을 적용하는 단계를 포함하며,
    상기 특성들은 상기 사용자 인터페이스내의 상기 오브젝트의 적어도 그래픽 속성을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 제1 스타일 또는 상기 다음 스타일은 모 스타일(parent style)로부터 특성 및 값을 승계하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 모 스타일의 상기 특성 및 값은 상기 제1 스타일 또는 상기 다음 스타일에 오버라이드(override)되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 오브젝트에 로컬 특성을 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 스타일을 테마로 구성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 로컬 테마를 적용함으로써 상기 스타일에 오버라이드하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 런타임동안 오브젝트에 적용될 디자인 시간에 스타일들을 정의하는 방법에 있어서,
    각 스타일이 관련 명칭을 갖는 스타일들의 리스트를 사용자 인터페이스에 제공하는 단계; 및
    상기 스타일과 관련된 상기 오브젝트에 특성을 적용하는 단계 -상기 특성은 런타임시 적용될 상기 오브젝트의 적어도 그래픽 속성을 포함함-
    를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 오브젝트를 선택하고 상기 명칭을 선택함으로써 상기 스타일을 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 런타임동안 사용자 인터페이스내의 오브젝트에 스타일을 적용하기 위한 컴퓨터 실행가능 명령들이 저장된 컴퓨터 판독가능 매체에 있어서,
    상기 오브젝트와 관련된 제1 스타일을 확인하는 단계;
    상기 오브젝트에 상기 제1 스타일과 관련된 제1 특성을 적용하는 단계; 및
    상기 오브젝트와 관련된 각각의 다음 스타일에 대해, 상기 오브젝트에 상기 다음 스타일과 관련된 제2 특성을 적용하는 단계를 포함하며,
    상기 특성들은 상기 사용자 인터페이스내의 상기 오브젝트의 적어도 그래픽 속성을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  10. 제9항에 있어서, 상기 제1 스타일 또는 상기 다음 스타일은 모 스타일(parent style)로부터 특성 및 값을 승계하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  11. 제10항에 있어서, 상기 모 스타일의 상기 특성 및 값은 상기 제1 스타일 또는 상기 다음 스타일에 오버라이드되는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  12. 제9항에 있어서, 상기 오브젝트에 로컬 특성을 적용하기 위한 명령들을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  13. 제9항에 있어서, 상기 스타일을 테마로 구성하기 위한 명령들을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  14. 제13항에 있어서, 로컬 테마를 적용함으로써 상기 스타일에 오버라이드 (override)하기 위한 명령들을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020060003392A 2005-03-03 2006-01-12 간단한 스타일링 KR101238485B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/071,766 US7917860B2 (en) 2005-03-03 2005-03-03 Simple styling
US11/071,766 2005-03-03

Publications (2)

Publication Number Publication Date
KR20060096265A true KR20060096265A (ko) 2006-09-11
KR101238485B1 KR101238485B1 (ko) 2013-03-04

Family

ID=36602708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060003392A KR101238485B1 (ko) 2005-03-03 2006-01-12 간단한 스타일링

Country Status (10)

Country Link
US (1) US7917860B2 (ko)
EP (1) EP1698981A3 (ko)
JP (1) JP4991153B2 (ko)
KR (1) KR101238485B1 (ko)
CN (1) CN1828597B (ko)
AU (1) AU2006200283B2 (ko)
BR (1) BRPI0600242A (ko)
CA (1) CA2534331A1 (ko)
MX (1) MXPA06001388A (ko)
RU (1) RU2402063C2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220033967A (ko) * 2020-09-10 2022-03-17 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 페이지 테마 결정 방법, 장치, 기기 및 저장 매체

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631260B1 (en) * 2006-10-23 2009-12-08 Adobe Systems Inc. Application modification based on feed content
US8850332B2 (en) * 2006-12-28 2014-09-30 International Business Machines Corporation Object selection in web page authoring
US20080238929A1 (en) * 2007-03-30 2008-10-02 Nadim Abdo Local Themeing Of Remote Applications
CN101777048B (zh) 2009-01-14 2013-04-03 国际商业机器公司 解决web应用复合中UI样式冲突的方法和装置
US9323807B2 (en) * 2010-11-03 2016-04-26 Sap Se Graphical manipulation of data objects
US9026904B2 (en) * 2012-03-14 2015-05-05 International Business Machines Corporation Automatic modification of cascading style sheets for isolation and coexistence
US9595298B2 (en) 2012-07-18 2017-03-14 Microsoft Technology Licensing, Llc Transforming data to create layouts
US9009092B2 (en) * 2012-07-19 2015-04-14 Microsoft Technology Licensing, Llc Creating variations when transforming data into consumable content
US9158438B2 (en) 2013-09-16 2015-10-13 Sap Se Multi-level user interface theming engine
CN105373520A (zh) * 2015-10-13 2016-03-02 金蝶软件(中国)有限公司 设置控件样式属性的方法和装置
US10423711B2 (en) 2015-10-23 2019-09-24 Oracle International Corporation Generating style sheets during runtime

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2525546B2 (ja) * 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
US5561444A (en) * 1992-12-21 1996-10-01 Apple Computer, Inc. Method and apparatus for providing visual feedback during manipulation of text on a computer screen
JP3254793B2 (ja) * 1993-02-16 2002-02-12 富士ゼロックス株式会社 対話処理システムの制御方法
WO1995031775A1 (en) * 1994-05-16 1995-11-23 Apple Computer, Inc. A system and method for customizing appearance and behavior of graphical user interfaces
DE69525338T2 (de) 1994-05-16 2002-10-24 Apple Computer Abstraktion von mustern und farben in einer graphischen benutzerschnittstelle
US6243102B1 (en) * 1994-05-16 2001-06-05 Apple Computer, Inc. Data-driven layout engine
DE69525249T2 (de) * 1994-05-16 2002-10-02 Apple Computer Umschaltung zwischen darstellungs-/verhaltensthemen in graphischen benutzeroberflächen
US5732271A (en) * 1995-01-23 1998-03-24 International Business Machines Corporation Data processing system and method for processing an object oriented development environment employing property inheritance using prototypical objects
US6307574B1 (en) * 1995-05-08 2001-10-23 Apple Computer, Inc. Graphical user interface with hierarchical structure for customizable menus and control objects
JPH09114621A (ja) * 1995-10-16 1997-05-02 Hitachi Ltd Gui画面デザイン支援方法
JPH09114627A (ja) * 1995-10-20 1997-05-02 Ricoh Co Ltd 画像形成装置
US5793368A (en) 1996-11-14 1998-08-11 Triteal Corporation Method for dynamically switching between visual styles
US5905492A (en) * 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
US6188399B1 (en) * 1998-05-08 2001-02-13 Apple Computer, Inc. Multiple theme engine graphical user interface architecture
IL132929A (en) * 1999-11-14 2004-09-27 Ycd Multimedia Dynamic user interface
US6753885B2 (en) * 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US6873337B1 (en) * 2000-04-06 2005-03-29 Microsoft Corporation Application programming interface for changing the visual style
US20020024539A1 (en) * 2000-05-08 2002-02-28 Columbia University System and method for content-specific graphical user interfaces
US6590590B1 (en) * 2000-06-06 2003-07-08 Mustek Systems, Inc. System and method for updating a graphic representation of a window item using an image information reading apparatus
US7028262B2 (en) * 2000-12-29 2006-04-11 International Business Machines Corporation Method and system for designing a theme and associating it with a collaboration space user interface
US6791581B2 (en) * 2001-01-31 2004-09-14 Microsoft Corporation Methods and systems for synchronizing skin properties
US7073130B2 (en) * 2001-01-31 2006-07-04 Microsoft Corporation Methods and systems for creating skins
US7703009B2 (en) * 2001-04-09 2010-04-20 Huang Evan S Extensible stylesheet designs using meta-tag information
CN100338573C (zh) 2001-10-04 2007-09-19 皇家飞利浦电子股份有限公司 设计用户界面样式的方法以及具有自适应用户界面的设备
US7143344B2 (en) * 2002-06-12 2006-11-28 Microsoft Corporation Transformation stylesheet editor
JP4368098B2 (ja) * 2002-08-30 2009-11-18 富士通株式会社 携帯端末及びアプリケーションプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220033967A (ko) * 2020-09-10 2022-03-17 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 페이지 테마 결정 방법, 장치, 기기 및 저장 매체

Also Published As

Publication number Publication date
US7917860B2 (en) 2011-03-29
AU2006200283B2 (en) 2011-01-27
RU2402063C2 (ru) 2010-10-20
JP2006244465A (ja) 2006-09-14
MXPA06001388A (es) 2006-09-20
US20060197779A1 (en) 2006-09-07
BRPI0600242A (pt) 2006-10-24
AU2006200283A1 (en) 2006-09-21
EP1698981A2 (en) 2006-09-06
JP4991153B2 (ja) 2012-08-01
CA2534331A1 (en) 2006-09-03
CN1828597B (zh) 2012-08-29
CN1828597A (zh) 2006-09-06
EP1698981A3 (en) 2007-08-01
KR101238485B1 (ko) 2013-03-04
RU2006103268A (ru) 2007-08-20

Similar Documents

Publication Publication Date Title
KR101238485B1 (ko) 간단한 스타일링
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
US20050091584A1 (en) Methods for applying styles to visual aspects of user interface elements
JP2006107478A (ja) ワークフローを設計するための拡張可能フレームワーク
WO2010091623A1 (zh) 应用程序界面动态生成装置及方法
US20100262949A1 (en) Visualized Modeling Language Connector Selection
KR20080033403A (ko) 웹 페이지 렌더링 우선순위 메카니즘
CN112114801B (zh) 一种面向ima的aadl多范式建模及自动生成c代码的方法
US20120151388A1 (en) Creating portals having consistent appearances
US6832365B1 (en) System and method for interacting with computer programming languages at semantic level
Radeke et al. PIM Tool: Support for pattern-driven and model-based UI development
US7685563B2 (en) Reusable customized project system
US10635745B2 (en) Pre-children in a user interface tree
WO2023273407A1 (zh) 页面组件的生成方法及装置
MacDonald Pro. NET 2.0 Windows Forms and Custom Controls in VB 2005
US7698659B1 (en) Methods and apparatus for formatting portion of content
Maloney Low Level X Window Programming
Mason Moses Formalism Creation–Tutorial
Kragelund Advanced tool support for requirements engineering
Jeffery et al. X-Icon: An Icon Window Interface Version 8.10
Myatt Creating UML Projects
Liberty et al. Styles and Templates
Rasure et al. Introduction to the User’s Manual
Neumann neumann@ wu-wien. ac. at, nusser@ wu-wien. ac. at
Foster et al. A visualization of the frame representation language

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 8