I moduli UI forniscono un supporto di base su cui costruire editor a più pagine.
Per iniziare a realizzare editor a più pagine dei moduli UI, estendere FormEditor
:
public class SimpleFormEditor extends FormEditor { public SimpleFormEditor() { } protected FormToolkit createToolkit(Display display) { // Creare un toolkit che condivide i colori tra gli editor. return new FormToolkit(ExamplesPlugin.getDefault().getFormColors( display)); } protected void addPages() { try { addPage(new FreeFormPage(this)); addPage(new SecondPage(this)); addPage(new ThirdPage(this)); addPage(new MasterDetailsPage(this)); addPage(new PageWithSubPages(this)); } catch (PartInitException e) { // } } public void doSave(IProgressMonitor monitor) { } public void doSaveAs() { } public boolean isSaveAsAllowed() { return false; }
Un modo semplice per iniziare è creare le pagine ed aggiungerle come indicato in precedenza.
Ogni pagina deve implementare FormPage
e sovrascrivere il metodo createFormContent(IManagedForm managedForm)
. Ovviamente
nella pagina è presente un modulo già creato, l'utente deve creare il contenuto nel modulo di
inclusione ed anche registrare ogni parte del modulo che deve andare a far parte del ciclo di vita gestito.
Oltre alla pagine del modulo, è possibile aggiungere uno o più editor di testo come alternativa di origine
alle pagine GUI. A questo scopo, richiamare il metodo 'addPage(IEditorPart,
IEditorInput input)
' nella superclasse.
Le modalità da utilizzare per la scrittura di editor a più pagine basati sul modulo sono numerose. Dipendono fondamentalmente dal tipo di contenuto da gestire e dalla competenza degli utenti. Ci sono due modalità di approccio:
Se gli utenti tipici utilizzano l'editor raramente, il codice di origine primitivo è difficile o complesso da modificare manualmente, gli utenti non sono molto tecnici, ecc., bisognerebbe realizzare pagine COMPLETE con funzionalità di editing che coprono ogni aspetto del contenuto senza dover agire sull'origine primitiva. Con questo approccio, la pagina di origine viene utilizzata solo per una convalida occasionale, non per l'operatività normale. Da questo punto di vista, è possibile utilizzare un editor di testo base. L'editor di schema del punto di estensione PDE è un editor di questo tipo.
Se gli utenti sono più tecnici, non hanno problemi a modificare il file manualmente, ma possono apprezzare la presenza di una guida, considerare la possibilità di fornire un editor misto, un buon editor di origine con tutte le funzioni aggiuntive, quali struttura incrementale, assistente al contesto, evidenziazione della sintassi, ecc. Inoltre, aggiungere funzionalità complesse a valore aggiunto nelle pagine del modulo che sono difficili da ottenere dall'origine. In base all'esperienza, si può dire che è difficile convincere utenti molto esperti ad abbandonare l'editing dell'origine se il valore aggiunto è marginale o opinabile. Tuttavia, funzioni che sono disponibili solo nella pagine GUI e che hanno un livello qualitativo elevato sono accettare prontamente.
La creazione di un editor a più pagine di elevata qualità con una combinazione di pagine GUI e di origine ha i suoi vantaggi. La considerazione che gli utenti possono passare spesso da una pagina all'altra richiede un buon modello per il contenuto sottostante. Il modello dovrebbe essere strettamente legato ai documenti sottostanti, in modo da eseguire la sincronizzazione sia quando gli utenti immettono direttamente il testo, sia quando ne modificano la struttura tramite le pagine GUI (considerare anche le modifiche indirette generate da altre azioni del workbench mentre l'editor è attivo).