인터페이스 |
설명 |
IErrorContext |
IStatus 메시지를 구성하고 플러그인 로그에
기록합니다. |
Bundle |
부분의 구현이 포함된 플러그인
번들입니다. IErrorContext의 구현과 같은 다른 컴포넌트에
자동으로 컴포넌트의 플러그인에 대해 알립니다. |
IContainer |
사이트의 컨테이너입니다. 이 오브젝트는
다른 사이트 인터페이스에 대해 조회될 수 있으며, 이는 부분이 자신의
사이트에서 하위로 모든 것을 경로 재지정하거나 다중화하려는 경우
유용할 수 있습니다. |
INameable |
부분이 이름, 아이콘, 도구 팁 및 컨텐츠
설명을 설정하도록 합니다. IWorkbenchPart의 다양한 get 메소드 및 리스너를
대체합니다. |
Composite |
부분의 상위 컴포지트입니다. 이 컴포지트는
다른 부분과 공유되지 않고 부분으로 동시에 삭제됩니다. 해당 부분은 레이아웃을
설정하고 이 컴포지트에 리스너를 첨부하도록 허용됩니다. |
ISecondaryId |
다중 인스턴스 보기로 사용될 경우
부분의 보조 ID를 리턴하는 인터페이스입니다. |
ResourceManager |
안전하게 이미지, 글꼴, 색상 및 기타 SWT
자원을 할당 및 제거합니다. 부분 간 동일한 자원을 공유하도록 하고 부분이
처리완료될 때 누출이 정리되도록 합니다. |
IDirtyHandler |
부분이 사용 중 상태를 설정하거나 지울
수 있도록 합니다. |
IMessageDialogs |
사용자에게 오류, 경고 및 정보
대화 상자를 표시합니다. |
IActionBars |
getViewSite()와
같은 목적으로 사용됩니다. getActionBars()는 Eclipse 3.0 API에는
제공되지 않습니다. |
IMultiplexer |
다중화된 컴포넌트에 멀티플렉서와
공유 인터페이스에 대한 액세스를 제공합니다. . |
ISavedState |
이전에 지속된 부분의 상태를 보유합니다. |
IPartFactory |
부분이 중첩된 보기 및 편집기를 작성할
수 있도록 합니다. |
IPartDescriptor |
ID, 제목, 기본 이미지 등과 같은 부분에
대한 메타 정보를 보유합니다. |
IEditorInput |
편집기에 대한 편집기 입력을 보유합니다. 보기에
대해 빈 편집기 입력을 가리킵니다. |
ISelectionHandler |
선택 변경사항을 처리합니다. 부분은
이 오브젝트를 사용하여 Workbench에 제공한 선택을 변경할 수 있습니다. |
부분의 포함 컨텍스트에 따라 부분이 각 인터페이스의 고유한 인스턴스 또는 여러 부분 간 공유된 오브젝트를 가져오기 여부가 결정됩니다. 부분의 생성자는 널(null) 인수를 받지 않습니다.
생성자 주입은 편리하지만 새 사이트 인터페이스를 사용하기 위해 생성자 주입을
사용하는 모든 기존 편집기 및 보기를 다시 작성한다는 점에서 비실용적입니다. 이러한
이유로 모든 새 인터페이스는 IWorkbenchPartSite의 어댑터로 기존 보기에도 사용할
수 있습니다.
다음은 메시지 대화 상자를 여는 단일 단추가 포함된 보기입니다.
다음 예제에서는 새 IMessageDialogs 인터페이스를 사용하여 대화 상자를 여는 새 스타일 보기의 소스를 표시합니다.
/**
* Demonstrates how to use component dependencies in a new-style part.
*
* @since 3.1
*/
public class DependenciesViewNew {
// Dependencies
private IMessageDialogs dialogs;
/**
* Component constructor. Do not invoke directly.
*/
public DependenciesViewNew(Composite parent, IMessageDialogs dialogs) {
this.dialogs = dialogs;
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
dialogs.open(IStatus.INFO, "This is a message");
}
}
다음 예제에서는 IMessageDialogs를 사용하여 대화 상자를 여는 기존의 보기를
표시하고 기존 Workbench 부분을 사용해도 가능하다는 것을 보여 줍니다.
빨간색 글꼴의 행은 IMessageDialogs 인터페이스가 각 경우에 초기화되고 사용되는
방법을 표시합니다.
/**
* Demonstrates how to use component dependencies in an old-style view
*
* @since 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Dependencies
private IMessageDialogs dialogs;
// Main widget
private Composite parent;
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
this.parent = parent;
this.dialogs = (IMessageDialogs)getSite().getAdapter(IMessageDialogs.class);
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
if (dialogs != null) {
dialogs.open(IStatus.INFO, "This is a message");
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
parent.setFocus();
}
}