트리뷰 아이콘 컨트롤하기
트리뷰(TreeView)에는 트리컬럼의 왼쪽에 노드마다 서로 다른 아이콘을 표시할 수 있습니다.
또, 아이콘 필드의 값을 변경 하면 노드의 펼쳐짐, 접힘상태에 따라 다른 아이콘을 표시할 수도 있습니다.
pivot, grid, 피벗, 필터, filter
pivot, export
pivot, style, callback, styleCallback
pivot, value, getCellValue
pivot, pivotFields, getPivotFields
그리드뷰(GridView) 또는 트리뷰(TreeView)에서 이미지를 사용하려면 먼저, ImageList객체를 이용해 이미지파일의 경로를 목록으로 만들어야 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var imageList = new RealGridJS.ImageList("images", "/demo/resource/image/smallflag/");
imageList.addUrls([
"icon_male.png",
"icon_female.png",
"de.png",
"gr.png",
"hu.png",
"is.png",
...
]
);
treeView.registerImageList(imageList);
treeView.setTreeOptions({
iconImages: imageList.getName(),
iconWidth: 20
});
위 코드는 실제로 왼쪽 데모 화면에서 트리뷰(TreeView)에 아이콘을 적용하기 위해 이미지 목록을 만들고 트리에 등록하는 코드입니다. 이미지 목록을 트리에 등록하고 사용하려면
함수를 사용하면 됩니다.
트리뷰(TreeView)에는 각 노드에 아이콘을 표시할 수 있습니다.
아래 트리 구현 함수들에서는 함수의 마지막 인자인 iconField에 트리컬럼에 표시할 아이콘의 index값이
들어 있는 필드명을 입력합니다. 이 필드에 들어있는 값이 트리노드의 기본 아이콘 인덱스(icon index)가 됩니다.
또 다른 트리 구현 함수인 아래 함수들에서는 두 번째 인자인 options
즉, DataFillOptions의
rows속성의 값으로 위 속성명인 'rows'를 넘겨 주어야 합니다.
트리뷰에서 사용할 아이콘의 목록을 ImageList로 작성하고 만들어진 ImageList를 TreeView.registerImageList()함수로 TreeView에 등록하면 아이콘 필드에 입력된 index값에 해당 하는 아이콘에 트리노드에 표시됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 이미지 리스트 만들기
var imageList = new RealGridJS.ImageList("images", "/demo/resource/image/smallflag/");
imageList.addUrls([
"icon_male.png",
"icon_female.png",
"icon_folder_col.png",
"icon_folder-exp.png",
"de.png",
"gr.png",
"hu.png",
"is.png",
...
]
);
// 트리뷰에 이미지 리스트 등록하기
treeView.registerImageList(imageList);
treeView.setTreeOptions({
iconImages: imageList.getName(),
iconWidth: 20
});
트리 노드의 아이콘 인덱스(icon index)를 가져오고 지정하기 위해
함수를 사용합니다.
1
2
3
4
5
6
7
8
9
10
// 현재 노드의 아이콘을 2 또는 3으로 변경하기
var current = treeView.getCurrent();
if (current && current.dataRow) {
var iidx = treeDataProvider.getIconIndex(current.dataRow);
if (iidx == 2) {
treeDataProvider.setIconIndex(current.dataRow, 3);
} else {
treeDataProvider.setIconIndex(current.dataRow, 2);
}
}
트리를 접거나 펼칠때 아이콘을 변경하기 위해 아래 두 이벤트를 사용할 수 있습니다.
위 콜백 함수를 이용해 트리 노드를 접거나 펼칠때 폴더 모양의 아이콘을 변경하는 코드를 실행해 보세요.
버튼을 누르면 트리의 두번째 레벨 노드를 접을때와 펼칠때 다른 아이콘이 표시됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 노드를 펼칠때 아이콘 인덱스를 3으로 변경
treeView.onTreeItemExpanded = function (tree, itemIndex, rowId) {
var level = treeDataProvider.getLevel(rowId);
if (level == 2) {
treeDataProvider.setIconIndex(rowId, 3);
}
}
// 노드를 접을때 아이콘 인덱스를 2로 변경
treeView.onTreeItemCollapsed = function (tree, itemIndex, rowId) {
var level = treeDataProvider.getLevel(rowId);
if (level == 2) {
treeDataProvider.setIconIndex(rowId, 2);
}
}
트리를 접거나 펼칠때 expander 이미지를 아래 두 함수를 사용해서 변경할 수 있습니다.
expand 표시를 해당 경로의 이미지 파일로 변경합니다.
1
treeView.setTreeOptions({expandImage:"/resource/image/smallflag/icon_folder_col.png"})
collapse 표시를 해당 경로의 이미지 파일로 변경합니다.
1
treeView.setTreeOptions({collapseImage:"/resource/image/smallflag/icon_folder_exp.png"})
트리의 라인을 표시하지 않습니다.
1
treeView.setTreeOptions({lineVisible:false})