TableCell.getTableRow() return value

Kevin Rushforth kevin.rushforth at oracle.com
Wed Nov 25 20:58:57 UTC 2015


Sounds good. Thanks, Jonathan (and Richard for pointing this out).

-- Kevin


Jonathan Giles wrote:
> I think in this situation you're right - I just made the change 
> locally and did a full build of the SDK and all apps, and everything 
> compiles. My Jira-foo is not strong enough to find the issue I'm 
> thinking of, but I do recall an issue in one place in the TableView 
> API about generics being added and it breaking something. I wish I 
> could find it - I'll keep looking in any case.
>
> I will file a new JBS issue and will propose this change. We can try 
> to put it into JDK 9 and give it time to bake, and see if anyone comes 
> forward due to being broken by it...
>
> -- Jonathan
>
> On 26/11/15 6:46 AM, Richard Bair wrote:
>> You should be able to add generics compatibly, you just can't change 
>> the generics signature. One shot to get it right IIRC.
>>
>>> On Nov 25, 2015, at 8:57 AM, Jonathan Giles 
>>> <jonathan.giles at oracle.com> wrote:
>>>
>>> It was an oversight at the time, and (from memory) is now a breaking 
>>> change to fix it, so for now it remains as it is, sadly.
>>>
>>> -- Jonathan
>>> Sent from a touch device. Please excuse my brevity.
>>>
>>>> On 26 November 2015 03:33:04 GMT+13:00, Lawrence Parker 
>>>> <larry at answerrocket.com> wrote:
>>>> Seems like getTableRow() should return TableRow<S> instead of just
>>>> TableRow.  That way I wouldn’t have to cast getItem().
>>>>
>>>>     
>>>> https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableCell.html 
>>>>
>>>> <https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableCell.html> 
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>    @Override
>>>>    public void updateItem(Boolean isEnabled, boolean empty) {
>>>> ...
>>>>        TestCase testCase = (TestCase)getTableRow().getItem();
>>>>
>>>> This would be nicer:
>>>>
>>>>        TestCase testCase = getTableRow().getItem();
>>>>
>>>> Seems like an easy change to the getTableRow() method:
>>>>
>>>> public class TableCell<S,T> extends IndexedCell<T> {
>>>> ...
>>>>    public final TableRow getTableRow() { return tableRow.get(); }
>>>>
>>>>
>>>> Was this an oversight, or is there a reason that getTableRow() 
>>>> needs to
>>>> return TableRow instead of TableRow<S>?
>>>>
>>>> Thanks for any help.
>>>>
>>>> -Larry
>


More information about the openjfx-dev mailing list