Book Image

Primefaces Theme development

Book Image

Primefaces Theme development

Overview of this book

Developing stunning themes for web applications has never been easier! PrimeFaces delivers a powerful set of features that enables JSF developers to create and customize awesome themes on the web. It is very easy to use because it comes as a single JAR file and requires no mandatory XML configuration. With more than 30 out-of-the-box themes, jQuery integration, a mobile UI toolkit, Ajax Push technology, and much more, PrimeFaces takes JSF application development to a whole new level! This book is a hands-on example-rich guide to creating and customizing PrimeFaces themes using available tools. Beginning with creating a JSF project and integrating the PrimeFaces library, this book will introduce you to the features of theme components, how these are structured, and how PrimeFaces uses JQuery UI to apply a theme to your application. You will learn to examine and change the CSS rules and get creative by setting standard icons and adding new icons to them. You will use a combination of JavaScript and CSS to enhance your application with help of scheduler component and go on to adapt and package your custom theme so that it is compatible with the Resource Manager. Finally, you will explore PrimeFaces mobile apps, ensuring themes are compatible with your mobile applications best practices for theme design.
Table of Contents (18 chapters)
PrimeFaces Theme Development
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Adding buttons that change the theme without using ThemeSwitcher


We are now going to add code to the morecomponents.xhtml page, which allows us to switch themes without using the ThemeSwitcher component. We are going to add them at the end because the code needs to be explained so that you have a clear understanding of how this is done. I chose commandButton for the task, but we just as easily could have used other components that support the action attribute and have the ability to cause the page to be requested in full or allow us to update the entire page using an AJAX request.

Here is the code that we need to add immediately after the form tag with id="mainform":

<p:panelGrid columns="3">
  <p:column>
    <p:commandButton ajax="false" value="Switch to Aristo" actionListener="#{currentTheme.setTheme('aristo')}"/>
  </p:column>
  <p:column>
    <p:commandButton ajax="false" value="Switch to Afterwork" actionListener="#{currentTheme.setTheme('afterwork')}...