aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2009-05-20 08:41:36 +0000
committerMarc Englund <marc.englund@itmill.com>2009-05-20 08:41:36 +0000
commit3b385cda46b30b9843e9509ecdc2df7ef800e1b2 (patch)
tree6bab5e4eaf59711ce06eeb0184831c9d5f31f437 /src
parenta79bbfca7797c68a5f169f9fbfb3b94148e463d0 (diff)
downloadvaadin-framework-3b385cda46b30b9843e9509ecdc2df7ef800e1b2.tar.gz
vaadin-framework-3b385cda46b30b9843e9509ecdc2df7ef800e1b2.zip
Table ItemClickListener now supports middle- and right-button. Fixes #2987
svn changeset:7914/svn branch:6.0
Diffstat (limited to 'src')
-rw-r--r--src/com/vaadin/demo/sampler/features/table/TableStylingExample.java5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java16
2 files changed, 14 insertions, 7 deletions
diff --git a/src/com/vaadin/demo/sampler/features/table/TableStylingExample.java b/src/com/vaadin/demo/sampler/features/table/TableStylingExample.java
index afcd565ff7..80b059aeda 100644
--- a/src/com/vaadin/demo/sampler/features/table/TableStylingExample.java
+++ b/src/com/vaadin/demo/sampler/features/table/TableStylingExample.java
@@ -70,6 +70,7 @@ public class TableStylingExample extends VerticalLayout {
table.setColumnCollapsingAllowed(true);
// Actions (a.k.a context menu)
+
table.addActionHandler(new Action.Handler() {
public Action[] getActions(Object target, Object sender) {
return ACTIONS;
@@ -115,6 +116,10 @@ public class TableStylingExample extends VerticalLayout {
// toggle cell 'marked' styling when double-clicked
table.addListener(new ItemClickListener() {
public void itemClick(ItemClickEvent event) {
+ if (event.getButton() == ItemClickEvent.BUTTON_RIGHT) {
+ // you can handle left/right/middle -mouseclick
+ }
+
if (event.isDoubleClick()) {
Object itemId = event.getItemId();
Object propertyId = event.getPropertyId();
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
index 2bc747fbc8..3978f3cc78 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java
@@ -2203,7 +2203,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollListener {
this.rowKey = rowKey;
rowElement = Document.get().createTRElement();
setElement(rowElement);
- DOM.sinkEvents(getElement(), Event.ONCLICK | Event.ONDBLCLICK
+ DOM.sinkEvents(getElement(), Event.ONMOUSEUP | Event.ONDBLCLICK
| Event.ONCONTEXTMENU);
}
@@ -2402,7 +2402,8 @@ public class VScrollTable extends FlowPanel implements Table, ScrollListener {
paintableId,
"clickEvent",
details.toString(),
- !(!doubleClick
+ !(event.getButton() == Event.BUTTON_LEFT
+ && !doubleClick
&& selectMode > Table.SELECT_MODE_NONE && immediate));
}
}
@@ -2416,9 +2417,13 @@ public class VScrollTable extends FlowPanel implements Table, ScrollListener {
Element targetTdOrTr = getEventTargetTdOrTr(event);
if (targetTdOrTr != null) {
switch (DOM.eventGetType(event)) {
- case Event.ONCLICK:
+ case Event.ONDBLCLICK:
+ handleClickEvent(event, targetTdOrTr);
+ break;
+ case Event.ONMOUSEUP:
handleClickEvent(event, targetTdOrTr);
- if (selectMode > Table.SELECT_MODE_NONE) {
+ if (event.getButton() == Event.BUTTON_LEFT
+ && selectMode > Table.SELECT_MODE_NONE) {
toggleSelection();
// Note: changing the immediateness of this
// might
@@ -2428,9 +2433,6 @@ public class VScrollTable extends FlowPanel implements Table, ScrollListener {
selectedRowKeys.toArray(), immediate);
}
break;
- case Event.ONDBLCLICK:
- handleClickEvent(event, targetTdOrTr);
- break;
case Event.ONCONTEXTMENU:
showContextMenu(event);
break;