Interfaccia |
Descrizione |
IErrorContext |
Costruisce e registra i messaggi IStatus nel log del plugin. |
Bundle |
L'insieme dei plugin contiene l'implementazione delle parti. Questo fornisce automaticamente
informazioni agli altri componenti, quali l'implementazione di IErrorContext, sui relativi plugin. |
IContainer |
Il contenitore del sito. Questo oggetto può essere interrogato sulle altre interfacce del sito;
questo risulta utile se la parte vuole utilizzare in multiplex o reindirizzare dal sito ai suoi siti secondari. |
INameable |
Consente ad una parte di impostare il nome, l'icona, la descrizione comando a comparsa e la
descrizione del contenuto. Sostituisce i diversi metodi get e listener su IWorkbenchPart. |
Composite |
Il composto principale della parte. Questo composto non è condiviso con altre parti, e verrà
eliminato insieme alla parte. La parte può impostare il layout e collegare i listener a questo composto. |
ISecondaryId |
Interfaccia che restituisce un ID secondario della parte quando viene utilizzata come una vista
con più istanze. |
ResourceManager |
Alloca e dealloca in modo protetto le immagini, i tipi di carattere, i colori e altre risorse SWT. Assicura
che risorse identiche siano condivise tra le parti e che le dispersioni siano cancellate alla chiusura della parte. |
IDirtyHandler |
Consente alle parti di impostare o cancellare gli stati non finali. |
IMessageDialogs |
Visualizza all'utente le finestre di dialogo di errore, avviso o informazioni. |
IActionBars |
Svolge la stessa funzione di getViewSite().getActionBars() con l'API Eclipse
3.0. |
IMultiplexer |
Fornisce un componente in multiplex con accesso al multiplexer ed alle interfacce condivise . |
ISavedState |
Conserva lo stato precedentemente permanente della parte. |
IPartFactory |
Consente ad una parte di creare editor e viste nidificate. |
IPartDescriptor |
Conserva le meta-informazioni sulla parte, quali l'ID, il titolo, l'immagine predefinita, ecc. |
IEditorInput |
Conserva l'input dell'editor per un editor. Per le viste fa riferimento ad un input di editor
vuoto. |
ISelectionHandler |
Gestisce le modifiche di selezione. Le parti la possono utilizzare per modificare la selezione
fornita al workbench. |
Dipende dal contesto di contenuto della parte determinare se la parte riceve un'unica istanza di ciascuna interfaccia o un oggetto condiviso tra più parti. Il costruttore della parte non riceve mai un argomento null.
Anche se l'inserimento di un costruttore può essere conveniente, non sarebbe praticabile riscrivere tutti gli editor e le viste
esistenti per inserire un costruttore in modo da trarre vantaggio delle nuove interfacce del sito. Per questo motivo, tutte le nuove
interfacce sono disponibili anche per le viste esistenti come adattatori in IWorkbenchPartSite.
Di seguito viene riportata una vista che contiene un singolo pulsante che apre una finestra di dialogo dei messaggi.
Nell'esempio seguente viene mostrata l'origine di una vista nel nuovo stile che apre la finestra di dialogo utilizzando la nuova interfaccia 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");
}
}
Questo esempio mostra una vista tradizionale che apre una finestra di dialogo che utilizza IMessageDialogs; dimostra che è possibile
anche utilizzare una parte di workbench tradizionale.
Le righe in rosso mostrano come viene inizializzata e utilizzata l'interfaccia IMessageDialogs nei diversi casi.
/**
* 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();
}
}