분류 전체보기 375

Graphical Editing Framework으로 Eclipse 기반 애플리케이션 구현하기

출처 :http://www.ibm.com/developerworks/kr/library/os-gef/index.html Graphical Editing Framework으로 Eclipse 기반 애플리케이션 구현하기GEF 시작하기난이도 : 초급Randy Hudson, Software developer, IBM 2003 년 7 월 29 일Graphical Editing Framework (GEF)을 사용하여 Eclipse 기반 애플리케이션을 구현하는 초기 단계를 설명한다. GEF는 스테이트 다이어그램, 액티비티 다이어그램, 클래스 다이어그램, AWT용 GUI 빌더, Swing과 SWT, 프로세스 플로우 에디터 등 Eclipse용 다양한 애플리케이션을 구현하는데 사용되었다. Eclipse와 GEF 모두 오픈 ..

Eclipse 2007.04.01

GEF - Editor with Palette

팔레트를 가지고 있는 에디터를 생성해보도록 하자. 에디터는 두 가지 설정을 해야 하는데, 첫 번째는 Palette의 정보를 컴퓨터에 저장을 해야한다. 저장을 하는 이유는 에디터의 설정을 변경후 다음에 다시 에디터가 열릴게 되면 저장했던 상태를 다시 보여주기 때문이다. 저장되어야 하는 내용은 palette의 위치와 너비, 상태값 등 몇 가지가 된다. 그리고 두번째로는 EditDomain을 설정해야 한다. EditDomain의 역할은 Command 와 Palette등을 관리하는 역할을 한다. Command을 관리한다는 의미는 사용자의 이벤트에 따라 실행해야 하는 Command을 스택으로 관리를 하고, 여기서 Undo / Redo등을 활성화 혹은 비활성화 등을 하게 된다. GEF에서 제공하는 에디터는 다음 2..

Eclipse 2007.03.31

GEF - 원그리기

생성한 에디터에 원을 그려보도록 하자. GEF는 MVC패턴으로 구현을 해야한다. 즉 원이라는 모델이 있고, 이를 그리기 위한 Draw2d의 Figure가 있다. 마지막으로 이를 연결하는 Editpart 가 있어야 한다. GEF의 Help에 있는 GEF 구조에 관한 이미지이다. 사용자로부터 특정 Request 즉 새로 그리거나, 움직이거나등의 Action을 하게 되면 Controller와 Model, View가 유기적으로 돌아가게 된다. 이때 주된 역할은 Controller가 하게 된다. 간단하게 원을 그려보도록 하자. 1.Shape 원에 해당하는 모델을 생성한다. 아직 좌표나 색과 같은 정보는 필요하지 않기 때문에 빈클래스를 생성하였다. Shape는 앞으로 진행하면서 많은 변경사항이 생기게 됨으로 주의깊..

Eclipse 2007.03.31

GEF - Diagram 생성

원을 줄이기 위해서는 에디터의 그려지는 영역을 담당한 Diagram이 필요하다. Diagram은 도화지의 역할을 한다고 생각하면 된다.그리고 원은 그 위에 특정 크기만큼 그리면 되는 것이다. Diagram위에 그려지는 원은 Diagram에서 알고 있어야 한다. 그래야 새로고침이 되거나, 자식이 이동을 했을때, 다시 그려질 수 있다. 이 목록은 Diagram에서 List로 관리를 한다. 1.ShapesDiagram Diagram의 가장 큰 역할은 그려지는 개체를 관리하는 것이다. List의 순서는 그려질때 중요하게 사용된다. 즉 원과 원이 겹칠때 어느 원이 아래로 오게 할지는 List의 순서에 따라 정해진다. public class ShapesDiagram { private List shapes = new..

Eclipse 2007.03.31

GEF - XYLayout

XYLayout을 잠시 살펴보도록 하자. 시작위치와 width, height 이렇게 해서 4개의 좌표가 필요하다. 이를 모델에서 저장하기 위해서는 시작위치를 가진 point 개체와 width, height를 저장하기 위한 Dimension 개체를 두개를 사용해도 되지만, 좀더 편한 방법은 4개의 좌표를 저장하기 좋은 개체인 Rectangle을 사용하면 된다. Rectangle은 필요한 4가지 값을 가질수 있다. 좌표를 가지는 개체는 부모가 아닌 자식모델이 되어야 한다. 따라서 shape에 Rectangle을 관리하도록 변경을 한다. Draw2D에서 Figure는 서브 Figure를 가지고 있는 형태로 그려지게 된다. 즉 위의 그림처럼 A는 B, C를 가지고 있고, B는 D, E를 가지고 있을 수 있다. ..

Eclipse 2007.03.31

텔넷을 구현해보자. - 1차

텔넷을 이클립스로 구현을 해보자. 텔넷을 어떻게 다 구현하나 고민하시는 분을 위해서 오픈소스를 사용하여 단순히 이클립스에서는 데이타의 전송만을 구현해보는 것을 목표로 한다. 텔넷 모듈을 제공해는 사이트에서 다운을 받아야 한다. http://jakarta.apache.org/commons/net/ 여기서 commons-net-1.4를 다운을 받는다. 구현해야하는 화면은 다음과 같다. 상단에 접속하고자하는 서버와 포트 그리고 연결 및 연결을 끊는 버튼이 위치하게 된다. 하단에 흰화면은 서버로부터 전송되는 데이타를 보여주게 된다. Step 1 : 화면 구성 우선 만만한 화면을 만들어 보자. 이클립스의 뷰를 확장시켜 만들어 보다. 뷰의 화면이 만들어지는 곳은 createPartControl 이다. public..

Network 2007.03.31

상단에 탭이 있는 Dialog 만들기

위자드와 등록정보창외에 기본적으로 제공해주는 Dialog등은 이클립스 프로젝트에서 상당히 많이 쓰입니다. Dialog 상단에 탭이 있는 경우, 매번 다이얼로그마다 탭설정해주는 작업을 해주지않고 편하게 마치 위자드에서 스텝이 자동으로 생기는 것처럼 해주도록 해보겠습니다. 간단한거지만, 설명이 쉽지 않아 그림을 보도록 하겠습니다. 그림을 보면 상단에 탭이 2개가 있습니다. 2개의 탭은 경우에 따라 3개 혹은 4개가 될 수 있습니다. 시퀀스 다이어그램을 보면 트리에서 등록정보를 보면 TabDialog를 생성을 하고, PageFactory에서 페이지 목록을 얻은후 실제 UI가 있는 NamePage를 생성을 하도록 합니다. 확인을 누르면 NamePage의 저장 메소드를 실행합니다. TabDialog는 Dialog..

Eclipse 2007.03.31

VerifyListener로 숫자만 입력받는 방법

VerifyListener을 이용하면 사용자가 입력하는 순간에 입력허용여부를 체크할 수 있다. JDK 1.4 부터 추가된 matches 메소느를 사용하면 여러가지 패턴을 사용가능하다. JDK 1.3에서 사용하는 방법도 있지만, 이클립스가 1.4 이상에서만 돌아가기 때문에 의미는 없으리라 생각된다. Text numericText = new Text(parent, SWT.NONE);numericText.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { e.doit = e.text.matches("[\\-0-9]*"); } }); 소스를 보면 Text 개체를 만들고, Text개체에 Listener를 등록하면 된다...

Eclipse 2007.03.31

Customizing Eclipse RCP applications, Part 1: Techniques to use with SWT and JFace

출처 :https://www6.software.ibm.com/developerworks/education/os-eclipse-rcp1/index.htmlCustomizing Eclipse RCP applications, Part 1:Techniques to use with SWT and JFaceAbout this tutorialThis tutorial will explain a number of UI elements that can be changed in Eclipse RCP, JFace, and SWT. Along the way, you will learn about basic changes you can make, such as fonts and colors. You will also learn ..

Eclipse 2007.03.28