Interface |
Descrição |
IErrorContext |
Constrói e registra mensagens de IStatus no log do plug-in. |
Pacote configurável |
O pacote configurável de plug-in que contém a implementação da parte. Essa interface informa outros componentes, como a implementação de IErrorContext, automaticamente sobre seus plug-ins. |
IContainer |
O contêiner do site. Esse objeto pode ser consultado para qualquer uma das outras interfaces do site, o que poderá ser útil se a parte desejar redirecionar ou multiplexar tudo de seu site para seus filhos. |
INameable |
Permite que uma parte configure seu nome, ícone, dicas de ferramenta e descrição de conteúdo. Substitui os vários métodos get e listeners no
WorkbenchPart. |
Composto |
Composto pai da parte. Esse composto não é compartilhado com nenhuma outra parte e será descartado ao mesmo tempo que a parte.
A parte pode configurar o layout e anexar listeners a esse composto. |
ISecondaryId |
Interface que retorna o ID secundário de uma parte quando utilizada como uma visualização de várias instâncias. |
ResourceManager |
Aloca e desaloca imagens, fontes, cores e outros recursos do SWT de maneira segura. Garante que recursos idênticos sejam compartilhados entre partes e que quaisquer vazamentos sejam limpos quando a parte está fechada. |
IDirtyHandler |
Permite que as partes configurem ou limpem seu estado sujo. |
IMessageDialogs |
Exibe diálogos de erro, aviso e informativos para o usuário. |
IActionBars |
Atende ao mesmo objetivo atendido pelo getViewSite().getActionBars() com a API do Eclipse 3.0. |
IMultiplexer |
Fornece um componente multiplexado com acesso ao seu multiplexador e a quaisquer interfaces compartilhadas . |
ISavedState |
Mantém o estado persistido anteriormente da parte. |
IPartFactory |
Permite que uma parte crie visualizações e editores aninhados. |
IPartDescriptor |
Mantém meta informações sobre uma parte, como seu ID, título, imagem padrão e assim por diante. |
IEditorInput |
Mantém a entrada do editor para um editor. Aponta para uma entrada do editor vazia para visualizações. |
ISelectionHandler |
Manipula alterações na seleção. As partes podem utilizar essa interface para alterar a seleção que fornecem ao workbench. |
A parte que contém o contexto é responsável por determinar se a parte obtém uma instância exclusiva para cada interface ou um objeto compartilhado entre várias partes. O construtor da parte nunca recebe um argumento nulo.
Embora a injeção do construtor seja conveniente, não seria prático gravar novamente cada editor e visualização existentes para utilizar injeção do construtor para se beneficiar das novas interfaces de site. Por esse motivo, todas as novas interfaces também estão disponíveis para visualizações existentes como adaptadores no IWorkbenchPartSite.
Esta é uma visualização que contém um único botão que abre um diálogo de mensagem.
O exemplo a seguir mostra a origem de uma visualização de novo estilo que abre o diálogo utilizando a nova interface IMessageDialogs.
/**
* Demonstra como utilizar dependências de componente em uma parte de novo estilo.
*
* @since 3.1
*/
public class DependenciesViewNew {
// Dependências
private IMessageDialogs dialogs;
/**
* Construtor do componente. Não chamar diretamente.
*/
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");
}
}
Este exemplo mostra uma visualização tradicional que abre um diálogo utilizando IMessageDialogs que demonstra que isso também é possível utilizando uma parte tradicional de workbench.
As linhas em vermelho mostram como a interface IMessageDialogs é inicializada
e utilizada em cada caso.
/**
* Demonstra como utilizar dependências de componente em uma visualização em estilo antigo
*
* @since 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Dependências
private IMessageDialogs dialogs;
// Widget principal
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();
}
}