public void onBrowserEvent(Event event) {
if (enabled) {
Element targetTdOrTr = getEventTargetTdOrTr(event);
+ int type = event.getTypeInt();
+ if (type == Event.ONCONTEXTMENU) {
+ showContextMenu(event);
+ event.stopPropagation();
+ return;
+ }
+
if (targetTdOrTr != null) {
- switch (DOM.eventGetType(event)) {
+ switch (type) {
case Event.ONDBLCLICK:
handleClickEvent(event, targetTdOrTr);
break;
sendSelectedRows();
}
break;
- case Event.ONCONTEXTMENU:
- showContextMenu(event);
- break;
case Event.ONMOUSEDOWN:
if (dragmode != 0
&& event.getButton() == NativeEvent.BUTTON_LEFT) {
dropDetails = new TableDDDetails();
Element elementOver = drag.getElementOver();
- VScrollTableRow row = Util.findWidget(elementOver,
- VScrollTableRow.class);
+ VScrollTableRow row = Util.findWidget(elementOver, getRowClass());
if (row != null) {
dropDetails.overkey = row.rowKey;
Element tr = row.getElement();
}
+ private Class<? extends Widget> getRowClass() {
+ // get the row type this way to make dd work in derived
+ // implementations
+ return scrollBody.iterator().next().getClass();
+ }
+
@Override
public void dragOver(VDragEvent drag) {
TableDDDetails oldDetails = dropDetails;