가. 컨트롤 패턴 종류

UI 자동화 기술에서는 컨트롤을 사용할 수 있는 독립적인 기능들을 컨트롤 패턴으로 정의하였습니다. 서로 다른 컨트롤이 같은 기능을 제공하는 경우도 있기 때문에 컨트롤과 컨트롤 패턴은 1:1 매핑 관계가 아닙니다. 하나의 컨트롤이 여러 컨트롤 패턴에 해당할 수도 있고 컨트롤 상태에 따라 같은 종류의 컨트롤이지만 컨트롤 패턴은 다를 수 있습니다.

 

예를 들어 편집 창의 내용이 많아 자동으로 스크롤 바가 생기면 해당 편집 창은 스크롤 패턴에 해당합니다. 하지만 편집 창의 내용이 적어 스크롤 바가 생기지 않으면 스크롤 패턴에 해당하지 않습니다. 이처럼 컨트롤은 상태에 따라 특정 컨트롤 패턴일 수도 있고 아닐 수도 있습니다. 이러한 특징을 동적 컨트롤 패턴이라 부릅니다.

 

여러분이 사용자 정의 컨트롤을 제작할 때 특정 컨트롤 패턴을 지원하기를 원한다면 각 컨트롤 패턴의 기능을 약속한 인터페이스를 기반으로 구현해야 합니다.

 

예를 들어 여러분이 정의하는 컨트롤이 스크롤 기능을 지원한다면 IScrollProvider 인터페이스를 기반으로 구현하면 UI 자동화 평가 도구나 UI 자동화 기술 클라이언트 응용에서는 해당 컨트롤이 스크롤 패턴임을 인지할 수 있고 프로그램 방식으로 해당 컨트롤을 제어할 수 있게 됩니다.

 

다음은 UI 자동화 기술에서 제공하는 컨트롤 패턴입니다.

 

컨트롤 패턴 설명
DockPattern 도킹 컨테이너에 도킹할 수 있는 컨트롤
ExpandCollapsePattern 확장하거나 축소할 수 있는 컨트롤
GridPattern 표 기능을 지원하는 컨트롤
GridItemPattern 표 안에 있는 컨트롤
InvokePattern 버튼처럼 호출할 수 있는 컨트롤
MultipleViewPattern 같은 정보를 여러 표현으로 전환할 수 있는 컨트롤
RangeValuePattern 특정 범위의 값을 지정할 수 있는 컨트롤
ScrollPattern 스크롤할 수 있는 컨트롤
ScrollItemPattern 스크롤할 수 있는 컨트롤의 항목 컨트롤
SelectionPattern 항목을 선택할 수 있는 컨트롤
SelectionItemPattern 항목을 선택할 수 있는 컨트롤의 항목 컨트롤
TablePattern 테이블 컨트롤
TableItemPattern 테이블 컨트롤의 항목 컨트롤
TextPattern 텍스트 정보를 갖을 수 있는 컨트롤
TogglePattern 상태를 전환할 수 있는 컨트롤
TransformPattern 크기 조정, 이동, 회전할 수 있는 컨트롤
ValuePattern 값을 가져오거나 설정할 수 있는 컨트롤
WindowPattern 창 컨트롤

[표 5.1] 컨트롤 패턴 종류

 

 

 

다음은 컨트롤 종류에 따라 UI 자동화 기술에서 제공하는 컨트롤 패턴과 상태에 따라 지원하는 패턴을 정리한 것입니다.

 

컨트롤 지원 패턴 상태에 따라 지원하는 패턴
Button 없음 Invoke, Toggle, ExpandCollapse
Calendar Grid, Table Selection, Scroll
CheckBox Toggle 없음
ComboBox ExpandCollapse Selection, Value
DataGrid Grid Scroll, Selection, Table
DataItem SelectionItem ExpandCollapse, GridItem, ScrollItem,

Table, Toggle, Value

Ducument Text Scroll, Value
Edit 없음 Text, RangeValue, Value
Group 없음 ExpandCollapse
Header 없음 Transform
HeaderItem 없음 Transform, Invoke
HyperLink Invoke Value
Image 없음 GridItem, TableItem
List 없음 Grid, MultipleView, Scroll, Selection
ListItem SelectionItem ExpandCollapse, GridItem, Invoke,

ScrollItem, Toggle, Value

Menu 없음 없음
MenuBar 없음 ExpandCollapse, Dock, Tansform
MenuItem 없음 ExpandCollapse, Invoke, SelectionItem,

Toggle

Pane 없음 Dock, Scroll, Transform
ProgressBar 없음 RangeValue, Value
RadioButton SlectionItem 없음
ScrollBar 없음 RangeValue
Separator 없음 없음
Slider 없음 RangeValue, Selection, Value
Spinner 없음 RangeValue, Selection, Value
SplitButton Invoke, ExpandCollapse 없음
StatusBar 없음 Grid
Tab Selection Scroll
TabItem SelectionItem 없음
Table Grid, GridItem, Table,

TableItem

없음
Text 없음 GridItem, TableItem, Text
Thumb Transform 없음
TitleBar 없음 없음
ToolBar 없음 Dock, ExpandCollapse, Transform
ToolTip 없음 Text, Window
Tree 없음 Scroll, Selection
TreeItem ExpandCollapse Invoke, ScrollItem, SelectionItem,

Toggle

Window Transform, Window Dock

[표 5.2] 컨트롤 별 지원 패턴