views:

54

answers:

1

hi

I've got a little Problem: I want to have Buttons in some of the cells of my Table. As rendering component I return a Button with the following code: (theres application specific and debugging code in this example but you'll get the picture)

class LivingTreeButton(lt:LivingTree[_], client:TableBehaviourClient) extends Button(Action("xx") {
  println("fire!")
  lt.expanded = !lt.expanded
  client.refresh
}){
  println("I print therefore I am")
}

now when I scroll to one of the Buttons in the Table I see the "I print therefore I am" printouts and I do see the buttons with the "xx" text. But when I press one of the buttons nothing happens and I don't even see the "fire!" printouts.

It doesn't work neither, when I define the Action in the Buttons body instead of the constructor.

As further background info: I'm not blocking the tables Events or anything. I only have a to listeners set up in JTable

 peer.getColumnModel().addColumnModelListener(behaviourWorker)
 peer.getTableHeader().addMouseListener(behaviourWorker) 

and only temporarily block one of my own events in the Tables subclass:

listenTo(this.selection)
reactions += {
  case e@TableRowsSelected(_,_,true) => if(!blockSelectionEvents) publish(PimpedTableSelectionEvent(this))
}

has any of you ever struggled with the same problem or has any idea what might be going wrong. After 2 hours od resultless debugging I would be thankfull for ANY hint.

A: 

Guess I got it. Didn't know that I have to add a TableCellEditor to catch the events. Doesn't really work yet but I'm sure that's it.

Agl