ISIS-1603: adds workaround for https://issues.apache.org/jira/browse/WICKET-6364 so do not tab to hidden input fields.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9b41e114 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9b41e114 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9b41e114 Branch: refs/heads/master Commit: 9b41e1147afafa4b85f6c7829f72f119758d24b8 Parents: 5bfd652 Author: Dan Haywood <[email protected]> Authored: Mon May 1 15:38:09 2017 +0100 Committer: Dan Haywood <[email protected]> Committed: Mon May 1 15:38:09 2017 +0100 ---------------------------------------------------------------------- .../ui/panels/PromptFormPanelAbstract.java | 30 ++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/9b41e114/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java ---------------------------------------------------------------------- diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java index 140862e..2ed2bdb 100644 --- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java +++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java @@ -37,6 +37,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; +import org.apache.wicket.util.string.AppendingStringBuffer; import org.apache.isis.applib.annotation.PromptStyle; import org.apache.isis.core.commons.authentication.AuthenticationSession; @@ -78,6 +79,9 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & FormExecutor private final WicketViewerSettings settings; private final T formExecutorContext; + private final AjaxButton okButton; + private final AjaxButton cancelButton; + public FormAbstract( final String id, final Component parentPanel, @@ -94,8 +98,8 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & FormExecutor FormFeedbackPanel formFeedback = new FormFeedbackPanel(ID_FEEDBACK); addOrReplace(formFeedback); - AjaxButton okButton = addOkButton(); - final AjaxButton cancelButton = addCancelButton(); + okButton = addOkButton(); + cancelButton = addCancelButton(); configureButtons(okButton, cancelButton); } @@ -291,6 +295,28 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & FormExecutor } + private AjaxButton defaultSubmittingComponent() { + return okButton; + } + + // workaround for https://issues.apache.org/jira/browse/WICKET-6364 + @Override + protected void appendDefaultButtonField() { + AppendingStringBuffer buffer = new AppendingStringBuffer(); + buffer.append("<div style=\"width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden\">"); + buffer.append("<input type=\"text\" tabindex=\"-1\" autocomplete=\"off\"/>"); + Component submittingComponent = (Component)this.defaultSubmittingComponent(); + buffer.append("<input type=\"submit\" tabindex=\"-1\" name=\""); + buffer.append(this.defaultSubmittingComponent().getInputName()); + buffer.append("\" onclick=\" var b=document.getElementById(\'"); + buffer.append(submittingComponent.getMarkupId()); + buffer.append("\'); if (b!=null&&b.onclick!=null&&typeof(b.onclick) != \'undefined\') { var r = Wicket.bind(b.onclick, b)(); if (r != false) b.click(); } else { b.click(); }; return false;\" "); + buffer.append(" />"); + buffer.append("</div>"); + this.getResponse().write(buffer); + } + + }
