간트 레이아웃
버전 5.0부터 Gantt는 컴포넌트의 요소들을 레이아웃 내의 내부 뷰로 배치할 수 있는 커스터마이즈 가능한 레이아웃을 정의하는 기능을 지원합니다. 이 기능을 통해 추가 타임라인 및 그리드를 삽입하여, 다양한 방식으로 간트 차트의 구조를 유연하게 구성할 수 있습니다.
예를 들어, 타임라인의 오른쪽에 추가 그리드를 넣을 수 있습니다.

Grid columns rightside of gantt
또는, 기본 그리드와 타임라인 아래에 다른 그리드와 타임라인을 추가할 수도 있습니다.

Gantt chart with resource panel
기본 레이아웃
레이아웃은 gantt.config.layout 설정을 통해 제어됩니다. 아래는 기본 레이아웃 구성 예시입니다:
gantt.config.layout = {
css: "gantt_container",
rows:[
{
cols: [
{
// 기본 그리드 뷰
view: "grid",
scrollX:"scrollHor",
scrollY:"scrollVer"
},
{ resizer: true, width: 1 },
{
// 기본 타임라인 뷰
view: "timeline",
scrollX:"scrollHor",
scrollY:"scrollVer"
},
{
view: "scrollbar",
id:"scrollVer"
}
]},
{
view: "scrollbar",
id:"scrollHor"
}
]
}
간트 레이아웃은 뷰로 채워진 셀들로 구성됩니다. 이 뷰들은 다음과 같은 주요 및 보조 Gantt 요소를 나타냅니다:
- grid - 간트 차트의 그리드 영역. 작업을 표시하는 기본 그리드는 *id:"grid"*를 가집니다.
- timeline - 간트 차트의 타임라인 영역. 작업용 기본 타임라인은 *id:"timeline"*을 가집니다.
- resizer - 리사이저 라인. 활성화하려면 resizer 속성을 true로 설정하세요. 이 기능은 PRO 에디션에서만 사용 가능합니다.
- scrollbar - 간트 차트에서 사용되는 스크롤바. 그리드 및 타임라인 뷰는 특정 스크롤바와 연결할 수 있습니다(아래에서 자세히 설명).
- resourceGrid - 리소스 패널용으로 사전 구성된 그리드. PRO 에디션에서만 사용 가능. 자세한 내용은 여기 참고.
- resourceTimeline - 리소스 패널용으로 사전 구성된 타임라인. PRO 에디션에서만 사용 가능. 자세한 내용은 여기 참고.
각 뷰는 관련 속성을 가진 객체로 구성됩니다. grid와 timeline 뷰에 대해 설정을 커스터마이즈할 수 있습니다. 기본적으로 옵션은 전역 gantt.config 객체에서 가져옵니다.
레이아웃 구성은 Gantt를 초기화하기 전에 설정해야 합니다. 이후에 레이아웃을 변경했다면, resetLayout를 사용하여 새로고침해야 합니다.
스크롤바
레이아웃 내의 스크롤바는 "scrollbar" 뷰로 정의됩니다. 수평 및 수직 스크롤바 모두 사용할 수 있습니다.
스크롤바를 추가하려면, 해당 뷰에 scrollX 또는 scrollY 속성에 스크롤바의 id를 지정하여 연결합니다.
뷰에 스크롤바 연결하기
여러 뷰가 동일한 스크롤바를 공유할 수 있습니다. 뷰를 스크롤바에 연결하려면:
- 원하는 스크롤 방향으로 스크롤바를 정의하고 ID를 할당합니다.
- 뷰의 scrollX 또는 scrollY 속성에 해당 스크롤바 ID를 참조합니다.
cols 배열 내부에 스크롤바를 배치하면 수직 스크롤바가 생성되고, rows 배열에 배치하면 수평 스크롤바가 생성됩니다. 또는 scroll 속성을 사용해 스크롤 방향을 명시적으로 지정할 수 있습니다:
{ view: "scrollbar", id:"scroller", scroll: "x" } // 수평
또는:
{ view: "scrollbar", id:"scroller", scroll: "y" } // 수직
아래는 커스텀 그리드와 타임라인 뷰를 수직 스크롤바에 연결하는 예시입니다:
gantt.config.layout = {
css: "gantt_container",
rows:[
{
cols: [
{
view: "grid",
scrollY:"scrollVer"
},
{ resizer: true, width: 1 },
{
view: "timeline",
scrollY:"scrollVer"
},
{
view: "scrollbar",
id:"scrollVer"
}
]}
]
}
수직 스크롤바를 스크롤하면 그리드와 타임라인이 함께 이동합니다. 기본 레이아웃에서는 그리드와 타임라인 뷰가 수평 및 수직 스크롤바 모두와 연결되어 있습니다.
Grid 뷰 전용의 별도 수평 스크롤바도 지정할 수 있습니다. 관련 내용은 여기에서 확인하세요.
뷰의 스크롤바
이전에 단순한 레이아웃 구성으로 뷰에 단일 스크롤바를 추가하는 방법을 살펴보았습니다:
{cols: [ {rows: [{}, {}]}, {rows: [{}, {}]}]}