Hi all,
I configure into Apache Syncope the possibility to close ModalWindow with ESC
key press event.
public class CloseOnESCBehavior extends AbstractDefaultAjaxBehavior {
private static final long serialVersionUID = 5826308247642534260L;
private ModalWindow modalWindow;
public CloseOnESCBehavior(ModalWindow modalWindow) {
this.modalWindow = modalWindow;
}
private static final String PRE_JS = "$(document).ready(function() {\n"
+ "$(document).bind('keyup', function(evt) {\n"
+ " if (evt.keyCode == 27){\n";
private static final String POST_JS = "\n evt.preventDefault();\n"
+ "evt.stopImmediatePropagation();\n"
+ " }\n"
+ " });\n"
+ "});";
@Override
protected void respond(final AjaxRequestTarget target) {
modalWindow.close(target);
}
@Override
protected String findIndicatorId() {
return null;
}
@Override
public void renderHead(final Component component, final IHeaderResponse
response) {
response.renderJavaScript(new
StringBuilder(PRE_JS).append(getCallbackScript())
.append(POST_JS).toString(),
"closeModalOnEsc");
}
In the modal page:
add(new CloseOnESCBehavior(window));
It work correctly with Chrome and Safari. With Firefox, if I press the ESC key
twice quickly before the window closes the console return an error:
ERROR: Wicket.Ajax.Call.failure: Error while parsing response: Could not find
root <ajax-response> element
Regards
Marco
--
Dott. Marco Di Sabatino Di Diodoro
Tel. +39 3939065570
Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173
http://www.tirasa.net
Apache Syncope PPMC Member
http://people.apache.org/~mdisabatino