0
  • I create a new CellTable.
  • Override the onBrowserEvent2 to handle mouse events.
  • Add a new element to the table.

Sadly the event listener is not working on the added element. It's only working on the initial elements.

table = new CellTable<Contact>() {

    public void onBrowserEvent2(Event event) {
    Element tr = Element.as(event.getEventTarget());

    boolean gotIt = false;
    while (!gotIt && tr != null) {
        if (!tr.getTagName().equals("TR")) {
        tr = tr.getParentElement();
        continue;
        }
        gotIt = true;
    }

    if (tr == null)
        return;

    tr = Element.as(tr.getChild(1));

    Element out = DOM.createDiv();
    out.setInnerHTML("<a href='xxx'>Edit contact</a> | <a href='xxx'>Add visit plan</a> | <a href='xxx'>New visit</a>");

    switch (DOM.eventGetType(event)) {
    case Event.ONMOUSEOVER:
       tr.appendChild(out);
        break;
    case Event.ONMOUSEOUT:
       tr.getChild(1).removeFromParent();
        break;
    }
    }
};
Jean-Michel Garcia
  • 2,359
  • 2
  • 23
  • 44
Lakatos Gyula
  • 3,949
  • 7
  • 35
  • 56

1 Answers1

0

If you are fine with it you can have all your handlers declared separately.

You can always add Mouse Handlers directly like this:

//code depicting a MouseOverHandler. Use this for any type of GWT Event Handler

            CellTable<String> cellTable = new CellTable<String>();

            cellTable.addDomHandler(new MouseOverHandler() {

                @Override
                public void onMouseOver(MouseOverEvent event) {
                    // Your logic
                }
            }, MouseOverEvent.getType());

That should help

Karthik
  • 136
  • 2
  • 11