Link copiato negli appunti
WindowBuilder Pro è costituito da tre componenti principali:
- WindowBuilder Engine (WBE): il nucleo estensibile del framework che fornisce il supporto a tutte le caratteristiche che descriveremo successivamente;
- Swing Designer: un tool per il GUI design creato per supportare Swing. Fornisce inoltre un eccellente supporto per layout di terze parti come MiGLayout;
- SWT Designer: un tool per il GUI design creato per supportare SWT, JFace, RCP, eRCP e XWT. Fornisce inoltre un valido supporto per collezioni di widget Nebula e framework Eclipse Data Binding.
Come vedremo, esse costituiscono le tre opzioni selezionabili nella fase di installazione del plugin su Eclipse.
Il WindowBuilder Engine
Di seguito verrà proposta una panoramica di alcune delle principali caratteristiche fornite dal WindowBuilder Engine. Al momento, viene fornito supporto nativo per UI frameworks basate su Java (Swing, SWT, RCP etc.) e XML (XWT).
Funzionalità | Descrizione |
---|---|
Progettazione e realizzazione visiva | Il WBE è utilizzabile per realizzare e modificare una GUI fornendo viste sia per la progettazione che la visione del codice consentendo allo sviluppatore di monitorare il risultato finale mentre lavora con le interfacce. |
Flessibilità e coerenza tra frameworks | Il tool può contare su parser flessibili in modo da analizzare tanto il proprio codice generato quanto il codice scritto a mano o da altri tool per il GUI building. |
Generazione di codice bi-direzionale (round-trip editing) | Utile per sincronizzare design visuale e codice sorgente. |
Drag-and-drop | Funzionalità utile per implementare ciò che si vuole, dove si vuole, semplicemente trascinando gli elementi desiderati. |
Wizards e templates | Utili per risparmiare ulteriore tempo non dovendo ripartire ogni volta da zero. |
Reverse engineering | Codice già sviluppato può essere utilizzato come punto di partenza per nuovi sviluppi o per continuare a lavorare su prodotti già avviati. |
Localizzazione e internazionalizzazione | Funzionalità che consentono di adattare facilmente l'applicazione a linguaggi e zone differenti. Il supporto all'internazionalizzazione (i18n) consente di automatizzare il processo di localizzazione e permette di esternalizzare stringhe dei componenti, creare e gestire pacchetti per risorse per diversi linguaggi, modificare stringhe tradotte in base al contesto. Il WBE consente inoltre agli sviluppatori di variare il linguaggio visualizzato nella GUI per verificare gli effetti delle diverse lunghezze delle stringhe. |
Modifiche minimali al codice | Il WBE rende minime le modifiche apportate al codice sorgente e mantiene le modifiche apportate dagli sviluppatori per personalizzare la GUI. Il tool sa riconoscere quali linee di codice sono relative alla GUI e analizza solo quelle, preservando o ignorando quanto scritto dallo sviluppatore. |
Tools per il morphing | Lo sviluppatore può cambiare un tipo di widget in un altro, il tool provvederà a fornire le modifiche utili a preservarne contenuto, funzionalità o layout. |
Ereditarietà visuale | Il WBE supporta l'ereditarietà visuale padre-figlio, ossia l'ereditarietà degli elementi visuali in una finestra come ad esempio pulsanti e pannelli in classi GUI derivate. Ciò consente di standardizzare elementi comuni in una finestra che possono essere modificati una tantum invece che in modo individuale. |
Factories | Viene fornito supporto alla creazione di classi e metodi di factory personalizzati, modo pratico per creare versioni riutilizzabili di componenti comuni; gli sviluppatori possono creare metodi static da qualsiasi widget o transformer, o aggiungere le factory di componenti alla palette, consentendo un notevole risparmio di tempo semplificando la realizzazione di versioni di componenti di uso comune. |
Data Binding | Supportando il data binding, il WBE consente di facilitare l'associazione di elementi di interfaccia ai corrispondenti dati in modo che gli sviluppatori possano sincronizzare con poco sforzo le modifiche apportate dagli utenti alle interfacce grafiche. Spesso si usa per collegare un widget di testo a una stringa di un oggetto di un modello. |
Rilevamento automatico di framework a supporto delle UI | Rilevamento automatico di framework a supporto delle UI: il WBE supporta il discovery automatico e il caricamento one-click di framework a supporto delle UI. Ad esempio, ciò consente a uno sviluppatore che sta utilizzando tools WBE e SWT di caricare facilmente tools di Swing e viceversa. |