You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/04/27 12:33:07 UTC

[21/35] isis git commit: ISIS-1603: spiking if can detect ESC to close inline prompt

ISIS-1603: spiking if can detect ESC to close inline prompt


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c8673f28
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c8673f28
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c8673f28

Branch: refs/heads/ISIS-1603
Commit: c8673f28bce39e8f256b4aba7031e29d1798813f
Parents: 4bdfb86
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Apr 24 21:00:58 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Apr 27 13:26:39 2017 +0100

----------------------------------------------------------------------
 .../actions/ActionParametersFormPanel.java      |  2 +-
 .../property/PropertyEditFormPanel.java         | 39 ++++++++++++++++++++
 .../ui/panels/PromptFormPanelAbstract.java      | 13 ++++---
 3 files changed, 48 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/c8673f28/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index 7a7d16c..daf7c62 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -112,7 +112,7 @@ public class ActionParametersFormPanel extends PromptFormPanelAbstract<ActionMod
         }
 
         @Override
-        protected void configureButtons(final AjaxButton okButton) {
+        protected void configureButtons(final AjaxButton okButton, final AjaxButton cancelButton) {
             applyAreYouSure(okButton);
         }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/c8673f28/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
index 4e7b456..9623490 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
@@ -21,7 +21,11 @@ package org.apache.isis.viewer.wicket.ui.components.property;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptContentHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Form;
 
@@ -130,6 +134,41 @@ public class PropertyEditFormPanel extends PromptFormPanelAbstract<ScalarModel>
             }
 
         }
+
+        @Override
+        protected void configureButtons(final AjaxButton okButton, final AjaxButton cancelButton) {
+            if(getScalarModel().getPromptStyle() == PromptStyle.INLINE) {
+                cancelButton.add(new AbstractDefaultAjaxBehavior() {
+
+                    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 =
+                            ""+"      evt.preventDefault(); \n   "
+                            +  "    } \n"
+                            +  "  }); \n"
+                            +  "});";
+
+                    @Override
+                    public void renderHead(final Component component, final IHeaderResponse response) {
+                        super.renderHead(component, response);
+
+                        final String javascript = PRE_JS + getCallbackScript() + POST_JS;
+                        response.render(
+                                JavaScriptContentHeaderItem.forScript(javascript, component.getPath(), null));
+                    }
+
+                    @Override
+                    protected void respond(final AjaxRequestTarget target) {
+                        onCancel(target);
+                    }
+
+
+                });
+            }
+        }
+
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/c8673f28/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 c4edc5a..8a20f08 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
@@ -91,11 +91,12 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & HasFormExecu
             addOrReplace(formFeedback);
 
             AjaxButton okButton = addOkButton();
-            addCancelButton();
-            configureButtons(okButton);
+            final AjaxButton cancelButton = addCancelButton();
+            configureButtons(okButton, cancelButton);
         }
 
-        protected abstract void addParameters();
+
+    protected abstract void addParameters();
 
         protected AjaxButton addOkButton() {
             AjaxButton okButton = settings.isUseIndicatorForFormSubmit()
@@ -150,7 +151,7 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & HasFormExecu
         }
 
 
-        protected void addCancelButton() {
+        protected AjaxButton addCancelButton() {
             AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, new ResourceModel("cancelLabel")) {
                 private static final long serialVersionUID = 1L;
 
@@ -169,9 +170,11 @@ public abstract class PromptFormPanelAbstract<T extends IModel<?> & HasFormExecu
             cancelButton.setDefaultFormProcessing(false);
 
             add(cancelButton);
+
+            return cancelButton;
         }
 
-        protected void configureButtons(final AjaxButton okButton) {
+        protected void configureButtons(final AjaxButton okButton, final AjaxButton cancelButton) {
         }
 
         private void onSubmitOf(