For other Primefaces users coming here when upgrading to version 4.0 and above, it's possible to bypass the need to use PF('yourWidgetVar').someFunction()
and just use yourWidgetVar.someFunction()
directly as you would have before version 4.0. You just need the following configuration in web.xml:
<context-param>
<param-name>primefaces.LEGACY_WIDGET_NAMESPACE</param-name>
<param-value>true</param-value>
</context-param>
From the Primefaces User Guide:
Enables window scope so that widgets can be accessed using
widgetVar.method() in addition to default PF namespace approach like
PF('widgetVar').method().
Obviously you'd be susceptible to the namespace clash/pollution this feature was created to avoid, but it's useful if you want to migrate to a new version in little steps and isolate what incompatibilities the new version has introduced.