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
Jul 30

SelectOneMenu Filter

A PrimeFaces PRO user requested a filter to deal with large amount of items in SelectOneMenu. To provide this feature, we’ve added an input field with filter icon inside the dropdown.

Filtering is enabled by setting filter attribute to true and match mode is configured with filterMatchMode attribute taking startsWith (default), contains, endsWith, custom as valid options. When custom filtering is used, filterFunction should be defined to implement custom filtering. All of this happens on client side only, no server round trip.

See PrimeFaces Labs for a live demo.

Posted in Uncategorized | 5 Comments
Jul 26

New TabMenu Component

We’ve been working on PrimeFaces maintenance of 3.4 only for some time and trying not to get excited by new feature ideas. However there is one request we couldn’t resist to implement on a saturday. A user requested a command navigation component such as;

http://example.irian.at/trinidad-demo/faces/components/commandNavigationItem.jspx

Well, challenge was accepted and we created tabMenu component;

There are also plans for enhancements like a second level of submenus below the first level but that’s for future.

Demo is available at PrimeFaces Labs.

Posted in PrimeFaces | 6 Comments