Fornendo una semplice API per le viste e gli editor, definiti anche parti, il framework dei componenti consente che le parti possano essere nidificate e composte. L'API del framework dei componenti consente ai client di istanziare le parti in componenti SWT arbitrari, migliorare l'efficacia e il controllo di errori facendo si che una parte comunichi con le interfacce locali sul sito, senza dover raggiungere oggetti globali, consente ai client di estendere le interfacce disponibili da un sito e fornisce un framework per i client con cui possono creare i propri componenti riutilizzabili utilizzando la stessa API disponibile per le viste e gli editor. Il framework dei componenti consente inoltre di costruire e distruggere una parte con operazioni atomiche e consente alle parti esistenti di utilizzare nuove interfacce del sito
Questo esempio fornisce una vista che imposta nome, titolo, aiuto a comparsa ed immagine e
dimostra come scrivere un editor o una vista utilizzando il
framework dei componenti. Mostra l'origine utilizzando l'API dei componenti. Le nuove parti
possono utilizzare gli argomenti presenti nei propri costruttori senza dover implementare nessuna interfaccia
particolare o ereditare da una classe di base.
/**
* Sample view that sets its name, tooltip, image, and content description.
The view
* uses a custom image supplied by its plug-in.
*
* @since 3.1
*/
public class NameViewNew {
/**
* Component constructor. Do not invoke directly.
*/
public NameViewNew(Composite parent, INameable name, IPluginImages
images) {
name.setName("Name View (New)");
name.setContentDescription("content description");
name.setTooltip("This is a tooltip");
name.setImage(images.getImage("icons/sample.gif"));
// Create some bogus view contents
Label content = new Label(parent, SWT.NONE);
content.setText("View contents go here");
}
}
Tenere presente che gli argomenti inoltrati al costruttore della vista già ne
hanno rilevato il contenuto. Ad esempio, non è necessario comunicare all'interfaccia IPluginImages a quale
plugin appartiene la vista. Allo stesso modo, le interfacce non subiscono perdite. In questo esempio, l'immagine
della vista viene allocata e deallocata automaticamente dall'implementazione
INameable, così la vista non ha bisogno di implementare un metodo.
L'API per le viste e per gli editor è esattamente la stessa. In altre parole, se si è scelto
di registrare la classe NameViewNew con il punto di estensione
org.eclipse.ui.editors, potrebbe anche essere utilizzata come editor senza applicare ulteriori modifiche.