전체 글
JFace TreeViewer설명
ViewerViewer는 MVC 패턴을 가지고 있다.Viewer의 하위 클래스인 ContentVier와 StructuredViewer가 있다. ContentViewer는 다양한 인터페이스를 활용해서 도메인 객체 형태를 유지하면서 데이터를 다룬다. 이들 인터페이스는 이름 앞에 I를 붙인다. 이러한 인터페이스는 확장점을 표시하며 이를 사용하여 애플리케이션의 맞춘 로직을 프레임워크에 넣을 수 있다. StructuredViewer는 ContentViewer에게 제공하는 데이터를 구조화 한다. 구조화는 필터링, 정렬 기능 같은 일반적인 작업을 실행하는 메도드들이 이 계층에서 구현된다. 각 위젯인 Tree, List, Table 등은 이에 맞는 Viewer의 하위 클래스로 ListViewer나 tableViewer..
IWizardPage 인터페이스
Jface는 IWizardPage 인터페이스를 사용하여 마법사의 페이지 하나를 표현한다. getName() : 위자드의 유일한 이름을 가진다.getNextPage(), getPreviousPage() 이 메소드들은 다음이나 이전의 페이지로 이동한다.isPageComplete() 사용자가 해당 페이지에서 필요한 모든 내용을 채웠는지 알아낸다.canFlipToNextPage() : 다음 버튼을 사용할 수 있는지 체크 한다. 마법사를 담는 부분은 Iwizard 인터페이스이고 각 페이지는 wizardpage가 나타낸다. 마법사 컨테이너 마법사 컨테이너는 하나 이상의 마법사에 대한 호스트로서의 역할을 수행한다. Dialog SettingDialogSetting은 IDialogSettings 인터페이스를 구현한다...
Draw2d 설명
Draw2d 툴은 사용자가 좋아하는 모든 외형과 기능을 포함함 GUI 컴포넌트를 만들 수 있게 한다. Draw2d의 기본 클래스클래스기능유사 SWT 클래스LightweightSystem이미지를 만들기 위한 상위 레벨 환경DisplayFigureLightweightSystem 내에 컴포넌트 또는 컨테이너Shell, Control, CompositeGraphicsFigure 내에 그래픽 영역을 제공GCGC LightweightSystem 클래스는 Display 클래스와 유사하다. 시각적으로 보여주는 것은 없지만, 이벤트 핸들링을 제공하고 외부환경과상호 작용을 하는 역할을 한다. LightweightSystem 클래스는 운영체제와 동 떨어진 계층에서 작동한다. Draw2d의 기본적인 구조는 Canvas -> ..
Drag & Drop 구현 방법
어플리케이션에 항목 드롭하기등록된 컨트롤에 데이터를 올려 놓을 경우 데이터를 받아 들일 수 있으며, 이때 DropTarget의 인스턴스를 사용한다.DropTarget은 위젯이 선택할 수 있는 데이터의 유형과 그 위젯에서 수행하기로 공인된 동작, 두 가지 모두 저장할 수 있다. 운영체제가 이러한 정보를 사용하여 항목이 해당 위젯을 지나갈 때 그 항목을 놓을 수 있는지에 대한 가시적인 피드백을 제공한다.우선 타겟을 등록하면, DropTargetListener가 DropTargetEvent를 받으며, 이 이벤트는 사용자가 컨트롤내에 어떤 것을 놓을때 발생한다. 연산 상수설명DROP_COPY 항목을 컨트롤 안이나 밖으로 드래그 할 때 복사한다.DROP_MOVE마우스를 놓은 위치로 항목을 이동시킨다.DROP_LI..
이벤트로 받은 키보드 멀티 인식 방법
(event.stateMask & SWT.CTRL) != 0 && event.keyCode == 'p' Ctrl + P
RCP 확장점 소개
확장점은 기능 단위를 느슨하게 결합시키기 위한 메커니즘으로 이클립스 전반에 걸쳐 사용된다. 하나의 플러그인은 플러그인 내역서(Menefiset.MF)에서 확장점을 선언하며. 다른 개발자가 사용할최소한의 인터페이스와 관련 클래스를 노출시킨다. 다른 플러그인은 확장점에 대한 확장을 선언하고 적절한 인터페이스를 구현하며제공된 클래스를 기반으로 구성 요소를 참조하거나 구축한다. 각 확장점은 플러그인의 식별자와 마침표 뒤에 알파벳,숫자, 밑줄(_)로 이루어진 단순 식별자를 붙여 구성한 유일한 식별자를 갖는다.확장점을 선언할때는 단순식별자만을 사용한다. 확장점에 대한 확장을 선언할때는 확장점에 대한 전체 식별자를 사용한다. 확장점의 사용되어야할 스키마 정의를 나타내는 exsd모든 확장점은 확장점이 어떻게 사용되어야..
rcp toolbar에서 label등 각종 contribution item 생성방법
ToolBarManager manager = new ToolBarManager(SWT.FLAT | SWT.HORIZONTAL); LabelContributionItem labelItem = new LabelContributionItem("myLabelId"); //Label ContibutionItem 생성 manager.add(labelItem); TextContributionItem textItem = new TextContributionItem("myTextId"); manager.add(textItem); ToolBar toolbar = manager.createControl(parent); return toolbar; 출처:
rcp dialog 화면 가운데 출력
public Point getCenterPoint() { Shell parentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); Rectangle shellBounds = parentShell.getBounds(); return new Point(shellBounds.x + shellBounds.width / 2, (shellBounds.y + shellBounds.height) / 2); }Then simply override the getInitialLocation method of Dialog; @Override protected Point getInitialLocation(Point initialSize) { Poin..
Eclipse GEF 개념 설명
1. GEF(Graphical Editing Framework)?- 말그대로 framework. 그래픽 쪽을 다루기 위한 framework. 모델을 그래픽적으로 다룰 때 쓰는 것. 기본적으로는 MVC(Model - View - Controller) 체제에 맞추어져 있다. 어떠한 정보들은 Model이 갖고 있고, 그것을 화면에 보여주는 역할을 하는 것은 View 쪽에서, 관리하는 것은 Controller 쪽에서 하는 형식이다 각 부분별로 다음 부터 보자. 2. Model- GEF 에서의 Model 은 기본적으로 Object 형으로 처리한다.그리고 모델은 항상 최상위 모델의 child 관계로 존재해야 한다. 예를 들면 최상위 모델을 보여주는 화면의 배경이라고 하면, 모든 모델은 이 배경의 child 로 존재..
JFace Dialog에서 레이아웃 설정으로 버튼 바 숨기기
JFace Dialog에서 레이아웃 설정으로 버튼 바 숨기기 protected void createButtonsForButtonBar(final Composite parent){ GridLayout layout = (GridLayout)parent.getLayout(); layout.marginHeight = 0; }