머리속은 잉글리쉬를 받아들이려고 해도 제 눈은 받아들이지 않아 고생이 많습니다.
인생의 적.. 영어.. 를 이겨내고 예제를 따라해봤습니다.
저도 사실 EMF 와 GMF 를 정확하게 이해하지 못했습니다. 배워가는 과정에 포스팅을 한다능....
근데 진짜 15분 만에???
그냥 따라하기로만 구성을 하겠습니다. 해석은 딸리네요 =_=;;
우선 기본적으로 GMF SDK 가 설치되어 있음을 가정합니다. 환경인 가니메데 + GMF 2.1.0 입니다.
1. 프로젝트 만들기
우선 모델을 만들어야 하므로 Empty EMF Project 를 선택하고 Next 를 누릅니다.
프로젝트 이름은 적당하게 작성해주시고요~
프로젝트는 이런식으로 구성이 됩니다.
2. 모델 소스 구성하기
주석에 왜 저렇게 썼을까 하는 것은 EMF 에 대한 지식이 필요합니다.
애석하게도 아직 그런 지식이 없어서....
[Llisting 1. ShapeDiagram.java]
[Listing 2. Shape.java]
[Listing 3. RectangularShape.java]
[Listing 4. EllipticalShape.java]
[Listing 5. Connection.java]
3. 모델 생성하기
New > EMF Model 을 선택하여
Next 를 클릭합니다.
프로젝트의
model 디렉토리를 선택하고 파일명을
model.genmodel 로 설정한 후에 Next 를 누릅니다.
Annotated Java 를 선택하고
Next 를 누릅니다.
아래에 보이는 것 처럼 패키지와 ecore 파일이 나오면 Finish 를 눌러서 완료를 합니다.
제너레이트 된 모델의 구조는 아래와 같습니다.
genmodel 의 최상위인
Model 을 오른쪽 클릭하시면
Generate Model Code 가 있습니다.
코드를 생성해줍니다. 왜냐구요??? EMF 에서.. 그렇게 하더라구요 -_ㅜ...
누가 깔끔하게 설명해주시면 좋을테지만 지금은 따라하는게 목적이므로~~
impl,
util 패키지가 추가되었으며
~Factory 클래스와
~Package 클래스가 추가되었습니다.
이제는
Generate Edit Code 의 메뉴를 통해 edit 프로젝트를 생성합니다.
결과물~
이로써 모델과 관련된 작업이 완성되었습니다.
4. GMF 정의...
1) Develop graphical definition
Simple Graphical Definition Model 을 새로 만듭니다.
파일 이름과 경로를 아래와 같이
model 디렉토리에
model.gmfgraph 로 설정한 후에
Next...
Find In Workspace 버튼을 통해서
shape.ecore 파일을 선택하고
Root Diagram Element 는
ShapesDiagram 으로 선택하고 Next...
첫번째 체크박스는 Node로 추정되고 두번째 체크박스는 Link, 세번째는 속성으로 추정됩니다.
적당하게 체크되어 있네요~
생성된 model.gmfgraph 는 다음과 같은 구조를 갖습니다.
일단은 복잡하니깐 나중에 알아보도록 합니까? ㅋㅋㅋ
2. Develop tooling definition
이번에는
Simple Tooling Definition Model 을 새로 만듭니다.
model 디렉토리에
model.gmftool 파일로 저장합니다.
아까 쪼 위에서 한 것처럼 설정한 다음에
Next 합니다.
툴에 어떤 요소들이 포함될 것인지 체크하는 것입니다.
아래와 같이 설정하고
Finish 합니다.
툴에 대한 정의가 아래와 같이 되었네요. Default Image 는 뭔지;;
3. Develop mapping definition
Guide Mapping Model Creation 을 새로 만듭니다.
model 디렉토리에
model.gmfmap 을 설정합니다.
Select Domain Model 은 벌써 세번째 하는거네요 ㅋㅋㅋ
Diagram Palette 설정도 아래처럼 맞춰줍니다.
Diagram Canvas 도 아래와 같이 설정해줍니다.
Mapping 은.... 쥐뿔도 모르는데 그냥 시키는대로 해야겠죠??
생성되어진
model.gmfmap 입니다.
두둥~
Create generator model 메뉴를 선택합니다.
역시나 경로는
model 디렉토리에
model.gmfgen 으로 설정합니다.
이제는... 스킵...
어멋 에러가 발생했네요... diagramLabel 에 이상이 있다는 오류를 내뱉네요.. 쩝;;;
저 엘리먼트의 문제인 것 같습니다. 선택을 하고 프로퍼티를 적당하게 설정해줍니다.
Diagram Label 을 변경해주는 작업을 처리합니다. (Elliptical 이면 Elliptical 쪽으로 설정)
나머지 유사하게 생긴 놈도 이와같이 수정해줍니다.
이대로 끝이 난게 아닙니다. Node Mapping 과 Link Mapping 의 속성이 좀 섞여 있습니다.
꼼꼼하게 재대로 맵핑이 되었는지 확인해야 합니다.
(Rectangular 인데 툴이 Connection 으로 설정된 것도 있습니다.)
다시
Create generator model 메뉴를 선택하고 위에서 했던대로 하면 이와같은 화면이 나옵니다.
model.genmodel 을 선택하고
Next ~~
RCP Application 으로 만드실 것이면 체크를 하시고~
Finish 를 눌러줍니다.
생성된
model.gmfgen 파일을 열고 우클릭 메뉴의
Generate diagram code 를 선택합니다.
성공했다는 메세지를 보여주네요...
그러면 이렇게 diagram code 가 생성되었습니다.
plugin.xml 을 열고
Launch an Eclipse application 을 선택합니다.
새로운 Application 에서
Model Diagram 을 새로 만듭니다.
파일명은 아무렇게나... (이제 좀 지쳐가능...)
아래와 같이 모델링 툴이 만들어졌습니다. (짜잔~~)
흙.. 완전 낚였습니다. 15분은 무슨... 1박 2일 걸렸네요...
글구 튜토리얼대로만 하면 각 definition 에서 연결들이 재대로 설정이 안되어서 나오지도 않습니다.
제가 GMF 를 건들인 이유는 GEF 의 차기버전인지 알았는데 그냥 모델링 툴 개발이었습니다... (좌절...)
GEF 만 계속 파고 나갈래요 -_ㅜ