## Guida alla stilizzazione delle applicazioni

### Da cosa dipende l'aspetto grafico delle applicazioni generate da guigen?

L'aspetto grafico delle applicazioni web generate con la cartuccia struts2Basic di guigen dipende da due fattori:

1. la cartuccia di generazione utilizzata (ovvero il portale target)
2. le risorse grafiche di stilizzazione (skin CSS)

#### Cartuccia struts2Basic e portali target

Nell' ambito della cartuccia di generazione struts2Basic esiste la possibilità di specificare il portale target, tramite un parametro (portalName) della cartuccia stessa. Questa possibilità deriva dalla necessità di adattare il codice html generato agli standard del particolare portale. Al momento sono previsti i seguenti portali target:

- sisp: generazione html basato sugli standard legacy del portale sistemapiemonte
- rupar: generazione html basato sugli standard legacy del portale ruparpiemonte (vecchia versione)
- intranetrp: generazione html basato sugli standard legacy del portale intranet regione piemonte

In aggiunta a queste modalità che permettono di adeguarsi ad alcuni dei portali 'storici' dei clienti del CSI, esiste una nuova modalità, denominata 'neutral', non legata a nessun particolare portale, ma basata su una struttura di codice xhtml molto flessibile ed utilizzabile per riprodurre differenti strutture grafiche con l'ausilio di appositi skin CSS. La modalità neutral, a sua volta si presenta sotto due differenti forme che differiscono per lo schema di referenziazione delle risorse grafiche e che necessitano, dunque, di differenti skin CSS:

1. una modalità con schema di referenziazione delle risorse grafiche nuova
2. una modalità con schema di referenziazione delle risorse grafiche vecchia (mantenuta per retrocompatibilità finccè non saranno convertiti tutti gli skin nella nuova modalità)

La scelta della modalità da utilizzare si effettua mediante il parametro staticResourcesSchemaVersion che può valere M1 per la vecchia modalità ed M2 per la nuova modalità.

#### modalità locale vs remote

Per alcuni portali è le risorse statiche sono mantenute globalmente sul web-server e alcuni frammenti di pagina (header di portale, footer di portale, header di applicativo) devono essere reperiti dall'applicativo con il meccanismo della remote include, mediante il quale la componente installata sull'application server reperisce tali frammenti facendo una chiamata server-to-server verso il resource provider, ovvero lo stesso apache che fornisce le risorse statiche.

L'impostazione della modalità da utilizzare deve essere effettuata secondo quanto descritto nel manuale della cartuccia struts2Basic.

### Quale target portal utilizzare?

La linea strategica a tendere è quella di abbandonare gradualmente i target portal legacy in favore della modalità neutral stilizzata con gli skin che permettono di riprodurre il tema grafico dei vari portali.

La logica di scelta del portale target (e quindi l'impostazione dell' opportuno parametro portalName nella cartuccia di generazione) è mostrato in figura:

### Stili (skin) CSS e Specifiche dell' xhtml universale della modalità neutral

La modalità neutral prevede la generazione di codice xhtml cosiddetto "universale", ovvero codice sufficientemente generico da essere utilizzato con schermate di varia composizione e che può essere stilizzato agevolmente mediante stili css. Per poter realizzare uno skin CSS adatto alla stilizzazione di una pagina che si presenta con xhtml universale è necessario tenere presenti le specifiche dell'XHTML universale'. La documentazione relativa a tali specifiche è disponibile qui.

### Struttura delle risorse statiche in modalità neutral/M2

TODO