본문 바로가기

JAVA/JAVA(MEC)

gef의 구조 및 설계방법


먼저 gef를 구현을 하려면


1. 기본적인 베이스 workbenchadvisor와 graphicaleditor, editorinput이 있어야 한다.


이3개가 이루어져야 화면상의 ui board가 마련이 된다.



2. model을 구성한다.



3. model이 실제로 ui에 나오기위해 figure와 editpart가 필요로한다.



4. figure와 editpart를 관리하고 model과 figure,editpart간의 linking을 하기 위해 factory가 필요로한다.

(factory는 editpart패키지에서 클래스로 만든다.)



5. graphicalEditor 에서 내가 만든 factory를 쓰겠다는 선언을 한다.



6. 추가된 figure와 editpart에따라 팩토리의값을 변경시켜 적용시켜주어야 하고

graphicaleditor 클래스의 createentreprise(여기서는 예제로 설명한다.) 값도 새로만들어진 모델들을 적용시켜줘야한다.



7. 만들어진 figure와 model들을 움직이거나 조작하기위해 policy(commands) package를 만든다.


(컨트롤러 -> commands -> model -> view -> change)



8. action은 undo/redo/delete와 같이않게 model에서 작업하는것이 아닌 MyGraphicalEditor 그자체에서 작업한다.



9. outline이 안나올시에는 plugin.xml에서 extension탭에서 perspective에서 id와 class를 같은값으로 설정해줘야

perspective.class에서 인식을한다.!!!!!(매우중요)



10.template은 실제로 자기가 직접 만들진 않고 예를 들어 cpp template이 필요하면 구글에 

openshift template cpp처럼 써서 git안에 template폴더안에 json파일을 가져와서 쓴다.



















--------------------------------------------------------------------------------------------------------------------------------


1. 화면에 보여질 판 작업(MyGraphicalEditor)


2. 에디터input 작업


3. 모델만들고(말그대로 모델 어떤 구조체의 구조 보통 Node를 상속받음)


4. 피규어만들고(피규어는 화면에서 ui로 보여질때 크기나 위치같은 frame설정하는 곳)


5. part만들기(part에서 실제로 figure와 모델을 이용해 작업하는 공간)


6. command생성


7. policy생성 (command와policy는 한몸이라고 보면됨 policy에서 적절한 command를 찾아 날려주는거기때문에)

   + 약간 policy와 command간의 관계는 figure와 model간의 관계라 보면될듯


8. ~~contributer는 내가 이것을 쓰겟다고 거의 선언하는 곳


9. policy가 새로하나 만들어질때마다 각각 part들에게 알려줘야된다.


listener란 사용자가 ui안에서 변경이나 변화를 줬을때 그게 적용되서 나오게하기위해 필요한것


10. action 를 하려면contributor를 만들고 extension에서 contributor를 연결시켜주고

command설정후 command를 건들엿으니 policy도 설정

바뀐policy를 적용하기위해 part 수정

만약delete에 대한 command이면 지우기전과 후가 있어야되니 node도 수정


11. digital twin은 outline과 outline안의 tree는 구현이안됬고

miniature view도 구현안됫고 property sheet도 구현안됫음



12. 오른쪽마우스로 기능을 구현하려면 provider가 필요함 이걸 context menu라 한다.


13. wizard같은 경우도

wizard생성하고 command생성하고

action만들고 그액션을 editor에 적용하고

이action이 오른쪽마우스에 나오게하려면 provider생성해주고

마지막으로 actionbarcontributor에 적용시켜주고


그 후 commnad새로 추가됫으니 policy도 새로추가해주고 policy바뀌엇으니

part도 수정해주고 그리고 노드에도 적용시켜주고



14. 팩토리란 어떠한 part들을 관리하기 위해 생성된것들이라 보면 편한듯??


팩토리 생성과정 : 팩토리만들고 command만들고 node건들고 command를 만들엇으니 

policy 건들고 figure건들고(? 이건 왜건드는지는 모르겟다.) editor에 적용


이팩토리가 이제 그 왼쪽에 나오는 팔레트가될것이며 그팔레트안에 무언가를 넣고싶을때

이팩토리에서 작업을 하면됨.







==========================================================================




정리를 해보면 

ㄱ. action

1. action을 하려면 contributor가 있으면 거기에 새로생기는 action을 추가

없다면 contributor를 만들고 이 contributor를 xml파일에서 extension에 연결시켜줘야됨


2. 기본적으로 action을 구현하려면 command가 있어야되고 command를 새로 생성후

command를 건들였으니 policy도 새로만들던가 건들던가 해야됨


3. 바뀐policy를 적용하기위해 part를 수정하거나 바뀐 policy를 part에 적용시켜야됨


4. 만약 바뀐policy에 의해 model의 구성이 바뀌어야된다면 model에 직접들어가 구조를 만들어줘야된다.


5. 마지막으로 그게 화면에 적용이되야하니 editor에 적용


ㄴ. 오른쪽마우스구현

1. 오른쪽마우스를 클릭했을때 먼가를 뜨는것을 context menu라 하고 이 구현이 동작하기위해서는 

provider라는것이 필요하다


ㄷ. wizard

1. wizard같은 경우도 action이랑 비슷하다. 먼저 wizard파일이나 패키지를 따로만들어서 wizard를 생성하고

2. 이를 동작할action을 생성->action을 생성하기위한 command생성-> command를 생성햇으니 policy도 새로만들기

-> part에 적용 ->오른쪽마우스로 나오게하려면 provider생성 -> contributor에 추가 -> editor에 적용


ㄹ. 팩토리

한ui에서 한공간에 먼가를 생성하고싶을때 팩토리를 먼저구현

팩토리란? : 여러part들과 상호작용하고 관리하기위해 만들어진 것.

생성과정 : 팩토리생성 -> command생성 -> policy생성-> model(여기 팔레트에선 Node)(구조)변화 -> 

-> figure변화(이건 왜건드는지는 모르겟는데 그냥 이것또한 model변화라고 보자) -> editor적용 




*****


listener란 사용자가 ui안에서 변경이나 변화를 줬을때 그게 적용되서 나오게하기위해 필요한것


*****

'JAVA > JAVA(MEC)' 카테고리의 다른 글

openshift template 제거(administer로 로그인)  (0) 2020.08.14
openshift origin  (0) 2020.08.14
mvc 개요  (0) 2020.08.14
gef 개요  (0) 2020.08.14
gef tutorial file  (0) 2020.08.14