Many Designs Elements

Embed Size (px)

Citation preview

Elements web component library

[email protected]

[email protected]

ManyDesignswww.manydesigns.com

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

ElementsComponenteComponenteComponenteJava BeansDB Objects(Hibernate, iBatis)PortofinoAltro
(EJB, WS)

Http RequestHttp Response

ModelController

ViewDB

...

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

My Web App

elementsFilter

com.manydesigns.elements.servlet.ElementsFilter

elementsFilter

/*

...

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???

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level