SlideShare una empresa de Scribd logo
1 de 28
Themes nelle XPages
Alla ricerca della bellezza di Stefano Mastella
Chi sono
Ingegnere, consulente informatico e
strategico, imprenditore e startupper
Sviluppo in Notes a partire dal 2000
Aiuto le aziende a capire ed accettare i
cambiamenti e le accompagno nel
percorso
Twitter.com/stemax73
Linkedin.com/in/stefanomastella
Agenda
Il software fa schifo: di bellezza e
usabilità
Xpages e bellezza
Temi: cosa sono e come li uso?
Temi: come li personalizzo?
Conclusione
Il software fa schifo
La bellezza salverà in mondo
F. Dostoevskij
Che cos’è la bellezza?
Una convenzione, una moneta che
ha corso solo in un dato tempo e un
dato luogo
H. Ibsen
E nelle Xpages?
Cos’é un tema?
Elemento design introdotto con la v. 8.5
File XML che ha come root l’elemento theme
Definisce le regole per la modifica runtime delle pagine
Possono essere su server o specifici di un singolo NSF
o Inclusione di risorse (JS/CSS)
o Modifica attributi componenti
Temi server preinstallati
Webstandard (predefinito)
Notes
oneUI v2 (da versione >= 8.5.1)
ICS UI (già oneUI v3)
o oneui (blue)
o oneuiv2_green
o oneuiv2_gold
o oneuiv2_metal
Temi standard e server
Location temi standard:
<%dominohome>/xsp/nsf/themes
CSS:
<%dominodata>/domino/java/xsp/themes
Aggiungete i vostri temi nelle stesse cartelle
Provate a modificare i temi standard prima di
scriverne uno voi
DEMO
Uso tipico
Inclusione standard di CSS e librerie
Forzatura di attributi di componenti
o uso di framework standard (Dojo, Blueprint CSS, ecc.)
o design personalizzato ma standard (CSS aziendali)
o risorse specifiche per l’applicazione
o style (es. font-family: helvetica; font-size: 14 pt;)
o styleclass (es xspTableCell)
Come funzionano
Sono come “Server Side CSS”
Sono applicati durante la fase di rendering
JSF
Le risorse sono “iniettate” nell’albero dei
componenti
I componenti sono agganciati con id
standard o custom
Performance
Sono applicati durante la fase finale di vita della JSF
Sono cached
I componenti sono agganciati con id standard o
custom
+ definisci in un tema meno lavoro deve essere
fatto dal server in fase di rendering
Limiti
A causa del late binding non tutto può
essere definito in un tema
Le SSJS incluse nel tema sono
utilizzabili solo nella afterPageLoad
I componenti “HTML passthru” non
possono essere modificati
Estendere i temi
Si possono creare da zero
Sarebbe meglio estendere il tema webstandard
o creare XML
o
o creare un nuovo tema nel designer che fornirà già un
template
o <theme extends=“webstandard”
o si ha un tema di base
o tutto funzionerà comunque nelle XPage
Partiamo dal più semplice
Riferimento a CSS interno
<resource>
<content-type>text/css<content-
type>
<href>stylesheet.css</href>
</resource>
Settiamo i default
Control
<control override="false">
<name>viewRoot</name>
<property>
<name>pageTitle</name>
<value>#{database.title}</value>
</property>
<property>
<name>dojoParseOnLoad</name>
<value>#{true}</value>
</property>
<property mode="override">
<name>styleClass</name>
<value>myNewStyleClass</value>
</property>
</control>
view.setStyleClass(view.getStyleClass() + “ xspView tundra”);
Inclusione di risorse
<!-- Firefox specific -->
<resource rendered="#{javascript:context.getUserAgent().isFirefox()}">
<content-type>text/css</content-type>
<href>foxOnFire.css</href>
</resource>
Mobile
<resource
rendered="#{javascript:context.getUserAgent().getUserAgent().match("iPhon
e")}">
<content-type>text/css</content-type>
<href>iPhone.css</href>
</resource>
var uAgent = context.getUserAgent().getUserAgent();
if (uAgent.match("iPhone") != null)
{ context.redirectToPage("/iPhone.xsp");
}
CSS apposito nel tema in base al browser
Redirect nella BeforePageLoad
O entrambi
OneUI v. 3
OneUI v. 3
http://infolib.lotus.com/resources/oneui/3.0/docPublic/index.htm
DEMO
Applicare altri framework CSS
DEMO
Concludendo
GRAZIGRAZI
Grazie agli sponsor per aver reso possibile i
Dominopoint Days 2013!
Main SponsorMain Sponsor
Vad sponsorVad sponsor
Platinum sponsorPlatinum sponsor
Gold sponsorGold sponsor

Más contenido relacionado

Similar a Themes nelle XPages - Alla ricerca della bellezza #Dd13

eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaFrancesco Trucchia
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)Alessandro Giorgetti
 
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS Breve introduzione alle tecnologie HTML5 + (DOM) + CSS
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS Giuseppe Vizzari
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoriaDiego La Monica
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)Alessandro Giorgetti
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsKnowCamp
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerMatteo Magni
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
DrupalCamp Italy - Crema 2009
DrupalCamp Italy - Crema 2009DrupalCamp Italy - Crema 2009
DrupalCamp Italy - Crema 2009psicomante
 
Wss Solution Framework
Wss Solution FrameworkWss Solution Framework
Wss Solution Frameworkmakkros
 
Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPressNicola Strumia
 
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...Marco Milesi
 
Novità in Visual Studio 2012
Novità in Visual Studio 2012Novità in Visual Studio 2012
Novità in Visual Studio 2012Sinergia Totale
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerAlessandro Alpi
 

Similar a Themes nelle XPages - Alla ricerca della bellezza #Dd13 (20)

eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistema
 
HTML (+ DOM) + CSS
HTML (+ DOM) + CSSHTML (+ DOM) + CSS
HTML (+ DOM) + CSS
 
#dd12 Scrivi X e Risolvi
#dd12 Scrivi X e Risolvi#dd12 Scrivi X e Risolvi
#dd12 Scrivi X e Risolvi
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS Breve introduzione alle tecnologie HTML5 + (DOM) + CSS
Breve introduzione alle tecnologie HTML5 + (DOM) + CSS
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoria
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesigner
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
DrupalCamp Italy - Crema 2009
DrupalCamp Italy - Crema 2009DrupalCamp Italy - Crema 2009
DrupalCamp Italy - Crema 2009
 
Wss Solution Framework
Wss Solution FrameworkWss Solution Framework
Wss Solution Framework
 
Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPress
 
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
 
Novità in Visual Studio 2012
Novità in Visual Studio 2012Novità in Visual Studio 2012
Novità in Visual Studio 2012
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 

Último

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 

Último (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 

Themes nelle XPages - Alla ricerca della bellezza #Dd13

  • 1. Themes nelle XPages Alla ricerca della bellezza di Stefano Mastella
  • 2. Chi sono Ingegnere, consulente informatico e strategico, imprenditore e startupper Sviluppo in Notes a partire dal 2000 Aiuto le aziende a capire ed accettare i cambiamenti e le accompagno nel percorso Twitter.com/stemax73 Linkedin.com/in/stefanomastella
  • 3. Agenda Il software fa schifo: di bellezza e usabilità Xpages e bellezza Temi: cosa sono e come li uso? Temi: come li personalizzo? Conclusione
  • 4. Il software fa schifo
  • 5. La bellezza salverà in mondo F. Dostoevskij Che cos’è la bellezza? Una convenzione, una moneta che ha corso solo in un dato tempo e un dato luogo H. Ibsen
  • 7. Cos’é un tema? Elemento design introdotto con la v. 8.5 File XML che ha come root l’elemento theme Definisce le regole per la modifica runtime delle pagine Possono essere su server o specifici di un singolo NSF o Inclusione di risorse (JS/CSS) o Modifica attributi componenti
  • 8. Temi server preinstallati Webstandard (predefinito) Notes oneUI v2 (da versione >= 8.5.1) ICS UI (già oneUI v3) o oneui (blue) o oneuiv2_green o oneuiv2_gold o oneuiv2_metal
  • 9. Temi standard e server Location temi standard: <%dominohome>/xsp/nsf/themes CSS: <%dominodata>/domino/java/xsp/themes Aggiungete i vostri temi nelle stesse cartelle Provate a modificare i temi standard prima di scriverne uno voi
  • 10. DEMO
  • 11. Uso tipico Inclusione standard di CSS e librerie Forzatura di attributi di componenti o uso di framework standard (Dojo, Blueprint CSS, ecc.) o design personalizzato ma standard (CSS aziendali) o risorse specifiche per l’applicazione o style (es. font-family: helvetica; font-size: 14 pt;) o styleclass (es xspTableCell)
  • 12. Come funzionano Sono come “Server Side CSS” Sono applicati durante la fase di rendering JSF Le risorse sono “iniettate” nell’albero dei componenti I componenti sono agganciati con id standard o custom
  • 13. Performance Sono applicati durante la fase finale di vita della JSF Sono cached I componenti sono agganciati con id standard o custom + definisci in un tema meno lavoro deve essere fatto dal server in fase di rendering
  • 14. Limiti A causa del late binding non tutto può essere definito in un tema Le SSJS incluse nel tema sono utilizzabili solo nella afterPageLoad I componenti “HTML passthru” non possono essere modificati
  • 15. Estendere i temi Si possono creare da zero Sarebbe meglio estendere il tema webstandard o creare XML o o creare un nuovo tema nel designer che fornirà già un template o <theme extends=“webstandard” o si ha un tema di base o tutto funzionerà comunque nelle XPage
  • 16. Partiamo dal più semplice Riferimento a CSS interno <resource> <content-type>text/css<content- type> <href>stylesheet.css</href> </resource>
  • 17. Settiamo i default Control <control override="false"> <name>viewRoot</name> <property> <name>pageTitle</name> <value>#{database.title}</value> </property> <property> <name>dojoParseOnLoad</name> <value>#{true}</value> </property> <property mode="override"> <name>styleClass</name> <value>myNewStyleClass</value> </property> </control>
  • 19. Inclusione di risorse <!-- Firefox specific --> <resource rendered="#{javascript:context.getUserAgent().isFirefox()}"> <content-type>text/css</content-type> <href>foxOnFire.css</href> </resource>
  • 20. Mobile <resource rendered="#{javascript:context.getUserAgent().getUserAgent().match("iPhon e")}"> <content-type>text/css</content-type> <href>iPhone.css</href> </resource> var uAgent = context.getUserAgent().getUserAgent(); if (uAgent.match("iPhone") != null) { context.redirectToPage("/iPhone.xsp"); } CSS apposito nel tema in base al browser Redirect nella BeforePageLoad O entrambi
  • 23. DEMO
  • 25. DEMO
  • 28. Grazie agli sponsor per aver reso possibile i Dominopoint Days 2013! Main SponsorMain Sponsor Vad sponsorVad sponsor Platinum sponsorPlatinum sponsor Gold sponsorGold sponsor