반응형
jface

jface

    대용량 테이블 조회가 가능한 Nattable 예제 실행 방법

    TableViewer로는 대용량 데이터를 가져오는데 한계가 있다. 그래서 이클립스에서 제공하는 nattable을 사용하면 조금 더 빠르게 대용량 데이터를 가져올 수 있다. 그 nattable의 예제와 소스코드를 볼 수 있는 방법을 소개한다. 첨부된 파일 두개를 모두 다운 받고 cmd 창에서 다음 명령어를 실행시킨다. java -cp org.eclipse.swt.win32.win32.x86_64-4.3.jar;NatTableExamples-0.9.0.jar org.eclipse.nebula.widgets.nattable.examples.NatTableExamples 관련 주소https://eclipse.org/nattable/documentation.php?page=getting_started

    Menifest 파일 설명

    Menifest Dependencies 페이지1. Menifest는 플러그인들의 의존관계를 표시Require-Bundle: org.eclipse.ui,Org.eclipse.core.runtime 이 뜻은 해당 두개의 플러그인에 현재 플러그인이 종속된다는 것을 의미한다.해당 의미는 컴파일시 결정되는 종속성이 아닌 플러그인의 실행시에 사용되는 종속성이다.실행 중 참조해야 할 플러그인이 어떤 것인지 확인한다. 클래스 로드 중 Require-Bundle에 명시된 항목 중 클래스를 찾을 수 없을 경우 NoClassDefFoundError 예외가 발생한다. Require-Bundle: org.eclipse.ui,Org.eclipse.core.runtime;resolutoin=optional // 없어도 실행되는것(..

    Action 클래스 살펴보기

    필요한 액션을 구현하기 위해서 action클래스를 상속받아서 구현한다. Action 클래스의 메소드 Run() - action에 해당하는 이벤트 처리 수행Action() - 디폴트 생성자Action(String, ImageDescriptor) - text 필드를 생성하고 이미지를 action에 연결하는 생성자Action(String, int) - TEXT와 STYLE 필드를 설정하는 생성자. ImageDescriptor 객체는 이미지가 아니고 이미지를 생성하기 위해 필요한 정보를 가진 객체이다. getStyle() - STYLE 필드를 반환한다.setEnabled(boolean) - ENABLED 필드를 설정한다.getEnabled() - ENABLED 필드를 반환한다.setChecked(boolean)..

    rcp프레임워크의 shell객체의 이벤트 처리 설명

    Shell 객체는 이벤트를 위젯에 보내고 위젯은 이정보를 리스너로 불리는 인터페이스로 전달하고 리소드 메소드 중에 동작을 처리하는 이벤트 핸들러를 호출한다. 어댑터어댑터는 추상클래스로서 Listener 인터페이스를 구현하고 필요한 각 메소드의 기본적인 구현을 제공한다.필요한 메소드만 작성하면 된다.(리스너로 코딩하면 필요하지 않은 부분도 코딩해야 한다.)즉, 위젯을 리스너가 아닌 어댑터와 연결한다면 조금더 편리하다. 케이스 1.리스너로 코딩하기Button.addMouseListener(new MouseListener(){Public void mouseDown(MosueEvent e){Clkdevent();} 어댑터로 코딩하기Button.addMouseListener(new MouseAdapter(){Pu..

    event doit 설명

    Public void close(Event event) {Event.doit = false; // event가 일어나지 않게 지정 If(true)Event.doit = true;// 어떤 조건에서만 true로 변경 }

    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 인터페이스를 구현한다...

    Drag & Drop 구현 방법

    어플리케이션에 항목 드롭하기등록된 컨트롤에 데이터를 올려 놓을 경우 데이터를 받아 들일 수 있으며, 이때 DropTarget의 인스턴스를 사용한다.DropTarget은 위젯이 선택할 수 있는 데이터의 유형과 그 위젯에서 수행하기로 공인된 동작, 두 가지 모두 저장할 수 있다. 운영체제가 이러한 정보를 사용하여 항목이 해당 위젯을 지나갈 때 그 항목을 놓을 수 있는지에 대한 가시적인 피드백을 제공한다.우선 타겟을 등록하면, DropTargetListener가 DropTargetEvent를 받으며, 이 이벤트는 사용자가 컨트롤내에 어떤 것을 놓을때 발생한다. 연산 상수설명DROP_COPY 항목을 컨트롤 안이나 밖으로 드래그 할 때 복사한다.DROP_MOVE마우스를 놓은 위치로 항목을 이동시킨다.DROP_LI..

    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..

    JFace Dialog에서 레이아웃 설정으로 버튼 바 숨기기

    JFace Dialog에서 레이아웃 설정으로 버튼 바 숨기기 protected void createButtonsForButtonBar(final Composite parent){ GridLayout layout = (GridLayout)parent.getLayout(); layout.marginHeight = 0; }

    java GUI 툴 SWT vs Swing vs AWT

    자바에서 사용되는 그래픽 유저 인터페이스(GUI)툴중 대표적인 종류는 3가지이다. AWT SWING SWT/JFACE 각각 마다 동작하는 방식이 다르기 때문에 장단점이 다르다. 서로의 특징을 알아보자 1. AWT- Abstract Windows Toolkit (AWT)는 오리지널 자바의 GUI툴킷- 자바의 런타임의 일부로 안정되고, 추가 설치가 필요 없음- 대개의 경우 리소스관리를 프레임워크에서 처리- UI 쓰레드를 신경쓰지 않아도 됨 (그러나 성능의 문제가 됨)- 콘테이너 없이 콤포넌트 생성 및 콘테이너 변경 가능- 풍부한 그래픽 환경 제공- 각 OS별 최소한의 공통 기능의 wrapper를 구현함으로써 제한적 기능을 제공- 일반적으로 사용되는 테이블, 트리, 진행 바 같은 것은 애플리케이션 레이어에서 ..

    eclipse 범용 UI JFace 소개

    Jface - SWT는 윈도우에서 정의한 위젯에 대한 접근을 제공한다면, JFace는 범용 UI 개념을 위한 구조와 편의기능을 제공한다. - JFace는 SWT와 다르게 윈도우 시스템에 독립적이며 SWT와 동시에 활용될 수 있다. - JFace는 UI 툴킷 컴포넌트의 모든 영역을 담당한다. 이미지, 폰트, 레지스트리 텍스트 지원, 대화창 ,환경설정, 마법사를 위한 프레임워크, Action, Viewer같은 것들을 담당한다.

    RCP프레임워크 재료인 SWT 소개와 단점

    SWT swt 소개 SWT는 각 운영체제마다 운영체제 고유의 UI 모양과 동작을 제공하는데, 실제로 UI를 운영체제의 자원을 이용하여 구성하고, 그 동작을 운영하는 것도 운영체제이기 때문이다. 예를 들어 윈도우즈용 SWT는 GDI(Graphic Device Interface. 마이크로 소프트 윈도우즈의 어플리케이션 개발 API)자원을 이용하여 UI를 만든다. swt 단점 - 자원의 한계 단점으로, 운영체제 자원을 추상화한 SWT 객체는 사용이 끝나면 dispose() 메서드를 호출해 반드시 운영체제에게 돌려주어야 한다. 만약 너무 많은 수의 운영체제 자원을 할당 받으면, 실행중인 다른 응용프로그램까지 악영향을 미칠 수 있고, 운영체제가 더이상 자원을 할당하는 것을 거부할 수 도 있다. swt 단점 - 메..

    RCP 프레임워크의 Extension and Extension Points

    Extension and Extension Points 모듈 소프트웨어를 만드는 기본적인 규칙은 컴포넌트간 커플링을 피하는 것이다. 만약 컴포넌트가 강력하게 통합되어 있다면, 서로 다른 설정들을 조작하거나 시스템의 변화없이 다르게 구현된 컴포넌트로 교체하는 것이 힘들게 된다. 이클립스에서 커플링을 줄이는 것은 extensions / extension points(이하 확장/확장지점)를 통해서 이루어진다. - Extension자신의 플러그인에 다른 플러그인(view, editor)등을 사용하여 기능적으로 확장하고 싶은경우에 플러그인의 extension에 정의를 한다. - Extension pointsextension point는 extension이 반드시 따라야 하는 자바 인터페이스와 xml을 조합한 명세..

    현재 화면의 활성화된 shell 얻는 방법

    PlatformUI.getWorkbench().getDisplay().getActiveShell()

    Tableviwer와 편집모드, 컨텍스트 메뉴 생성

    package Table; import org.eclipse.jface.action.Action;import org.eclipse.jface.action.IAction;import org.eclipse.jface.action.MenuManager;import org.eclipse.jface.viewers.CellEditor;import org.eclipse.jface.viewers.ColumnWeightData;import org.eclipse.jface.viewers.ComboBoxCellEditor;import org.eclipse.jface.viewers.ICellModifier;import org.eclipse.jface.viewers.ILabelProviderListener;import org...

    JFace의 treeList 예제

    Ch8List.Javapackage Ch8; import java.util.ArrayList;import java.util.List; import org.eclipse.jface.viewers.IStructuredContentProvider;import org.eclipse.jface.viewers.LabelProvider;import org.eclipse.jface.viewers.ListViewer;import org.eclipse.jface.viewers.ViewerFilter;import org.eclipse.jface.viewers.ViewerSorter;import org.eclipse.jface.viewers.Viewer;import org.eclipse.swt.SWT;import org.ec..

    Viwer의 종류와 프로바이더 종류 및 설명

    Viewer - ContentViewer, StructuredViewer이 존재한다.1. ContentViewer - 다양한 인터페이스를 활용해서 도메인 객체 형태를 유지하면서 데이터를 다룬다. 이들 인터페이스는 JFace 관례에 따라 이름 앞에 I가 붙는다.- StructuredViewer는 ContentViewer에게 제공하는 데이터를 구조화 한다. 구조화하는 것은 넒은 범위를 의미하지만 필터링이나 정렬 같은 일반적인 작업을 실행하는 메소드들이 이계층에서 구현된다. 프로바이더(Provider)- 애플리케이션에 고유한 작업을 수행하여 위젯에서 사용가능한 데이터 부분을 만들어 낸다. - 리스트에서 도메인 객체를 나태내기위해 화면에 보여야 할 텍스트를 반환하는 일 등을 한다.1. LabelProvider-..

    JFACE TreeViewer 예제

    TreeViewer 메뉴- 모든 TreeViewr 구조의 예제를 제작해보았다. 1. Ch8TreeCompositepackage Ch8Tree; import java.util.ArrayList;import java.util.List; import org.eclipse.jface.viewers.ITreeContentProvider;import org.eclipse.jface.viewers.TreeViewer;import org.eclipse.jface.viewers.Viewer;import org.eclipse.swt.SWT;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.widgets.Composite; public class Ch8Tree..

    SashForm 소개와 예제

    SashForm은 이동이 가능한 경계선을 자식 위젯 사이에 생성함으로써 하나의 위젯을 늘리면 다른 한쪽이 감소하게 만들 수있다. Sash 클래스는 대부분 위젯처럼 org.eclipse.swt.widges패키지에 위치하지만 SashForm 크래스는 org.eclipse.swt.custom 패키지에서 찾을 수 있다. Public Ch3_SashForm(Composite parent){Super(parent, SWT.NONE); SashForm sf = new SashForm(this, SWT.VERTICAL);Sf.setsize(120,80); Button button1 = new Button(sf, SWT.ARROW | SWT.UP);Button1.setSize(120,40); Button button2 ..

    SWT의 Text와 StyledText

    SWT에서는 Text와 StyledText 두가지를 제공한다. Text는 여러 이벤트를 연관 시킬 수 있다.addModifyListener() // 텍스트 수정 리스너addSelectionListener() // 컨트롤 선택 리스너addVerifyListener() // 텍스트에 변화가 일어났을때 발생Append() // 추가Insert() 대체setSelection(), selectAll() // 선택setEchoCharacter() // 사용자가 타이핑 하는 문자 대신 보여줄 다른 문자열 지정setEditable() // 편집을 가능하게 하거나 불가능하게 한다.setFont() StyledText는 text에서 제공하는 모든 메소드를 제공하고 폰트, 텍스트 색상, 폰트 스타일 등으 ㅣ기능이 추가된다...

반응형