| Eclipse RCP parte 1: Progettare il Modello |
|
In questo tutorial vedremo come usare Eclipse Modeling Framework per gestire il Modello di un'applicazione. Se non avete già installato EMF e i relativi tools, seguite le istruzioni indicate sul tutorial "Eclipse: installare EMF".
Il modello Library che useremo come esempio è preso dal Tutorial ufficiale di EMF: esso è costituito da due entità, Author e Book. - Author: ha un attibuto String name Ok, iniziamo col creare un nuovo (File->New->Other...) Empty EMF Project
diamogli un nome (es. com.rcpvision.rcptutorial.model) e clicchiamo Finish. Selezioniamo la cartella model creata dallo wizard EMF, tasto destro New->Other->Ecore Tools->Ecore Diagram
premiamo Next, cambiamo (dovremmo leggere "Create Ecore Diagram" come titolo della dialog) il valore del campo File name in "Library.ecore_diagram", e premiamo di nuovo Next. Al prossimo passo (dovremmo leggere "Create Ecore Domain Model" come titolo della dialog), lasciamo il valore preselezionato (che dovrebbe essere "Library.ecore") nel campo File name e premiamo Finish. Ci troveremo davanti ad un foglio bianco dove possiamo letteralmente disegnare il nostro modello. Mentre editiamo questo file .ecorediag, il corrispondente file .ecore verrà automaticamente aggiornato. Notate che il file .ecore è il domain file principale di EMF e che saremmo potuti partire da esso per gestire il modello.In questo tutorial invece abbiamo deciso di esplorare l'utilizzo degli Ecore Dialog Tools ed avere quindi il file .ecore automaticamente generato e sincronizzato in seguito all'editing del diagramma.
iniziamo quindi trascinando un oggetto EClass dalla Palette sulla pagina bianca e rinominiamolo in Author
poi muoviamo il cursore sopra il box e selezioniamo l'icona corrispondente all'azione "Add EAttribute"
e rinominiamo l'attributo in name
poi eseguiamo tasto destro sull'attributo name e selezioniamo Show Properties View
andiamo alla Properties View, clicchiamo il tasto a destra del campo EType
facciamo la stessa cosa per l'entità Book e il suo attributo String title.
ora, per aggiungere all'entità Book un attributo con riferimento ad Author, clicchiamo sull'icona EReference sulla Palette
poi clicchiamo sull'entità Book
e rilasciamo il mouse sull'entità Author
rinominiamo il riferimento come author
Notate che abbiamo appena creato un legame 0..1 chiamato author da Book ad Author. Se ora salviamo il file .ecorediag e apriamo il file .ecore, vedremo questo
Potreste preferire gestire il Modello EMF direttamente attraverso l'editing di questo file .ecore (potete trovare un esempio nel tutorial "Eclipse RCP: come creare e persistere un EMF Model"), è semplicemente una questione di preferenze. Per questo motivo selezioniamo il file .ecore, tasto destro New->Other...,
selezioniamo EMF Generator Model
clicchiamo Next
clicchiamo Next di nuovo
e di nuovo
ora clicchiamo il tasto Load , poi Next
e Finish. Alla fine abbiamo ottenuto un file Genmodel :
dal quale possiamo generare il sorgente del Modello, semplicemente con tasto destro e selezionando Generate Model Code
ed ... ecco il codice del Modello, scritto per voi da EMF!
Prendetevi un po' di tempo per dare un'occhiata al codice generato e chiedetevi quanto tempo ci sarebbe voluto per creare a mano tale codice (considerate ad esempio che questo codice contempla, fra le altre cose, un meccanismo di notifica associato ad ogni metodo setter, solo per menzionare un aspetto). Vediamo ora come EMF sia efficace quando si tratta di mantenere un Modello, cioè, quando si rende necessario modificare il Modello stesso. Per far ciò, immaginiamo di renderci conto, all'improvviso, che un'entità Book può avere più di un Author! Dunque, abbiamo bisogno di una Collection al posto di un semplice attributo!
per avere il codice del Modello aggiornato.
Quali sono dunque i vantaggi dell'introduzione di EMF ?
|






























Commenti