SMART datagrid v1.4 > Concepts
Concepts.DataLudi Class System
SMART datagrid 모듈은 적지 않은 모델들과, 모델들 간의 관계가 다양하게 연결된 구조로 구현된다. 복잡성을 해결하는 방법으로 기존의 객체지향 프로그래밍(OOP) 방식으로 설계되었으며, 설계를 구현하기 위해 SMART datagrid 자체의 Class 모델을 내연적으로 정의하고 있다. SMART datagrid 개발자가 모듈 내부의 상세 내용을 알 필요는 없지만, Javascript 특성상 아주 간단한 방법으로 내부 구조가 깨질 수 있으므로 아래의 몇 가지 규칙을 준수해야 한다.
- SMART datagrid Grid 모듈을 적절하게 사용하기 위한 몇가지 규칙
- 모든 클래스는 DLBase 클래스를 계승한다.
- 클래스는 개념적으로 속성(property), 메소드(method), 그리고 콜백 이벤트(event)들로 구성된다.
- 하나의 속성은 getter와 setter를 가질 수 있다. 읽기만 가능한 속성은 setter가 없다.
- 속성의 getter 이름은 속성 이름과 같다. setter 이름은 속성 이름 앞에 "set"이 붙는다.
예) GridHeader minHeight 속성의 getter는 GridHeader.minHeight(), setter는 setMinHeight().
예) GridHeader visible 속성의 getter는 GridHeader.visible().
var h = grid.header().minHeight();
grid.header().setVisible(!grid.header().visible());
속성들은 DLBase.assign 함수를 이용해 configuration 객체로 값을 변경할 수 있다.grid.header().assign({ minHeight: 30, visible: true });
assign 메소드는 대부분의 객체 속성 setter 내부에서 호출된다.grid.setHeader({ minHeight: 30, visible: true });
assign 매개변수로 기본 자료형(Number, Boolean, String) 값을 지정하면 객체의 기본 속성으로 지정된다.기본 속성은 각 클래스 API 문서에 설명된다. 기본 속성이 없는 경우 assign 호출은 무시된다.grid.header().assign(true);
혹은,grid.setHeader(true);
속성들은 DLBase.getProperty, getProperties, setProperty, setProperties를 이용해 속성 경로로 접근할 수 있다.var visible = grid.getProperty('header.visible');
grid.setProperty('header.visible', value);
위 기능을 사용하기 위해서 속성 이름에 "."이 포함돼서는 안된다.이벤트 콜백의 이름은 "on"으로 시작한다.grid.onCurrentChanged = function (grid, newIndex) {};
밑줄이나 "$" 문자로 시작하는 변수는 절대로 보관하거나 수정해서는 안된다.밑줄이나 "$" 문자로 시작하는 함수나 메소드는 절대로 호출해서는 안된다.Api 문서에 공개되지 않은 메소드나 속성을 사용해서는 안된다.Javascript의 타입 융통성은 장점이 될 수도 있지만, 업무용 시스템을 개발하는 데 있어서는 큰 위험 요인이 될 수 있다. Api에 명시된 매개변수나 반환값의 자료형들을 반드시 따라야 한다.