Bonjour tout le monde,
Je cherche à faire apparaitre un popup en cliquant sur le bouton droit de la souris mais sans faire apparaitre le menu contextuel du navigateur.
Pouvez vous m'aider ?
Je vous en remercie d'avance.
Bonjour tout le monde,
Je cherche à faire apparaitre un popup en cliquant sur le bouton droit de la souris mais sans faire apparaitre le menu contextuel du navigateur.
Pouvez vous m'aider ?
Je vous en remercie d'avance.
il faut creer une native :
que tu appelles quelques part dans ton entrypoint comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static native void disableContextMenu(Element element) /*-{ element.oncontextmenu = function() { return false; } }-*/;
Code : Sélectionner tout - Visualiser dans une fenêtre à part disableContextMenu(RootPanel.getBodyElement());
il faut appeler : e.stopEvent(); dans la methode onContextMenu
grid.addGridListener(new GridListenerAdapter() {
public void onContextMenu(EventObject e) {
e.stopEvent();
showContextMenu( e);
}
}
private void showContextMenu( EventObject e) {
if (menu == null) {
menu = new Menu();
Item editItem = new Item("Edit", new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
}
});
editItem.setId("edit-item");
menu.addItem(editItem);
Item disableItem = new Item("Disable", new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
}
});
disableItem.setId("disable-item");
menu.addItem(disableItem);
Item enableItem = new Item("Enable", new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
}
});
enableItem.setId("enable-item");
menu.addItem(enableItem);
}
menu.showAt(e.getXY());
}
_ Le but ici est donc bien de surcharger oncontextmenu ? Ou cela se fait-il?il faut appeler : e.stopEvent(); dans la methode onContextMenu
grid.addGridListener(new GridListenerAdapter() {
public void onContextMenu(EventObject e) {
e.stopEvent();
showContextMenu( e);
}
}
_ Ou trouve t-on le GridListener Adapter? Faut-il le créer ?
Le problème est que je ne peux pas utiliser gwt-Ext, est-ce qu'il est possible d'utiliser onContextMenu et plus généralement redéfinir un menu contextuel sans gwt-Ext ?
L'exemple de picsou marche mais je n'ai plus de menu contextuel du tout.
Différente approche :
J'essaye d'appeler une méthode lors de l'appel JSNI :
Méthode JSNI :
Méthode appelé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @SuppressWarnings("unused") private static native void disableContextMenu(Element element) /*-{ element.oncontextmenu = function() { this.@fr.tm.listeDesContacts.client.view.ListeDesContactsWidget::testMethode(Ljava/lang/String;)("String1"); return false; }; }-*/;
Quand je l'exécute il m'affiche une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 static public void testMethode(String s) { Window.alert("Ca marche"); }
Une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Ligne 2 Erreur : Argument ou appel de procédure incorrect
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager