L'editor visivo genera ed analizza il codice Java durante la progettazione della classe visiva. L'editor visivo utilizza uno stile particolare per il proprio codice Java generato, che utilizza regole di
analisi del codice Java.
L'editor visivo per Java consente di generare codice Java valido che può essere opportunamente compilato
ed eseguito. Inoltre, quando l'editor visivo analizza il codice Java esistente, utilizza regole per
stabilire quali elementi del codice dovrà provare a visualizzare nella vista Progettazione.
Regole per l'analisi del codice da visualizzare nella vista Progettazione
L'editor visivo per Java prova a visualizzare codice nella vista Progettazione se
quest'ultimo soddisfa
uno dei seguenti criteri:
Esistono inoltre altri requisiti che l'editor visivo verifica prima della visualizzazione di un
componente nella vista di progettazione grafica:
- I campi devono essere istanziati all'interno di un metodo get oppure il
bean deve essere istanziato da un metodo di inizializzazione elencato nella scheda Stili modello della pagina
delle preferenze dell'editor visivo.
- Non devono essere presenti errori di compilazione nella riga.
- Una classe deve essere valida per il caricamento e la creazione istanza
- Molte espressioni di inizializzazione di matrici non possono essere valutate.
- Gli argomenti complessi di un metodo possono essere compresi se le entità che costituiscono gli
argomenti sono modellate. Ad esempio, un'espressione che richiede la concatenazione di stringhe utilizzando l'
operando +, verrà valutata correttamente nella maggior parte dei casi.
L'esito dell'analisi di molte espressioni è positivo, ma non tutte le espressioni possono essere valutate
correttamente. In questo caso, nelle viste verrà segnalato un avviso per il bean Java e il motivo dell'errore
verrà indicato nella riga di stato quando il bean viene selezionato nella vista Progettazione o Bean Java.
Nell'area di disegno verrà visualizzata anche un'icona di avviso:

Codice generato dall'editor visivo
- L'editor visivo genera costruttori predefiniti che consentono di chiamare il metodo
initialize(), con il quale vengono impostati i valori delle proprietà della
classe.
- Nel caso delle applet, il codice per impostare i valori iniziali delle proprietà è
init().
Questo codice non viene chiamato dal costruttore, in quanto verrà eseguito dal browser delle applet.
- Facoltativo: è possibile stabilire che l'editor visivo generi blocchi
try{}catch() per i componenti. In questo modo, però, verrà rilevata in modo
continuo ogni eccezione generata durante l'inizializzazione, aumentando il rischio di soppressione delle
eccezioni.
Di conseguenza, è preferibile consentire il normale corso delle eccezioni. È possibile selezionare questa
opzione nella scheda Generazione codice della pagina delle preferenze dell'editor visivo
().
Il codice riportato di seguito mostra una classe JPanel inizializzata con il blocco try{}catch():
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jPanel1;
}
Il codice riportato di seguito mostra una classe JPanel senza il blocco di codice try{}catch():private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- Facoltativo: è possibile anche stabilire che l'editor visivo aggiunga un commento per
contrassegnare ogni espressione da esso generata. Questa indicazione può rivelarsi utile per distinguere il
codice scritto manualmente dal codice generato. La riga di codice riportata di seguito rappresenta un esempio
di commento:
this.add(getJPanel(), null); // Generated
Per attivare questa opzione, selezionare la casella di controllo Genera un commento
per le nuove espressioni nella scheda Generazione codice della pagina delle preferenze dell'editor visivo.
- Nel caso di Swing/AWT, non si tratta di un requisito, anche se l'editor visivo genera metodi quali
getPanel() che consentono di istanziare e restituire un singolo bean Java. Un metodo è in grado di istanziare più di un bean Java e il valore restituito
del metodo non è importante per il riconoscimento del campo come bean Java. Per poter includere i campi
anOKButton e ivjTableModel come bean Java, è
necessario che vengano istanziati all'interno di un metodo get della classe.
- Nel caso di SWT, l'editor visivo genera metodi private void
createComposite() per ogni classe che estende Composite e tutti i bean secondari sono istanziati
all'interno dello stesso metodo.
- Se la classe modificata estende un bean Java, l'istanza da modificare sarà rappresentata con un bean Java
speciale denominato parte 'this'. La parte 'this' non può essere eliminata dalla vista Progettazione o dalla
vista Bean java e il metodo di inizializzazione delle relative proprietà viene realizzato nel metodo
initialize().
Una parte 'this' viene visualizzata nella vista Progettazione e Bean Java soltanto se dispone di proprietà da
impostare nella vista Proprietà. I metodi set delle proprietà sono generati nel metodo
initialize(), altrimenti, se la classe estende
java.awt.Applet, verrà utilizzato il metodo init().
- Se la classe modificata implementa org.eclipse.ui.IWorkbenchPart, il codice generato per i controlli
secondari viene aggiunto al metodo createPartControl(Composite parent).