Hi Daniel
> whenever a table model is accessed, TableColumn indices must first be
> converted to TableModel indices!
And when accessing table model information through the Table, view
indices must be used! (as you said already)
And you are using these Table methods, hence conversion to model indices
as I suggested would be wrong! I was the one mixing up
JTable#getColumnClass(int) with TableModel#getColumnClass(int), not you.
My bad...
I'm very sorry that I was talking about methods you were not using!!
Sorry!!
Regards, Etienne
SUMMARY:
Whenever a table model is accessed, TableColumn indices must first be
converted to TableModel indices!
When accessing table model information through the Table, view indices
must be used.
> -----Original Message-----
> From: Etienne Studer
> Sent: Sunday, August 06, 2006 7:31 AM
> To: '[EMAIL PROTECTED]'
> Subject: RE: [ULC-developer] EagerLoadingHandler issues
>
> Hi Daniel
>
> Thanks for your reply!
>
> I'm surprised that you think the table model would ever expect a view
> index and not the model index. Why would that be the case? Take a look
at
> JTable#getColumnClass(int) and JTable#addColumn(TableColumn) from the
JDK:
>
> public void addColumn(TableColumn aColumn) {
> if (aColumn.getHeaderValue() == null) {
> int modelColumn = aColumn.getModelIndex();
> String columnName = getModel().getColumnName(modelColumn);
> aColumn.setHeaderValue(columnName);
> }
> getColumnModel().addColumn(aColumn);
> }
>
> public Class getColumnClass(int column) {
> return
> getModel().getColumnClass(convertColumnIndexToModel(column));
> }
>
> I think you mixed up JTable#getColumnClass(int) with
> TableModel#getColumnClass(int)...
>
> It's not about being right or wrong (even though I'm right in this
case;-
> )), but I think it is important for developers to know that whenever a
> table model is accessed, TableColumn indices must first be converted
to
> TableModel indices!
>
> Regards, Etienne
>
>
>
> > -----Original Message-----
> > From: Daniel Grob [mailto:[EMAIL PROTECTED]
> > Sent: Saturday, August 05, 2006 1:32 PM
> > To: Etienne Studer
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: [ULC-developer] EagerLoadingHandler issues
> >
> > Hi Etienne,
> >
> > You are half right :-)
> > - ULCTable.getColumnClass() expects the view index, not the model
index,
> > i.e. my original code is correct
> > - Columns are referenced by proxy id, not by view index, i.e. my
> > original code is buggy
> >
> > The correct code is now
> > ULCTableColumn column =
table.getColumnModel().getColumn(i);
> > if (column.getCellRenderer() != null
> > ||
table.getDefaultRenderer(table.getColumnClass(i))
> > != null) {
> > tmpResult[tmpCount] = *column.getId()*;* // used to
be
> > 'i'*
> > tmpCount++;
> > }
> >
> > I will correct the contribution in the next days. Thanx for your
> > detailed feedback!
> >
> > Regards Dany
> >
> >
> > Etienne Studer wrote:
> > >
> > > Hi ULC Team & Daniel (Grob)
> > >
> > >
> > >
> > > When running against ULC 6.0.4, the EagerLoadingHandler community
> > > contribution has 2 bugs, triggering exceptions at startup time in
our
> > > application.
> > >
> > >
> > >
> > > Correct would be:
> > >
> > >
> > >
> > > private static int[]
> > > getRendererColumns()/getEditorColumns()/getHeaderColumns() {
> > >
> > > int[] tmpResult = new int[table.getColumnCount()];
> > >
> > > int tmpCount = 0;
> > >
> > > for (int i = 0; i < table.getColumnCount(); i++) {
> > >
> > > ULCTableColumn column =
> table.getColumnModel().getColumn(i);
> > >
> > > if (column.getCellEditor() != null ||
> > >
> > >
> > >
> >
table.getDefaultEditor(table.getColumnClass(*column.getModelIndex()*))
> > > != null) { *// used to be i*
> > >
> > > * *tmpResult[tmpCount] =*
> > > table.getColumnModel().getColumn(i).getId(); // used to be i;*
> > >
> > > tmpCount++;
> > >
> > > }
> > >
> > > }
> > >
> > >
> > >
> > > int[] result = new int[tmpCount];
> > >
> > > System.arraycopy(tmpResult, 0, result, 0, result.length);
> > >
> > > return result;
> > >
> > > }
> > >
> > >
> > >
> > > Just to let you (and other developers) know.
> > >
> > >
> > >
> > > Thanks for the contribution.
> > >
> > >
> > >
> > > Regards, Etienne
> > >
> > >
> > >
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer