You can also create a bean specifically for the grid, perhaps with a static method to create a list from your model classes, and add dummy getters for your columns. This new bean can also extend your model class, and extend the getters for your @NonVisual properties.
Ben On 8/21/07, Ned Jackson Lovely <[EMAIL PROTECTED]> wrote: > > On Tue, Aug 21, 2007 at 10:21:32PM +0800, Allen Guo wrote: > > Usually we display user list using grid component. It's like this > > <table t:type="Grid" source="users" row="user" rowsPerPage="12" > > pagerPosition="both"> > > </table> > > > > As shown above, the source property value is 'users' is just the user > > list may fetch from database. > > The result will display all properties of user class in table . > > Now I want to only display some of properties of user class and add some > > extra columns like delete/update action to each row. > > What should I do? > > To add a column, you need to create a BeanModel. > ------------------------------------ > @Inject > @Service(value = "BeanModelSource") > private BeanModelSource _beanModelSource; > > @Inject > @Service(value = "ComponentResources") > private ComponentResources _componentResources; > > private BeanModel _model; > > public BeanModel getModel(){return _model;} > > > public void onActivate(){ > _model = _beanModelSource.create(YOUR_OBJECT_HERE.class, true, > _componentResources); > > _model.add("action", new NullPropertyConduit()).order(-1) > .sortable(false); > > //You /should/ use the @NonVisual action to hide properties you > //generally don't want displayed. On the other hand, you can > //remove properties from the BeanModel here. > } > > //Other stuff elided. > ------------------------- > > I have a NullPropertyConduit object that is nothing but generic responses > to all of the function calls in the PropertyConduit interface. That > doesn't > matter, because instead of worrying about what the conduit is going to > pull from my bean, I provide it with a template that contains this: > > ------------------------- > <block t:type="Grid" source="source" row="currentRow" model="model"> > <t:parameter name="actionCell"> > <a href="#" t:type="PageLink" page="delete" > t:context="currentRow.id"/>Delete</a> > </t:parameter> > </block> > ------------------------- > > This isn't a drop-in and have it work example, but I think all the > fundamental > things you need to do to get the find of functionality you want are > illustrated. Good luck! > > -- > njl > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >