Are you saying that you want to populate your table with rows that are defined
as POJOs with a set of fixed bean properties as well as a variable-length list
of indexed properties? For example:
public class Foo {
public int getA() { ... }
public String getB() { ... }
public String[] getC() { ... }
}
I assume that you want the table columns to contain "a", "b", and then n
additional columns corresponding to the elements in the array. Is that correct?
If so there are a couple of ways you could go about this:
1) Define a custom cell renderer that takes an array index as an argument. The
render() method can cast the row object to an instance of Foo and call
getC()[index] to get the cell data. Specify this renderer for each array
element column in your table view.
2) Model your row object as a dictionary instead of a bean with an array
property. For example:
public class Foo implements Dictionary<String, Object> {
public Object get(String key) { ... }
}
The get() method would map the "a" key to the getA() method, "b" to getB(),
etc. and would map array index values to getC()[index].
I think I'd suggest #2 since it sounds like it probably wouldn't require you to
write any custom renderers. Also, if it is possible to model your variable
properties as key/value pairs instead of indexed array elements, I would
definitely recommend doing so. The contents of an array are mutable, so any
caller can modify them directly without the bean's knowledge. Exposing them via
the Dictionary interface only promotes better encapsulation.
G
On Oct 20, 2010, at 12:14 PM, Shahzad Bhatti wrote:
> I need to create an editable table for my data structure that consists of
> some fixed data elements and an array of variable size. Can someone provide
> an example or tips for creating the table programmatically, where I can set
> dynamic number of columns. Also, I would like to create a column for each
> element of the variable-size array. How would I define accessor/setter for
> that property (e..g instead of setArray/getArray, which takes or returns
> arrays). Thanks.
> ______________________________________________
>
> See http://www.peak6.com/email_disclaimer.php
> for terms and conditions related to this email