JSF: ordered list and inplace editing - jsf

We are using JSF and I was looking for a component to implement a list that:
can be re-ordered (buttons/drag and drop/whatever)
elements can be added and deleted
elements can be edited
To be more explicit something like PrimeFaces OrderList where elements can be edited. inplace editing would be nice but not a requirement. Before implementing something that already exists I wanted to ask if I missed something and the component already exists.

You could take a look at Richfaces and IceFaces in addition to PrimeFaces. They all provide advanced components that might offer almost all the features you need.

Related

p:menubar with both dynamic and non-dynamic submenus

I am currently trying to create a p:menubar which has one dynamically created submenu, but all the other submenus should be normally declared in the xhtml. Sadly I couldn't find any information on how to do so, as it seems that you always have to create a MenuModel and use that as the model for a complete p:menubar.
When just using two separate menubars it is possible to have multiple submenus open at the same time, which leads to them overlapping. And also the spacing is wrong then.
EDIT: I can't use JSTL, so the solution with c:forEach is not possible.
It has to be dynamic because the items are loaded from the database on each request.
EDIT 2: I could use JSTL, but I still don't really grasp how this could best be accomplished. I wan't to have a menubar with some submenus being normal static ones, but one submenu is built dynamically in the code (for every request, nothing with ajax). This dynamic submenu however has multiple child submenus which have their own children in turn, so in theory I would have to somehow iterate recursively over all children.
I am using Primefaces 8.0 and JSF 2.2
Thank you Kukeltje for answering my questions, I now ended up using c:forEach like in the linked post.

How can I implement a custom column filter in icefaces using something like a checkbox?

I'm currently using "filterBy" for filtering via inputText components and its working very well. I'd like to be able to filter one of my columns with the selectBooleanCheckbox component.
It looks like this can be done in primefaces:
Custom filters and converters in p:dataTable
But I'm not quite sure how to do it in icefaces (if at all possible)
According to an ICEfaces developer himself, this is not possible.
http://www.icesoft.org/JForum/posts/list/0/22736.page
As explained in the link, you can use the "filterOptions" attribute to use a h:selectOneMenu with selectItems as a filter, which works for me.

Separation of concerns between Facelets and JSF backing beans

This is such a fundamental MVC question I have a feeling the answer is already on SO and I just can't find it. Please forgive me if it's a dupe.
I am reimplementing a big legacy JSP/servlet app in JSF2/Spring3/Facelets. I think in general we want to leave the presentation formatting to the .xhtml and use the backing bean to make the data suitable for display. This makes for a nice separation of concerns even though I believe both are part of the View. However, the legacy app has an attractive table that contains headings on the left and HTML formatted stuff on the right, like links that pop up a dialog (only one row has this). I decided to put all the content in objects that a datatable iterates through and it worked but I found myself putting sort of ugly HTML (for links and such) in the backing bean, and putting ugly conditions in the datatable (e.g. if this is row 0, then use this CSS class). This works but it doesn't feel right. I've very tightly coupled the backing bean to the presentation, but I can't think of a simple way to get around it. Does anyone have any guidelines around how to handle this? Thanks in advance.
This looks like a valid usecase for a JSF Component. A very good guidance is this book: http://jsfatwork.irian.at/book_de/custom_component.html (Free available online)

JSF 'TAGS' Component

I know the title is slightly misleading but I can't think of a better one right now!
Im looking for a JSF component that offers the same functionality as the 'Tags' bar used here on stackoverflow when you ask a question.
Its basically a text field that is linked to a List where the list values are separated by a space. I know Primefaces offers a 'Tag Cloud' component but thats really not what I'm looking for.
NB. If no such component exists I'm happy to go ahead and try and create one if somebody could point me to some good tutorials on creating custom JSF components.
It was right under my nose all along.
Primefaces AutoComplete - Multiple Selection

JSF input component for string lists?

I'm looking for a ready made, freely available component that provides the following features:
editing list entries
deleting entries
adding a new entry - possibly invoked multiple times
bind to property in managed bean of type List, or similar
optional: reordering entries
optional, simple: allow verification that at least one element is entered (required="true"? required="1"?)
optional, better: restrict by minimum and maximum allowed number of elements
The simplest way to allow editing entries would be to represent them as input element. Preferably the element won't need to sync to the server for every change in the number of elements.
Alternatively: is there a trivial way to create or compose such a component oneself?
If this if of importance: currently I'm using Richfaces 3.3.3 and MyFaces 2.0.
Edit: The component is expected mostly to be used for creating new lists from scratch, so that should be as simple for the user as possible. Preferably just tabbing to the next empty input element automatically created at the end of the list. I'd like to use the component for editing these lists, too, but that feature is expected to be used much less often.
You could take a look at Primefaces p:collector. The example in the Primefaces showcase is a good starting point. It can be used for adding elements to a list and for editing and removing these elements.
Probably the simplest way that I would know of going about almost all of these is the PrimeFaces dataTable component. With the exception of adding and deleting entries inline, all of this comes out of box. Deleting entries can be as simple as adding a delete button in a row and adding entries can be done through invoking a modal dialog with a form to create a new entry, add it to the backing bean list for the table, then asynchronously updating the dataTable.
http://www.primefaces.org/showcase/ui/datatableHome.jsf
It really does seem to be the most fully featured JSF dataTable component out there.

Resources