diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-06-16 21:01:11 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-06-16 21:01:11 +0000 |
commit | aeca38ec83becb8623d0835c49dc235dab600918 (patch) | |
tree | ac636ad593f4a577189c60f55a98afffebca7d9e /src | |
parent | 09904e75ed20e87090ebc18ab5e1384a1a5ccc99 (diff) | |
download | vaadin-framework-aeca38ec83becb8623d0835c49dc235dab600918.tar.gz vaadin-framework-aeca38ec83becb8623d0835c49dc235dab600918.zip |
action menu of table now triggers even though context click happened on a component (like textfield) #4264
better support for drag and drop in derived classes (TreeTable)
svn changeset:13718/svn branch:6.4
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java index 9a9aaab587..3e48e1fe2c 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java @@ -3688,8 +3688,15 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, 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; @@ -3757,9 +3764,6 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, sendSelectedRows(); } break; - case Event.ONCONTEXTMENU: - showContextMenu(event); - break; case Event.ONMOUSEDOWN: if (dragmode != 0 && event.getButton() == NativeEvent.BUTTON_LEFT) { @@ -4573,8 +4577,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, 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(); @@ -4598,6 +4601,12 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, } + 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; |