Aug 29

Themes 1.0.8 Released

PrimeFaces Team is pleased to announce the new release wagon of Themes. Compared to previous 1.0.7 release, there is only one change and it is a nice one. Twitter Bootstrap Theme is available now.

Check out PrimeFaces Theme Gallery for download instructions.  Please note that bootstrap theme does not include bootstrap css selectors, the theme uses bootstrap look and feel with the PrimeFaces Theme Framework styles so if you are also going to use twitter bootstrap in your project, you still need to add bootstrap for your project.

Posted in JSF | 5 Comments
Aug 23

Roadmap for PrimeFaces Mobile

We would like to share our roadmap for PrimeFaces Mobile with our community. PrimeFaces Mobile is a side project of PrimeFaces featuring a UI kit optimized for mobile devices, it involves a couple of mobile specific components and majority of the components are implemented with mobile renderers. So instead of pm:commandButton, we have p:commandButton with a  mobile renderer, thanks to powerful renderer features of JSF. PF Mobile is based on jQuery Mobile which is a natural choice for us since PF itself uses jQuery in core.

So, what are the plans? PF Mobile is currently on version 0.9.3 and never actually received what we call “Heavy PF Development” that involves day-night-weekends after the initial release. Next version 1.0 will involve heavy development for sure, here are couple of must have points for 1.0.

  • Lazy loading of views on demand to improve performance
  • Optimized resource loading of js and css. Load only what is necessary.
  • Back-Forward history navigation support
  • New mobile renderers for
    • Growl-Messages
    • Dialogs
    • Calendar
    • TabView
    • and more..
  • Major Maintenance Work
  • Update to latest jQuery Mobile

If you have more ideas, please drop a comment to share your feedback. This is for PrimeFaces Community so should be defined according to requirements from Community. Development time for M1 is planned to be 4 weeks until JavaOne, beginning of October.

Posted in JSF | 30 Comments
Aug 22

Twitter Bootstrap Theme

Twitter Bootstrap is a front end framework consisting of CSS and JavaScript utilities. We have been getting questions from our community about integrating bootstrap with PrimeFaces so decided to work on it.

PrimeFaces Widgets are richer than what bootstrap provides so we will not wrap bootstrap widgets for sure. A JSF library would only need to wrap widgets of bootstrap to come up with a quick and dirty solution for JSF.

CSS part is the real value of bootstrap for us, for example the layout feature of bootstrap is really great and we’ve used the grid layout in a client project as it is. It doesn’t make sense to bloat your JSF view with components like <p:gridContainer /> since you can do the same with just adding a simple div easier. Your page will execute faster since there less components to process on server side.

The best way to integrate PrimeFaces and Bootstrap would be a PrimeFaces Theme by porting Bootstrap Look and Feel. PrimeFaces components are so easy to customize, we have applied the look of Bootstrap widgets to our own widgets easily, no new tags, no new components are necessary, just CSS magic.

Check out the Labs Showcase to see the Beta version of Bootstrap Theme in action.

Bootstrap theme will be available with the next themes release wagon soon. At the moment, you can build the theme from source to give a try.

Posted in JSF | 19 Comments
Aug 21

JSF2-PrimeFaces Training in Paris

Prime Technology and Ippon Technologies are offering a 3 day JSF2-PrimeFaces course in Paris, France on 10-11-12 October 2012. Training will be delivered by Çagatay Çivici, project lead of PrimeFaces. Outline is available at here.

Fee for the course is 1650 euros per person, lunch is included and will be delivered in English (with a Turkish accent :)

For more details, please see official announcement from Ippon.

See you in Paris!

Posted in JSF | 4 Comments
Aug 20

PrimeFaces for ASP.NET

Prime Technology is excited to announce a brand new project. PrimeFaces the UI library who dominates JSF ecosystem, will be implemented for ASP.NET as well. PrimeFaces.NET will be open source and will follow the same principles that has made PrimeFaces a success. JSF and ASP.NET versions will be developed by separate teams both led by Çağatay Çivici, founder of PrimeFaces.

Initial version is planned to be available by mid 2013 featuring at least 40 ASP.NET controls. We’ll focus on Web Forms and there are also plans for ASP.NET MVC in the future as well.

Posted in ASP.NET | 30 Comments
Aug 15

PrimeFaces 3.4.RC1 Released

Java EE and Agile Mentoring Powerhouse, Prime Technology is glad to announce the release candidate of the next generation PrimeFaces. 3.4 is a major release featuring over 130 filed improvements, brand new Ajax Push Integration with Atmosphere Framework, new components, implementation of popular requests from community&pro users and significant maintenance work to improve the overall quality.

Highlights

See the full changelog for the detailed information.

Downloads

Binaries, sources, tagdocs and apidocs are available at PrimeFaces Downloads page.

Migration

Migration Guide is updated to cover any change you need to be aware of before upgrading to 3.4.

jQuery Update

jQuery version is updated to 1.8 which brings major performance improvements over prior versions.

Maintenance

We have taken our time to focus on bug fixes for 3.4 and there are around 50+ fixes that adds more value to the quality of PrimeFaces.

Documentation

User’s Guide is being update to cover 3.4 and will be available along with 3.4 final.

Roadmap

We’ll announce the roadmap of PrimeFaces after 3.4 final release which is due next week.

Optimus Prime

Posted in PrimeFaces | 18 Comments
Aug 09

DataTable Enhancements

PrimeFaces 3.4 brings major refactor and enhancements on DataTable. We’ve been adding features with each release to datatable and at some point it became harder to maintain. For 3.4, we’ve taken our time to improve the internals and thanks to the new clear design, it was easy for us to add various popular requests from the community.

Refer to Datatable from Children

Long time PrimeFaces users would be familiar with this, datatable can’t be updated or processed from it’s children. Common case is deleting a row from table and updating it. This is due to a fact of a mojarra issue actually, myfaces works fine but we’ve overriden some behavior to make it independent from the implementation. So following wasn’t }working;

<p:dataTable id="table">
   ...
   <p:column>
      <p:commandButton value="Delete" update="table" />
   </p:column>
</p:dataTable>

Common workaround was adding an output panel as a wrapper and updating it instead. But it also requires access to naming containers.

<p:outputPanel id="wrapper">
 <p:dataTable id="table">
    ...
    <p:column>
       <p:commandButton value="Delete" update=":form:wrapper" />
    </p:column>
 </p:dataTable>
</p:outputPanel>

As of 3.4, first sample is supported so you don’t need a wrapper anymore. This is also backward compatible for sure.

Column to Process DataGrid-DataList Action
Core UIData, requires a column as a wrapper for it’s children, otherwise it doesn’t process the children and does not provide unique ids to content. This makes sense for dataTable for dataGrid-dataList, there are no columns in layout. So following wasn’t working;

<p:dataGrid or p:dataList var="item" value="#{bean.items}">
   <p:commandButton value="Select" actionListener="#{bean.select(item)}" />
</p:dataTable>

Workound was adding a column to process the button or input action;

<p:dataGrid or p:dataList var="item" value="#{bean.items}">
   <p:column>
       <p:commandButton value="Select" actionListener="#{bean.select(item)}" />
   </p:column>
</p:dataTable>

As of 3.4, first sample will work as data component will process children without requiring a column.

First Class p:columns Support
We’ve spent a lot of time on p:columns to fix it’s limitations;

  • Input and Action Source components are now supported.
  • Static and Dynamic columns can be used together in dragdrop reordering
  • LazyDataModel support for sorting and filtering with dynamic columns

Filtering Improvements

Performance of datatable has been improved by introducing filterValue option, we were keeping filtered data in view state before and tried not keeping it anywhere, just do filtering everytime, way before other features like row selection to restore state but realized these two solutions are not perfect. Filtering changes the model so it should be where your model is, the backing bean. FilterValue attribute is a reference to a list in your bean and datatable populates-clears it during filtering. To be backward compatible, fallback is to use viewstate but a log message is provided to migrate. Also filtering now has a short delay just like autocomplete to avoid many ajax requests to the server.

All this is just the visible part of the iceberg, there are tons of other things improved, all will be available next monday.

Posted in PrimeFaces | 17 Comments
Aug 08

Animated Tree

Client side Tree Widget is refactored with a cleaner dom structure and along the way we’ve added animation to display during expand-collapse. The feature is enabled by setting animate attribute to true.

As a result of the major refactor on client side tree, we’ll be able to add upcoming features like dragdrop, inline editing much more easier in future releases.

See PrimeFaces Labs for a live demo.

Posted in PrimeFaces | 5 Comments