Many Designs Elements
Upcoming SlideShare
Loading in...5
×
 

Many Designs Elements

on

  • 1,368 views

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.

Statistics

Views

Total Views
1,368
Views on SlideShare
884
Embed Views
484

Actions

Likes
0
Downloads
3
Comments
0

6 Embeds 484

http://juggenova.wordpress.com 289
http://juggenova.net 154
http://www.juggenova.net 26
http://www.slideshare.net 9
https://www.linkedin.com 4
http://web.archive.org 2

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Many Designs Elements Many Designs Elements Presentation Transcript

    • Elements web component library
      • [email_address]
      • [email_address]
        • www.manydesigns.com
      ManyDesigns
    • 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
    • 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)
    • Elements Elements Componente Componente Componente Java Beans DB Objects (Hibernate, iBatis) Portofino Altro (EJB, WS) Http Request Http Response Model Controller View DB ...
    • Esempio: componente per Google Maps
    • Esempio: questionario interattivo multipagina
    • Esempio ...Elements in Portofino 3.0
    • 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)
    • 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
    • Dipendenze nel pom.xml
      • Elements, componenti core di Elements (123 k)
      • Elements-extras, componenti aggiuntivi (65 k)
      • Apache commons lang (261 k)
    • 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>
    • 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
    • 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...).
    • 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
    • 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);
      • }
    • 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.
    • 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
    • Classificazione dei field‏
    • 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
    • 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???