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 15:59:41 UTC

[3/3] isis git commit: ISIS-1603: automatically opens reference panel when enter inline prompt panel

ISIS-1603: automatically opens reference panel when enter inline prompt panel


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

Branch: refs/heads/ISIS-1603
Commit: ae298df4bae9d7a8dc57c55abc17163c08121426
Parents: a5a1cd6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Apr 27 16:59:33 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Apr 27 16:59:33 2017 +0100

----------------------------------------------------------------------
 .../ui/components/scalars/ScalarPanelAbstract.java | 17 ++++++++++++++---
 .../scalars/ScalarPanelSelect2Abstract.java        | 16 ++++++++++++++++
 .../scalars/reference/ReferencePanel.java          |  1 -
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   | 10 ++++++++++
 4 files changed, 40 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ae298df4/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index f334f01..50a6a36 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -462,7 +462,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
 
     /**
-     * Returns a container holding an empty form.  This can be switched out using {@link #switchFormForInlinePrompt()}.
+     * Returns a container holding an empty form.  This can be switched out using {@link #switchFormForInlinePrompt(AjaxRequestTarget)}.
      */
     private WebMarkupContainer createInlinePromptForm() {
 
@@ -518,7 +518,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
                                 getComponentForRegular(),
                                 scalarIfRegularInlinePromptForm));
 
-                switchFormForInlinePrompt();
+                switchFormForInlinePrompt(target);
 
                 getComponentForRegular().setVisible(false);
                 scalarIfRegularInlinePromptForm.setVisible(true);
@@ -533,9 +533,20 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
         });
     }
 
-    private void switchFormForInlinePrompt() {
+    private void switchFormForInlinePrompt(final AjaxRequestTarget target) {
         scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
                 scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+
+        onSwitchFormForInlinePrompt(scalarIfRegularInlinePromptForm, target);
+    }
+
+    /**
+     * Optional hook.
+     */
+    protected void onSwitchFormForInlinePrompt(
+            final WebMarkupContainer inlinePromptForm,
+            final AjaxRequestTarget target) {
+
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ae298df4/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index a9738e5..d9d41b6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -25,6 +25,7 @@ import com.google.common.base.Strings;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.model.Model;
@@ -120,6 +121,21 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract {
     // //////////////////////////////////////
 
     /**
+     * Automatically "opens" the select2.
+     */
+    @Override
+    protected void onSwitchFormForInlinePrompt(
+            final WebMarkupContainer inlinePromptForm,
+            final AjaxRequestTarget target) {
+
+        target.appendJavaScript(
+                String.format("Wicket.Event.publish(Isis.Topic.OPEN_SELECT2, '%s')", inlinePromptForm.getMarkupId()));
+
+    }
+
+    // //////////////////////////////////////
+
+    /**
      * Hook method to refresh choices when changing.
      *
      * <p>

http://git-wip-us.apache.org/repos/asf/isis/blob/ae298df4/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index ee29561..639ddc7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -503,7 +503,6 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
     }
 
 
-
     // //////////////////////////////////////
 
     @com.google.inject.Inject

http://git-wip-us.apache.org/repos/asf/isis/blob/ae298df4/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index 24b391e..1bd0c35 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -27,6 +27,7 @@ $(function() {
     window.Isis = {
         Topic: {
             OPEN_IN_NEW_TAB: 'openInNewTab',
+            OPEN_SELECT2: 'openSelect2',
             CLOSE_SELECT2: 'closeSelect2',
             FOCUS_FIRST_PARAMETER: 'focusFirstParameter',
             FOCUS_FIRST_PROPERTY: 'focusFirstProperty'
@@ -80,6 +81,15 @@ $(function() {
         if(win) { win.focus(); }
     });
 
+    Wicket.Event.subscribe(Isis.Topic.OPEN_SELECT2, function(jqEvent, panelId) {
+        setTimeout(function() {
+            var $panel = $('#'+panelId);
+             console.log($panel);
+            $($panel).find('select').select2('open');
+//            $($panel).find('select').filter(':visible:first').focus();
+        }, 0);
+    });
+
     Wicket.Event.subscribe(Isis.Topic.CLOSE_SELECT2, function(jqEvent, panelId) {
         setTimeout(function() {
             var $panel = $('#'+panelId);