Trent,
have you ever checked Trinidad's <tr:table> ?
It is pretty much straight forward to do a selection there:
<tr:table summary="Bundeslaender"
value="#{lov.data}" var="row" rows="10"
rowSelection="single"
binding="#{lov.table}">
<tr:column>
<f:facet name="header">
<tr:outputText value="Name"/>
</f:facet>
<tr:outputText value="#{row.name}"/>
</tr:column>
</tr:table>
<tr:panelButtonBar>
<tr:commandButton text="Cancel" immediate="true"
action="#{lov.cancel}"/>
<tr:commandButton text="Select"
action="#{lov.select}"/>
</tr:panelButtonBar>
in the select you do:
public String select()
{
FacesContext context = FacesContext.getCurrentInstance();
Iterator<Object> iterator = _table.getSelectedRowKeys().iterator();
String rowKey = (String) iterator.next();
Object oldRowKey = _table.getRowKey();
_table.setRowKey(rowKey);
ValueBinding binding = context.getApplication().
createValueBinding("#{row.name}");
Object value = binding.getValue(context);
RequestContext.getCurrentInstance().returnFromDialog(value, null);
_table.setRowKey(oldRowKey);
return null;
}
note you can also set the "rowSelection" to multiple.
See [1] for more.
-Matthias
[1] http://incubator.apache.org/adffaces/trinidad-api/tagdoc/tr_table.html
On 1/12/07, Trent Rosenbaum <[EMAIL PROTECTED]> wrote:
Thanks for getting back to me. I was thinking that I would have to do
this, but was hoping that I could find another way. At least I am not
alone with this.
Trent
On 12/01/07, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> Trent,
>
> What I do is wrap the domain object in a web-tier object. The web-tier
> object has two properties: the domain object and a "selected" boolean
> property. Then I have a column in my dataTable like so:
>
> <h:column>
> <f:facet name="header"><h:outputText value="Selected"/></f:facet>
> <t:selectBooleanCheckbox value="#{data.selected}"/>
> </h:column>
>
> When I need to do processing, I grab the list of web-tier objects and
> check to see which ones are selected.
>
> Regards,
>
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
>
> Trent Rosenbaum wrote:
> > Hi there,
> >
> > When interacting with the DataTable component I have to define a
> > boolean field on the domain object that represents a row in the table
> > to allow multiple checkbox selection. Is this to right way to proceed
> > with this development?
> >
> > I could for example have a domain object called 'Student' that has
> > been delivered to me by others in an organisation. I do no control
> > the development of this object, but to interact with it through a
> > multiple select table I have to define a UI only used field on the
> > above object. If on the other hand I settled for single radio button
> > selects on the table then I could use the getter methods on the UI
> > component to identify which object the user is interacting with.
> >
> > I am new to JSF but to me this seems like a cross over of layers. To
> > me the domain object should not have to define this field. I was
> > looking at the example under the trinidad/ADF project and there seems
> > to be a table component that would allow me to gain a list of the rows
> > that were checked.
> >
> > Is there anything I have over looked within the core myfaces API
> > project and/or tomahawk projects? How do other navigate through this
> > issue? Do people end up creating wrappers for the data and then
> > display them within the DataTable instance?
> >
> > Many thanks
> > Trent
> >
> >
> >
>
>
>
--
Matthias Wessendorf
http://tinyurl.com/fmywh
further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com