You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pivot.apache.org by "A. J." <oz...@gmail.com> on 2010/08/31 14:26:02 UTC
path expression in TableView column name
Hi,
Is it possible to use path expressions in TableView column names ?
ex:
<TableView.Column name="otherObj.property" />
thanks
AJ
Re: path expression in TableView column name
Posted by Greg Brown <gk...@mac.com>.
OK, thanks. I think any of the solutions you describe would be appropriate (either a wrapper bean or a JSON-capable custom renderer).
Note that it is the responsibility of the renderer to respect the various list styles; see the renderStyles() method for an example:
http://svn.apache.org/repos/asf/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java
G
On Aug 31, 2010, at 10:27 AM, A. J. wrote:
> Yep,
>
> I have a list of Beans that have references to other beans :
> e.g. (fictive example)
>
> class SomeBean {
> private FirstObject firstObject;
> private Integer someIntValue;
> private SecondObj secondObj;
>
> public FirstObject getFirstObject() { return this.firstObject; }
> public Integer getSomeIntValue() { return this.someIntValue; }
> public SecondObject getSecondObject() { return this.secondObject; }
> }
>
> I just have a java.util.List<SomeBean> put in a TableView through a ListAdapter and want to display columns such as :
>
> <TableView.Column name="firstObject.name" />
> <TableView.Column name="someIntValue" />
> <TableView.Column name="secondObj.otherProperty" />
>
> today, this is not possible.
> I tried using a cell renderer that in turn uses JSON expressions; it works but I have to attach the cell renderer to each and every column and for some reason colors in the label do not respect selection color in the list (label are still back even when an item is selected);
>
> So, I ended up modifying the Bean to expose a getter method for each column displayed.
>
> e.g.
> class SomeBean {
> private FirstObject firstObject;
> private Integer someIntValue;
> private SecondObj secondObj;
>
> public FirstObject getFirstObject() { return this.firstObject; }
> public Integer getSomeIntValue() { return this.someIntValue; }
> public SecondObject getSecondObject() { return this.secondObject; }
>
> // getter for column 'name'
> public String getName() { return firstObject != null ? firstObject.getName() : null; }
> // getter for column 'otherProperty'
> public String getOtherProperty() { return secondObject != null ? secondObject.getOtherProperty() : null; }
> }
>
> It works but this is not very flexible (every time I want a new column, I have to create a new getter) ...
>
>
> On Tue, Aug 31, 2010 at 3:53 PM, Greg Brown <gk...@mac.com> wrote:
> After thinking about this a bit, I'm not entirely sure that this would be a good idea (at least, not for the default renderers/editors). Could you describe the use case in a little more detail?
>
> On Aug 31, 2010, at 8:57 AM, Greg Brown wrote:
>
> > Good question. It isn't currently supported by the default renderer, but there's no reason it shouldn't be (and it would actually clean up the code a bit). If you write your own renderer it should work fine.
> >
> > On Aug 31, 2010, at 8:26 AM, A. J. wrote:
> >
> >> Hi,
> >> Is it possible to use path expressions in TableView column names ?
> >> ex:
> >>
> >> <TableView.Column name="otherObj.property" />
> >>
> >> thanks
> >> AJ
> >>
> >
>
>
Re: path expression in TableView column name
Posted by "A. J." <oz...@gmail.com>.
Yep,
I have a list of Beans that have references to other beans :
e.g. (fictive example)
class SomeBean {
private FirstObject firstObject;
private Integer someIntValue;
private SecondObj secondObj;
public FirstObject getFirstObject() { return this.firstObject; }
public Integer getSomeIntValue() { return this.someIntValue; }
public SecondObject getSecondObject() { return this.secondObject; }
}
I just have a java.util.List<SomeBean> put in a TableView through a
ListAdapter and want to display columns such as :
<TableView.Column name="firstObject.name" />
<TableView.Column name="someIntValue" />
<TableView.Column name="secondObj.otherProperty" />
today, this is not possible.
I tried using a cell renderer that in turn uses JSON expressions; it works
but I have to attach the cell renderer to each and every column and for some
reason colors in the label do not respect selection color in the list (label
are still back even when an item is selected);
So, I ended up modifying the Bean to expose a getter method for each column
displayed.
e.g.
class SomeBean {
private FirstObject firstObject;
private Integer someIntValue;
private SecondObj secondObj;
public FirstObject getFirstObject() { return this.firstObject; }
public Integer getSomeIntValue() { return this.someIntValue; }
public SecondObject getSecondObject() { return this.secondObject; }
// getter for column 'name'
public String getName() { return firstObject != null ?
firstObject.getName() : null; }
// getter for column 'otherProperty'
public String getOtherProperty() { return secondObject != null
? secondObject.getOtherProperty() : null; }
}
It works but this is not very flexible (every time I want a new column, I
have to create a new getter) ...
On Tue, Aug 31, 2010 at 3:53 PM, Greg Brown <gk...@mac.com> wrote:
> After thinking about this a bit, I'm not entirely sure that this would be a
> good idea (at least, not for the default renderers/editors). Could you
> describe the use case in a little more detail?
>
> On Aug 31, 2010, at 8:57 AM, Greg Brown wrote:
>
> > Good question. It isn't currently supported by the default renderer, but
> there's no reason it shouldn't be (and it would actually clean up the code a
> bit). If you write your own renderer it should work fine.
> >
> > On Aug 31, 2010, at 8:26 AM, A. J. wrote:
> >
> >> Hi,
> >> Is it possible to use path expressions in TableView column names ?
> >> ex:
> >>
> >> <TableView.Column name="otherObj.property" />
> >>
> >> thanks
> >> AJ
> >>
> >
>
>
Re: path expression in TableView column name
Posted by Greg Brown <gk...@mac.com>.
After thinking about this a bit, I'm not entirely sure that this would be a good idea (at least, not for the default renderers/editors). Could you describe the use case in a little more detail?
On Aug 31, 2010, at 8:57 AM, Greg Brown wrote:
> Good question. It isn't currently supported by the default renderer, but there's no reason it shouldn't be (and it would actually clean up the code a bit). If you write your own renderer it should work fine.
>
> On Aug 31, 2010, at 8:26 AM, A. J. wrote:
>
>> Hi,
>> Is it possible to use path expressions in TableView column names ?
>> ex:
>>
>> <TableView.Column name="otherObj.property" />
>>
>> thanks
>> AJ
>>
>
Re: path expression in TableView column name
Posted by Greg Brown <gk...@mac.com>.
Good question. It isn't currently supported by the default renderer, but there's no reason it shouldn't be (and it would actually clean up the code a bit). If you write your own renderer it should work fine.
On Aug 31, 2010, at 8:26 AM, A. J. wrote:
> Hi,
> Is it possible to use path expressions in TableView column names ?
> ex:
>
> <TableView.Column name="otherObj.property" />
>
> thanks
> AJ
>