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

Extending the ThemeService Bean


In order to get the ThemeSwitcher to work, we need to provide a list of theme names that ThemeSwitcher uses to offer the user a choice of themes. We will do this in the ThemeService Bean as an extension to the services it provides.

Note

As the Bean is application scoped, there is only one instance of it during the lifetime of the application. Thus, we are saving valuable resources by doing so.

We will add a new property to the Bean in a manner that is similar to how we added the theme property to the CurrentTheme Bean. The completely filled out Add Property dialog box is shown in the following screenshot:

The themes property is an array because it will never be modified at runtime. Hence, it is a read-only property and hence the final keyword.

Place the cursor after private final String[] themes = but before ;. Then, add the following code to initialize the array. The added code is highlighted for you:

    private final String[] themes = {"afterdark",
        "afternoon...