Framework componenti

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

Immagine della Vista NameViewNew

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.