Your SlideShare is downloading. ×
Many Designs Elements
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Many Designs Elements

956
views

Published on

Genova JUG Meeting, 02/02/2010. …

Genova JUG Meeting, 02/02/2010.
Elements is an open source library of web UI components for high productivity in small to large projects.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
956
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Elements web component library
    • [email_address]
    • [email_address]
      • www.manydesigns.com
    ManyDesigns
  • 2. ManyDesigns Elements
    • Cos'è e dove utilizzare Elements
    • Impostazione di un progetto.
    • Demo: Dal modulo cartaceo al web in 15 min.
    • I principali componenti in elements
    • Sviluppi
  • 3. ManyDesigns Elements
    • Elements è una libreria open source di componenti web integrabile in altri Java web framework.
    • Elements astrae il layer di presentazione e si occupa di interagire con le richieste HTTP e gli oggetti della Business Logic indipendentemente dalle tecnologie utilizzate.
    • Facilita il riuso e lo sviluppo di propri componenti (atomici o composti)
  • 4. Elements Elements Componente Componente Componente Java Beans DB Objects (Hibernate, iBatis) Portofino Altro (EJB, WS) Http Request Http Response Model Controller View DB ...
  • 5. Esempio: componente per Google Maps
  • 6. Esempio: questionario interattivo multipagina
  • 7. Esempio ...Elements in Portofino 3.0
  • 8. Demo
    • Creiamo una semplice applicazione che porti sul web un modulo cartaceo di richiesta abbonamento.
    • Per fare questo realizzeremo una semplice applicazione Java con servlet e jsp (ma alternativamente avremmo potuto usare un web framework quale Struts)
  • 9. Passi illustrati nella Demo
    • STEP 1. Base: 1 Classe di Modello, 1 Componente, 1 pagine JSP per la view
    • STEP 2. Sottoinsieme field di una class per componenti e prefix: 3 Classi di Modello, 4 Componenti, 1 pagine JSP
    • STEP 3. Introduzione annotazioni: 3 Classi di Modello, 4 Componenti, 2 pagine JSP (invio e validate)
    • STEP 4. Elementi Composti “Sequence”: 3 Classi di Modello, 1+4 Componenti, 2 pagine JSP
    • STEP 5. Elementi Composti “Wizard”: 3 Classi di Modello, 1+4 Componenti, 2 pagine JSP
  • 10. Dipendenze nel pom.xml
    • Elements, componenti core di Elements (123 k)
    • Elements-extras, componenti aggiuntivi (65 k)
    • Apache commons lang (261 k)
  • 11. web.xml
    • <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
    • <web-app xmlns=&quot;http://java.sun.com/xml/ns/j2ee&quot;
    • xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    • xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/j2ee
    • http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;
    • version=&quot;2.4&quot;>
    • <display-name>My Web App</display-name>
    • <filter>
    • <filter-name> elementsFilter </filter-name>
    • <filter-class>
    • com.manydesigns.elements.servlet.ElementsFilter
    • </filter-class>
    • </filter>
    • <filter-mapping>
    • <filter-name> elementsFilter </filter-name>
    • <url-pattern> /* </url-pattern>
    • </filter-mapping>
    • ...
    • </web-app>
  • 12. Iniziare un progetto con Elements
    • Realizzare il modello
    • Creare i componenti atomici di Elements interrogando la struttura del modello
    • Comporre i componenti atomici in componenti composti
    • Visualizzare I componenti
  • 13. Annotation sul Modello
    • Le annotation sono utilizzate per apporre metadati significativi per Elements alle proprie classi Java.
    • Molte informazioni sono dedotte dalla reflection della classe ma ulteriori possono essere aggiunte per personalizzare il comportamento di un componente (come la label, l'help, ecc...).
  • 14. Un componente Element
    • Sa dare una propria rappresentazione in xhtml
    • Ha un “mode” associato
    • Sa aggiornare I suoi dati leggendoli da una richiesta Http o da un Java “Object”
    • Sa validare i suoi dati
    • Sa scrivere rendere persistenti I suoi dati su un Object
  • 15. Interfaccia Element
    • public interface Element extends XhtmlFragment {
    • public void readFromRequest
    • (HttpServletRequest req);
    • public boolean validate();
    • public void readFromObject(Object obj);
    • public void writeToObject(Object obj);
    • public Mode getMode();
    • public void setMode(Mode mode);
    • }
  • 16. I Builder
    • In generale i builder permettono di creare componenti (Elements) a partire da configurazioni e parametri forniti. Sono dei “costruttori” più flessibili.
    • E’ presente la classe ClassFormBuilder, che costruisce un form html a partire da una classe Java tramite reflection e lettura delle annotations.
  • 17. Gli elementi composti
    • Viene utilizzato il design pattern ”Composite”: il componente estende un ArrayList di Element e, al contempo, implementa Element.
    • La renderizzazione in xhtml e la lettura/scrittura sul proprio oggetto viene delegata ai figli (elementi atomici).
    • Tramite gli elementi composti sono create Sequenze di componenti, Selection o Wizard multipagina
  • 18. Classificazione dei field‏
  • 19. Feature di elements
    • Mappatura di tutti i componenti xhtml
    • Validazione dei campi
    • TagLibrary per Struts
    • Generazione di xhtml well formed
    • Modalità per la visione del componente (edit, view, preview, hidden)
    • Internazionalizzazione
  • 20. Sviluppi
    • Integrazione
      • Utilizzarlo in altri web framework
      • Integrarlo con framework di persistenza, web services, altri sistemi “esterni”
    • Personalizzazioni
      • Creazione di nuovi componenti atomici o composti di uso generale
      • Creazione di librerie di componenti di uso comune
    • Altro???