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 XPages Themes, #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 XPages Themes, #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
 

Más de Dominopoint - Italian Lotus User Group

IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...Dominopoint - Italian Lotus User Group
 

Más de Dominopoint - Italian Lotus User Group (20)

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
 
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
 
Mail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-PremisesMail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-Premises
 
IBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversationsIBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversations
 
Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)
 
Riding the Enterprise Integration train
Riding the Enterprise Integration trainRiding the Enterprise Integration train
Riding the Enterprise Integration train
 
Ortocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su BluemixOrtocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su Bluemix
 
Meetit16 KeyNote di Apertura
Meetit16 KeyNote di AperturaMeetit16 KeyNote di Apertura
Meetit16 KeyNote di Apertura
 
IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
 
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...
 
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
IBM Connections 10 things every user should know
IBM Connections 10 things every user should knowIBM Connections 10 things every user should know
IBM Connections 10 things every user should know
 
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
 
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Crossware MailSignature
 
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
 
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
 
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
 
the future of work
the future of workthe future of work
the future of work
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 

XPages Themes, #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