Using RichFaces book

As my publisher (Apress) is still working on creating a web site for my book, here is a quick overview of that’s going to be in the book.

The official book title is Using RichFaces. The book is a compact guide that covers all the most important components, features and concepts in order to for someone new to RichFaces to quickly start developing with RichFaces. At the same time, someone who has been using RichFaces for sometime will find lots of new useful information as well. The goal of the book is not to replace the developers guide but to serve as a compact guide to RichFaces. There are over 80 RichFaces components today while some have over 50 different attributes. It’s simply not possible to cover all of them in a book and I doubt you would want me to do that.

Table of Content:

  1. Introduction
  2. Getting started with RichFaces
  3. RichFaces basic concepts
  4. More a4j: tags, concepts and features
  5. Input components
  6. Output components
  7. Data iteration components
  8. Selection components
  9. Menu components
  10. Tree and scrollable table components
  11. Skinability (themes)

The goods new is that the book has listed on with the publish date of September 7th. I’m hoping it will be published a week earlier just in time for JSFOne conference where I’m speaking.

15 thoughts on “Using RichFaces book

  1. Hi MaxKatz,

    Im new to rich faces and i have requirement with rich faces Calendar component I have seen your demo its very good, Please send me the so i can get a solution. Please help me out.


  2. Hi Max,

    I didn’t any source but I wrote myself below its working partially:

    import java.text.DateFormat;
    import java.util.Date;
    import java.util.Locale;

    import javax.faces.event.ValueChangeEvent;

    import org.richfaces.event.CurrentDateChangeEvent;

    public class CalendarBean {

    private static final String[] WEEK_DAY_LABELS = new String[] { “Sun *”,
    “Mon “, “Tue “, “Wed “, “Thu “, “Fri “, “Sat *” };

    private Locale locale;

    private boolean popup;
    private boolean readonly;
    private boolean showInput;
    private boolean enableManualInput;
    private boolean disabled;
    private boolean showApplyButton;
    private String pattern;
    private Date currentDate;
    private Date selectedDate;
    private String jointPoint;
    private String direction;
    private String boundary;
    private String todayControlMode;

    private int counter;

    private boolean useCustomDayLabels;

    public Locale getLocale() {
    return locale;
    public void setLocale(Locale locale) {
    this.locale = locale;
    public boolean isPopup() {
    return popup;
    public void setPopup(boolean popup) {
    this.popup = popup;
    public String getPattern() {
    return pattern;
    public void setPattern(String pattern) {

    this.pattern = pattern;
    public void selectPattern(ValueChangeEvent event) {
    String tPatern = (String) event.getNewValue();
    if (tPatern != null) {
    pattern = tPatern;
    public CalendarBean() {

    locale = Locale.US;
    popup = true;
    pattern = “dd/MM/yyyy”;
    jointPoint = “bottom-left”;
    direction = “bottom-right”;
    readonly = true;
    enableManualInput = false;
    showInput = true;
    boundary = “inactive”;
    disabled = false;
    todayControlMode = “select”;
    public boolean isShowInput() {
    return showInput;
    public void setShowInput(boolean showInput) {
    this.showInput = showInput;
    public boolean isEnableManualInput() {
    return enableManualInput;
    public void setEnableManualInput(boolean enableManualInput) {
    this.enableManualInput = enableManualInput;
    public boolean isReadonly() {
    return readonly;
    public void setReadonly(boolean readonly) {
    this.readonly = readonly;
    public void selectLocale(ValueChangeEvent event) {

    String tLocale = (String) event.getNewValue();
    if (tLocale != null) {

    String lang = tLocale.substring(0, 2);

    String country = tLocale.substring(3);

    locale = new Locale(lang, country, “”);
    public boolean isUseCustomDayLabels() {
    return useCustomDayLabels;

    public void setUseCustomDayLabels(boolean useCustomDayLabels) {
    this.useCustomDayLabels = useCustomDayLabels;

    public Object getWeekDayLabelsShort() {
    if (isUseCustomDayLabels()) {
    return WEEK_DAY_LABELS;
    } else {
    return null;

    public String getCurrentDateAsText() {
    Date currentDate = getCurrentDate();
    if (currentDate != null) {
    return DateFormat.getDateInstance(DateFormat.FULL).format(
    return null;

    public Date getCurrentDate() {
    return currentDate;

    public void setCurrentDate(Date currentDate) {
    this.currentDate = currentDate;

    public Date getSelectedDate() {
    return selectedDate;

    public void setSelectedDate(Date selectedDate) {
    this.selectedDate = selectedDate;

    public String getJointPoint() {
    return jointPoint;

    public void setJointPoint(String jointPoint) {
    this.jointPoint = jointPoint;

    public void selectJointPoint(ValueChangeEvent event) {
    jointPoint = (String) event.getNewValue();

    public String getDirection() {
    return direction;

    public void setDirection(String direction) {
    this.direction = direction;

    public void selectDirection(ValueChangeEvent event) {
    direction = (String) event.getNewValue();

    public String getBoundary() {
    return boundary;

    public void setBoundary(String boundary) {
    this.boundary = boundary;

    public void dcl(CurrentDateChangeEvent event) {

    public void ddd(ValueChangeEvent event) {

    public int getCounter() {
    return counter ;

    public boolean isDisabled() {
    return disabled;

    public void setDisabled(boolean disabled) {
    this.disabled = disabled;

    public boolean isShowApplyButton() {
    return showApplyButton;

    public void setShowApplyButton(boolean showApplyButton) {
    this.showApplyButton = showApplyButton;

    public String getTodayControlMode() {
    return todayControlMode;

    public void setTodayControlMode(String todayControlMode) {
    this.todayControlMode = todayControlMode;

    the value change event not working properlyand pattern change also not working properly can you please help me what’s wrong with the rich faces calendar component…In demo its working fine but in “my calendar.jsp its not whats the problem?”

  3. I have a requirement that: I have data table and i will click any one row by the click event i need to select the particular record on edit page after editing save the data in the data table can you please explain this with sample example.. I need to know how it will get that particular row where to pass the paramenter.How that is modified..?and saved…

  4. Hi Max,

    Thanks for sending the above link.. It helps me a lot and now in My requirement: user may select anywhere in the row not only on a particular place (delete in your example ) he may select anywhere in that record area ….. and give me any link which is actually modifying the data and when click on save get the data table with updated values.

    Once again thanks for your help Max,

    you helped me a lot.

  5. Hi Max,

    I have command button, on click it should display some numbers like below
    I have a data Table inside i have list of numbers based on selection particular no would be go place into a text field and data table should be closed automatically.

    I am able to display the nos in data Table and based on user selection I am placing that no into particular input text field;after that im unable to close the data table component I need solution for that..

    If possible after clicking command button data Table with nos displayed at that time command button should be disabled what i need to do; “for disabling the command button “

  6. Hi Max

    I have almost developed my application but look and feel is not good for that i need to use css i dont know how to use css in rich faces please send me steps to use css in our application ; as well as any example and sample css template.

    Waiting for your reply..

    I forgot to tell : “I got lot of help from this site”

    Thanks Max

  7. Hi Max,

    I have a form; in that i have 5 input text fields, I entered some data in the first field; i want to press “Enter key” ; so that entered text field value is passed to a java Bean method; text can be processed and resultant formatted text should place in the same field;

    I have used below code: that will not be working for Enter key press:

    i want to call action method;that will return some formatted value,so when user presses the enter key it should work , I think you understand my question, Please send me the solution; Its urgent Max

    Waiting for your reply Max……!

  8. Hi max,

    I have calendar component inside im able to display the entered dates in

    different formats;

    Now i am using enable manual input so I have given enableManualInput=”true”

    so i can able to enter date like(22092010) but Calendar component is unable to

    catch the date that i have entered;

    Now my question is in which format i need to enter the date and how to change

    the format of entered date by onblur event;

    Please show me a way to getout of this problem…..

    thanks in advance

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.