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);