summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2010-06-16 21:01:11 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2010-06-16 21:01:11 +0000
commitaeca38ec83becb8623d0835c49dc235dab600918 (patch)
treeac636ad593f4a577189c60f55a98afffebca7d9e /src
parent09904e75ed20e87090ebc18ab5e1384a1a5ccc99 (diff)
downloadvaadin-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.java21
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;