먼저 model과
plug-in을 사용하는 방법을 알아야 사용이 가능하다는 점을 먼저 말해두겠다.
혹시나 하는 맘에 model과
plug-in을 사용하는 방법을 간단하게 설명을 하면,
1.
XXX_gui.magik
-
gui가 뒤에 붙는넘은 :model에서 상속을 받아서 사용한다.(클래스 이름은 내가 그냥 정의했다. 꼭 따르지 않아도 된다.)
-
이넘은 주로 화면을 꾸미는 GUI를 담당하는
넘이라고 생각하면 아~~~주 좋다.
-
GUI를 담당하니 화면을 꾸며야겠다. 그럼 이넘을 꾸미기 위해서는 activate_in() 메소드를 반드시
사용해야 한다. Activate_in() 메소는 Container를
파라메터로 받는다.
2.
XXX_plugin.magik
-
Plugin이 뒤에 붙는넘은 :plugin에서 상속을 받아서 사용한다.(이것은 암묵적으로 정의된듯하다. product소스를 보면 대부분이 이걸로 되어있다)
-
이넘은 주로 프로덕트 화면 레이아웃 구성에 사용한다. 프로퍼티, 액션메소드, 프레임웍 데이터버스등의 사용을 하도록 구성하면 된다.
-
Plug-in형식으로 사용자 GUI를 사용하고자 한다면 build-gui()를 통해서 화면에 그리면
된다. 위의 model과 잘 엮어서 사용하면 각 클래스를
구분하여 처리 영역을 나누어서 코딩이 가능하고, 클래스의 재사용을 활용할 수 있다.
-
프로덕트에 클래스를 붙이기 위해서는 config.xml과
gui.xml을 사용한다.
자
이제 본론으로 들어가서 tab_box에 의 이름을 달기 위해서는 config.xml과 gui.xml에 만들어진 클래스를 붙여보자..
첨에 그냥 붙이면 탭의 이름이 그냥 “Tab”이라는 이름으로 보여질꺼다
이놈의 이름을 바꾸기 위해서는 몇가지만 고치면 된다.
먼저 아까 model에서 상속받은
XXX_gui 클래스를 살펴보면 Activate_in 메소드가 보일꺼다. 그 안에 화면구성에 필요한 코딩을 전부 했을 거다.
그 소스코드 안에서 파라메터로 받은 container(frame)로부터
최초 rowcol을 생성한 넘이 있을것이다.(이게 없으면
화면구성이 안된다.)
그넘을 메소드의 맨 마지막에 리턴을 해줘라
그리고, plugin으로부터 상속받은 XXX_plugin클래스로 가자
Build_gui메소드가 보일것이다.
이놈안에 위와 같이 코딩하면 끝난다.
model로부터 상속받은 클래스 인스턴스를 build_embedded_gui를 통해서 화면을 구성하고, 리턴받은
객체에 tab_label에 이름을 주면 그 객체를 리턴하면 된다는 거다. build_embedded_gui 메소드는 model이 가지고 있다.
참 쉽죠잉~~
'Development > GE Smallworld' 카테고리의 다른 글
나의 데이터셋(Dataset) 생성기 (0) | 2011.11.01 |
---|