JFace: una struttura UI per i plug-in

Il workbench definisce punti di estensione per plug-in allo scopo di fornire la funzione di interfaccia utente alla piattaforma. Molti di questi punti di estensione, in particolar modo le estensioni di procedure guidate,  sono implementati utilizzando classi dei pacchetti org.eclipse.jface.*. Qual è la differenza?

JFace è un toolkit di interfaccia utente che fornisce classi di supporto per lo sviluppo di funzioni di interfaccia utente la cui implementazione può essere complicata. JFace opera a un livello superiore rispetto al sistema di widget di base. Fornisce classi per la gestione di attività di programmazione comuni dell'interfaccia utente:

JFace permette all'utente di non concentrarsi sull'implementazione della funzione del plug-in specifico e di dedicarsi al sistema di widget sottostante e alla risoluzione dei problemi comuni delle applicazioni di interfaccia utente.

JFace e workbench

Dove termina JFace e dove inizia il workbench? Spesso questo confine non è ben definito. In generale, le API JFace (contenute nei pacchetti org.eclipse.jface.*) sono indipendenti dalle API e dai punti di estensione del workbench. Di conseguenza, un programma JFace potrebbe essere scritto senza l'utilizzo di alcun codice del workbench.

Il workbench utilizza JFace ma prova a ridurre questa dipendenza dove possibile. Ad esempio, il modello di parte del workbench (IWorkbenchPart) è progettato per essere indipendente da JFace. È stato visto in precedenza come sia possibile implementare viste ed editor utilizzando direttamente widget SWT, senza utilizzare alcuna classe JFace. Il workbench tenta di rimanere "neutrale" rispetto a JFace dove possibile, consentendo ai programmatori di utilizzare le parti di JFace ritenute utili. In pratica, il workbench utilizza JFace per gran parte della sua implementazione e i riferimenti a tipi JFace sono presenti nelle definizioni API. Ad esempio, le interfacce JFace per IMenuManager, IToolBarManager e IStatusLineManager sono presenti come tipi nei metodi IActionBar del workbench.

JFace e SWT

La relazione tra SWT e JFace è molto più chiara. SWT è completamente indipendente da JFace o dal codice della piattaforma. Molti degli esempi SWT mostrano come creare un'applicazione autonoma.

JFace è progettato per fornire la funzione di applicazione comune dell'interfaccia utente al di sopra della libreria SWT. JFace non prova a "nascondere" SWT o a sostituirne la funzione. JFace fornisce classi e interfacce che gestiscono molte delle attività comuni associate alla programmazione di un'interfaccia utente dinamica mediante SWT.

Le relazioni tra JFace e SWT vengono chiaramente illustrate nei visualizzatori e nelle loro relazioni con i widget SWT.

Copyright IBM Corporation e altri 2000, 2003.