Interface |
Description |
IErrorContext |
Messages IStatus des blocs de construction et des journaux au journal du plug-in. |
Bundle |
L'ensemble de plug-ins contenant l'implémentation du composant "part". Il informe automatiquement de leurs plug-ins les autres composants, comme l'implémentation d'IErrorContext. |
IContainer |
Le conteneur du site. Cet objet peut faire l'objet de requêtes pour tout autre interface de site, ce qui est pratique si le composant "part" veut tout rediriger ou multiplexer de son site vers ses enfants. |
INameable |
Permet à un composant "part" de définir ses nom, icône, info-bulle, et description du contenu. Remplace les différentes méthodes 'get' et programmes d'écoutes sur IWorkbenchPart. |
Composite |
Composite parent du composant "part". Ce composite
n'est pas partagé avec d'autres composants "part", et sera supprimé en même temps que le composant. Le composant "part" est autorisé à définir le format et à joindre des programmes d'écoute au composite. |
ISecondaryId |
Interface qui retourne l'ID secondaire d'un composant "part" quand elle est utilisée comme une vue à instances multiples. |
ResourceManager |
Attribue et retire en toute sécurité des images,
polices, couleurs, et autres ressources SWT. Garantit que des ressources identiques sont partagées entre les composants "part" et que toute fuite est nettoyée quand le composant est fermé. |
IDirtyHandler |
Permet aux composants "part" de définir ou d'effacer leurs états incorrects. |
IMessageDialogs |
Affiche des erreurs, avertissements et boîtes de dialogue d'information pour l'utilisateur |
IActionBars |
Même rôle que getViewSite().getActionBars() pour l'API d'Eclipse 3.0. |
IMultiplexer |
Fournit un composant multiplexé avec accès à son multiplexeur et toute interface partagée . |
ISavedState |
Met en attente l'état du composant "part" conservé précédemment. |
IPartFactory |
Permet à un composant "part" de créer des vues et des éditeurs imbriqués. |
IPartDescriptor |
Met en attente des méta-info concernant un composant "part", comme son ID, titre, image par défaut, etc. |
IEditorInput |
Met en attente les entrées d'un éditeur. Pointe vers une entrée d'éditeur vide pour les vues. |
ISelectionHandler |
Changements de sélection des identificateurs. Les composants "part" peuvent s'en servir pour changer la sélection qu'ils fournissent au plan de travail. |
Il revient au contexte contenant le composant "part" de déterminer si celui-ci reçoit une instance unique pour chaque interface ou un objet partagé entre plusieurs composants "part". Le constructeur du composant "part" ne reçoit jamais d'argument null.
Bien que l'injection de constructeur soit pratique, il serait dérangeant de devoir re-écrire tous les éditeurs et vues existants pour l'utiliser et profiter ainsi des nouvelles interfaces de site. C'est pourquoi toutes les nouvelles interfaces
sont également disponibles pour les vues existantes comme adaptateurs sur IWorkbenchPartSite.
Voici une vue contenant un seul bouton qui ouvre une boîte de dialogue.
L'exemple suivant montre la source pour une vue du nouveau style qui ouvre la boîte de dialogue en utilisant la nouvelle interface 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");
}
}
Cet exemple montre une vue traditionnelle qui ouvre une boîte de dialogue en utilisant IMessageDialogs, et montre comment il est également possible de le faire avec un composant "part" de plan de travail traditionnel.
Les lignes en rouge montrent comment l'interface IMessageDialogs est initialisée et utilisée dans chaque cas.
/**
* 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();
}
}