Release 3.2.1

Added option to skip the ajax update of this component. Sometimes this component is used in combination with an ajax update of the form anyway, so Josef's update can be skipped to save an extra server round-trip.
Note: The developer is now responsible for updating the date component, so if the form is not already updated, make sure that you ate least update this date component.

Release 3.2.0

Now supports autocomplete attribute which by default is true. Fields containing sensitive information like bank accounts for example turn autocomplete off by default. Naturally you can override this behavior by setting autocomplete="on" on an individual basis.

Added option to skip the ajax update of this component. Sometimes this component is used in combination with an ajax update of the form anyway, so Josef's update can be skipped to save an extra server round-trip.
Note: The developer is now responsible for updating the monthYear component as well.

Release 3.1.0

Now supports a date that is initially null. Added a selectItem for a null date, for day, month and year hint the user. The user sees these hints as long as no complete date has been selected.
Added a required label attribute.
Added a dayStyle, monthStyle and yearStyle.
Dropped the requiredMessage attribute

Release 3.0.34

Due to the new TLD (top level domain) names, I had to relax the validation a bit. Previously the RFC 2822 validator contained an exhaustive list and the BASIC validator checked for a tld of length 2 to 4 (inclusive).
Both validators now accept a length of 2 to 15 characters (inclusive).

Now supports ajax change event. It also updates the backing bean's value immediately. Previously the form had to be submitted before a change was effective.

Release 3.0.30

Dropped the widgetVar from the implementation as it wasn't even defined in the interface.

Dropped the widgetVar from the implementation as it wasn't even defined in the interface.

Now uses the Primefaces selectOneRadio again since it looks like the widgetVar caused the malfunction mentioned under 3.0.29.

Dropped the usage of the widgetVar attribute. It turns out that the widgetVar was used incorrectly in cases where the programmer did not specify a widgetVar attribute since it resulted in the same widgetVar name being created multiple times. When you had 4 monthYear components on your screen without a widgetVar then 4 widgetVars with the name "Months" for example would be created. This can be fixed but has been left out for now.

Added option to skip the ajax update of this component. Sometimes this component is used in combination with an ajax update of the form anyway, so Josef's update can be skipped to save an extra server round-trip.

Release 3.0.29

Is reverted back to using h:selectOneRadio since using Primefaces caused multiple groups of radio buttons to not function correctly. Selecting a radio button in one group influenced the other radio button group, which is clearly unacceptable.

Corrected an error in the style class that was generated for a month field. Previously it incorrectly used "day" as the class instead of "month". You can work around this problem by supplying your own monthStyleClass.

Release 3.0.27

Dropped the support for the widgetVar attribute. Having this attribute caused clicking on one selectOneMenu to open a different selectOneMenu! Others noted that selectOneMenu items are empty when the widgetVar attribute is used.

Is now a primefaces component so it will have a different look now. The look should be more in line with the other Primefaces components.

Almost components support a widgetVar with notable exceptions: bankIdentifierCode and selectOneRadio.

Switched to using change events instead of blurs. This results in less posts. Additionally, it is now possible to add you own ajax change event to this Month/Year component.

Release 3.0.24

Added blur and change events.

Release 3.0.22

The idInputGroup is now updated on a change event instead of a blur event. This should cause less ajax calls and as a side effect solved some problems where forms kept scrolling.

Release 3.0.21

Removed the number converter since it converted numbers like "123 456" to 123. Since 123 is a valid Dutch Giro account number it would then be accepted.

Composite components
Most components now use the partialSubmit="true" attribute so only the current field is posted. Previously all fields were posted and then silently ignored on the server. This option saves some data from being send to the server.

Should now properly handle the requiredMessage attribute. See also the change in the InputText backing component in josef-jar-faces.

The bank account number was not padded with zeroes. This has been corrected. Now supports clientBehavior for blur and change event on idUKBankAccountNumber.

Now supports clientBehavior for blur and change event on idUKSortCode.

Release 3.0.19

Switched to Primeface 5.0.x

Almost all composite components that support the info tag, now allow for the attributes infoAt and infoMy. These attributes can be used to position the overlayPanel that is used for the info text. By default infoAt=left bottom and infoMy=left top. You can use combinations of: left, right, top and bottom for these attributes. For example: my="right top" aligns the right top position of the panel with the bottom left position of the info icon.

Has been enhanced with an at and my attribute that correspond to the infoAt and infoMy attributes described above. Additionally, it is now possible to add a style class to the overlayPanel, that is to say in addition to the josefInfoPanel which is always added.

Release 3.0.18

All composite components.

Solved the problem that an empty error message was shown for required fields without a value. Checkout inputText.xhtml and for the solution.

Removed the requiredMessage attribute since it causes required fields that are left empty, to get an empty error message. Dropping the requiredMessage solves this problem at the cost of not being able to supply your own error message for required date fields. I verified that Primefaces 5.0 does not solve the problem.

Now supports bank accounts from 6 to 8 digits. Support for 9 or 10 digits has been dropped since BACS can only handle 8 digit accounts and it is really hard to automate the conversion.

Release 3.0.17

Added a state attribute to all components that are based upon jp:inputText.

Release 3.0.16

Almost all components support the "requiredMessage" attribute. When a field is required but not filled by the user the text supplied to this atribute will be shown here instead of the standard JSF text.

Now supports a styleClass attribute.

Release 3.0.15

Now uses PrimeFaces 4.0.10

All selects will now by default, be shown as an output text when there are no items to select from. Previously there had to be exactly one select item but this requirement has now been relaxed.

The overlay panel is now only rendered when there is info to render.

Release 3.0.14

Added jstz java script library to get the time zone (in text format).

Release 3.0.13

Now uses PrimeFaces (4.0.8).

The layout attribute got a default value.
The bean attribute is not necessary anymore!
Previously each selectManyCheckbox required a bean to indirectly get the underlying value. Since the bean is dropped, you have to change each and every usage of this component. Currently your code looks something like this:

      <f:selectItems value="#{selectManyTestBean.stringSelectItems}"/>

And it has to be changed to something like this:

      <f:selectItems value="#{selectManyTestBean.stringSelectItems}"/>

Note that the bean attribute is not required for the new component and that the value attribute requires change.

Release 3.0.12

Now supports dateSelect event.
Corrected error in displaying a readonly jp:date. A date like 2013/07/28 (in DST period), when entered outside DST period, would be displayed as 2013/07/27. So a day would be subtracted!

All composite components
Now use ui:composition instead of an html tag. This avoids errors when using an accessibility verification tool.

All composite components based upon inputText
Now take the readonly attribute of its container into account. Consider the next snippet:

    <p:panel readonly="true">
      <jp:inputText ... readonly="false"/>
      <jp:zipCode ..... readonly="false"/>

Previously the inputText would be readonly and the zipCode would be editable. zipCode is based upon inputText and inpuText would look at its parent (which is the zipCode component) and see that it is not readonly. Hence the inputText was readonly and the zipCode was not. This has been changed so both inputText and zipCode are now readonly since they both look at their parent (which is the readonly panel).

Now supports the change event. ukMobileTelephoneNumber.xhtml
Added. ukTelephoneNumber.xhtml
Added. PaddingConverter
Added a new converter that can pad String values with a pad character. See the modified ukBankAccountNumber composite component for how this new converter can be used. ukBankAccountNumber.xhtml
Now uses the new PaddingConverter. A bank account with 6 to 7 digits will be padded with zeroes.

Release 3.0.11

Now supports keyup event.

All composite components now start with a lower case letter.
For example: <jp:inputText ...>

Release 3.0.10

Now supports the yearRange attribute.

When the renderInputText attribute is false, the input text is still rendered but hidden. Previously, when the input text was not rendered, validation would not take place, since the validator was attached to the month/year input text.

This component does not evaluate the min and max dates at runtime anymore. We discovered that the previous problems with this component were not caused by the lack of dynamic behavior, but caused by the lack of validation when a MonthYear component did not show the month/year input text.

Release 3.0.9

Note: The RelationalValidator does not work as expected in this release! Since this validator never worked as expected this is not a show-stopper.

The DateRangeValidator now evaluates the min and max dates at runtime.
Currently this is a hack. I am working on a definitive solution.

Composite components
Nested <jp:Info ...> components now have an id of "idInfo".
Nested <jpInputState ...> components now have an id of "idInputState".

The pre/post image/text component now have id's.

The pre/post image/text component now have id's.

Release 3.0.8

Added a validator that checks for a minimum length of 8 characters..

Release 3.0.7

Release 3.0.6

Dropped the default="#{josefBundle.ukBankAccountNumberInfo}" since this always caused the info image to be showed, even on the read-only summary page where the info text did not make sense. So, if you want this text, simply add info="#{josefBundle.ukBankAccountNumberInfo}" to your UK bank account field.

Composite Components
Almost all composite components now use styleClass like this: styleClass="some style classes #{cc.attrs.styleClass}. Some style classes may for example be: numeric dutchGiroAccount. Previously these style classes were added as a default and were lost when overridden by the developer.

New composite component, comparable to the Dutch BSN and American SSN.

Dropped the UKSortCodeConverter. This component now uses the SpecialMaskConverter.

Release 3.0.5

Added this new component used in the UK in combination with a bank account number.

Added this new component which represents a bank account number in the UK.

Now properly supports a minimum and maximum date. Note: these only limit the visible dates on the calendar. In the input field the user can still enter an out of range date. Use the dateRangeValidator like this, to avoid this:
<jf:dateRangeValidator for="idInputDate" min="01/01/2012" max="01/01/2030"/>
Note: min and max accept either a String (US date format) or a date.

Added ajax blur and change events.

Added styleClass="josefInfoPanel" attribute so the info panel can be styled.

Release 3.0.4

The info component now uses an overlayPanel instead of a dialog. This has two advantages: 1 it looks better and 2, it requires no java script.

Release 3.0.1

The value attribute is not longer required anymore. This allows command buttons to have an icon only.
Added change and blur ajax events.

Now properly use displayReadonlyType and displayReadonlyValue.

Incorrectly declared the componentType at the implementation level, it should not be declared at all in this case.

Renamed the disabledWhenFormReadonly attribute to disabledWhenContainerReadonly. You will have to rename this attribute in your own code!

For numerous composite components that relied on InputText.xhtml, the attribute readonly="false" was dropped since it caused these components to never be readonly.

The Info.xhtml component now hides the info image when the info text is empty.

The MonthYear.xhtml component now has a tabindex="-1" on both select one menu's. This allows you to logically tab through MonthYear fields. The only down side is that you can't tab through the month and year fields in the absence of an input item.

The Date.xhtml component is now backed by a backing component.
This to support the new showOn attribute that was introduced to correct a tab error. When using a button to show the calendar, the tab order is incorrect and confusing to users. Showing the calendar on "focus", solves this problem.

Release 3.0.0

Initial JDK 1.7 and J2EE6 release