On Wed, Jan 27, 2010 at 9:14 AM, Norman Franke <nor...@myasd.com> wrote: > I ran into a similar problem. IMHO, the Grid component seems frustratingly > half-finished. No default sort, no easy to modify sorting behaviors, etc.
It could use some TLC, and needs to be better split out into reusable sub-components, so that when you hit its limits, you can build your own without rewriting existing functionality. > > You can't set the sortable property on the property model, since the data > model is completely overwritten in Grid's setupDataModel method. You can't > really modify the data model in any way via @SetupRender, @BeginRender or > anything like that. One's changes are always lost, which is very annoying. > > I ended up providing my own model to the grid and adding the column > explicitly. My GridDataSource can handle the sorting on the virtual column. > Generating the data model was very non-obvious (source is my > GridDataSource.) > > �...@inject > private BeanModelSource modelSource; > �...@inject > private ComponentResources componentResources; > > public BeanModel<?> newModel() { > Class<?> rowType = source.getRowType(); > Messages containerMessages = > componentResources.getMessages(); > return modelSource.createDisplayModel(rowType, > containerMessages); > } > > Then I can modify the model: > > public BeanModel<?> getModel() { > if (model == null) { > model = newModel(); > PropertyModel p = model.add("type", null); > p.sortable(true); > } > return model; > } > > You then list this new column, type in my case, in the t:include parameter > for the grid (not in t:add!) > > Norman Franke > Answering Service for Directors, Inc. > www.myasd.com > > > > On Jan 26, 2010, at 2:55 PM, Howard Lewis Ship wrote: > >> That is the right approach, a smarter implementation of a property >> within the BeanModel that can handle the sorting. >> >> On Tue, Jan 26, 2010 at 11:00 AM, Michael Prescott >> <michael.r.presc...@gmail.com> wrote: >>> >>> How do you go about making a computed column in a Grid sortable? The >>> docs >>> on Grid are great, but in the example the computed column is >>> non-sortable. >>> Can I do it by providing a PropertyConduit through the grid's BeanModel >>> model? >>> >>> Michael >>> >> >> >> >> -- >> Howard M. Lewis Ship >> >> Creator of Apache Tapestry >> >> The source for Tapestry training, mentoring and support. Contact me to >> learn how I can get you up and productive in Tapestry fast! >> >> (971) 678-5210 >> http://howardlewisship.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> > > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org