RIght-Click in GWT? RIght-Click in GWT? ajax ajax

RIght-Click in GWT?


easy peasy, add a listener on the contextmenuhandler which will display a widget based on where the user right clicks. https://confluence.clazzes.org/pages/viewpage.action?pageId=425996

class MyWidget extends Composite implements ContextMenuHandler {  // just an example, use a meaningful Widget here...  private Widget base;  private PopupPanel contextMenu;  public MyWidget() {    // initialize base widget, etc...    this.contextMenu = new PopupPanel(true);    this.contextMenu.add(new HTML("My Context menu!"));    this.contextMenu.hide();    initWidget(this.base);    // of course it would be better if base would implement HasContextMenuHandlers, but the effect is the same    addDomHandler(this, ContextMenuEvent.getType());  }  public void onContextMenu(ContextMenuEvent event) {    // stop the browser from opening the context menu    event.preventDefault();    event.stopPropagation();    this.contextMenu.setPopupPosition(event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());    this.contextMenu.show();  }}

lastly you will want to disable the browsers menu for full overloading of this type of context menu. That should work in all of the browsers except opera. but honestly who uses that these days neways ^_______^

<body oncontextmenu="return false;">


It turns out you can do it by extending DeckPanel. Here's an excellent discussion, along with a nice demo that proves it works.

http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/


Although there are ways of doing it I believe the GWT team had a debate about this and decided enabling right click in a web app was a bad thing and so made the concious decision not to support it. The argument was that right click should continue to work as expected (bring up the host browser's right click context menu) and overriding this was breaking that expected behaviour and that and would be bad practice. While I have had instances where a right click context menu would be useful generally I tend to agree with the GWT team's decision.