table.setColumnCollapsingAllowed(true);
// Actions (a.k.a context menu)
+
table.addActionHandler(new Action.Handler() {
public Action[] getActions(Object target, Object sender) {
return ACTIONS;
// 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();
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);
}
paintableId,
"clickEvent",
details.toString(),
- !(!doubleClick
+ !(event.getButton() == Event.BUTTON_LEFT
+ && !doubleClick
&& selectMode > Table.SELECT_MODE_NONE && immediate));
}
}
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
selectedRowKeys.toArray(), immediate);
}
break;
- case Event.ONDBLCLICK:
- handleClickEvent(event, targetTdOrTr);
- break;
case Event.ONCONTEXTMENU:
showContextMenu(event);
break;