From 393ad06f402464ba6340b3605c3cd9e1d08dd0e8 Mon Sep 17 00:00:00 2001 From: Musachy Barroso Date: Thu, 7 Jun 2007 00:04:23 +0000 Subject: [PATCH] WW-1975 Autocompleter w/loadMinimumCount ask for data on loading page * Add "preload" attribute, which default to true (like in the div tag), which will prevent the autocompleter from loading its options when page is loaded git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@545001 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/struts2/dojo/components/Autocompleter.java | 8 ++++++++ .../struts2/dojo/views/jsp/ui/AutocompleterTag.java | 6 ++++++ .../apache/struts2/static/dojo/struts/widget/ComboBox.js | 5 ++++- .../org/apache/struts2/static/dojo/struts_dojo.js | 4 ++-- .../struts2/static/dojo/struts_dojo.js.uncompressed.js | 5 ++++- .../src/main/resources/template/ajax/autocompleter.ftl | 3 +++ .../struts2/dojo/views/jsp/ui/AutocompleterTest.java | 1 + .../apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt | 1 + 8 files changed, 29 insertions(+), 4 deletions(-) diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java index dbd7661b6..f6101333c 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java @@ -252,6 +252,7 @@ public class Autocompleter extends ComboBox { protected String valueNotifyTopics; protected String resultsLimit; protected String transport; + protected String preload; public Autocompleter(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { @@ -324,6 +325,8 @@ public class Autocompleter extends ComboBox { } if (transport != null) addParameter("transport", findString(transport)); + if (preload != null) + addParameter("preload", findValue(preload, Boolean.class)); String keyNameExpr = "%{" + keyName + "}"; addParameter("key", findString(keyNameExpr)); @@ -516,4 +519,9 @@ public class Autocompleter extends ComboBox { public void setTransport(String transport) { this.transport = transport; } + + @StrutsTagAttribute(description="Load options when page is loaded", type="Boolean", defaultValue="true") + public void setPreload(String preload) { + this.preload = preload; + } } diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java index 54ac5ce0a..5e26e9f56 100644 --- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java +++ b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java @@ -61,6 +61,7 @@ public class AutocompleterTag extends ComboBoxTag { protected String valueNotifyTopics; protected String resultsLimit; protected String transport; + protected String preload; public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { return new Autocompleter(stack, req, res); @@ -96,6 +97,7 @@ public class AutocompleterTag extends ComboBoxTag { autocompleter.setValueNotifyTopics(valueNotifyTopics); autocompleter.setResultsLimit(resultsLimit); autocompleter.setTransport(transport); + autocompleter.setPreload(preload); } public void setAutoComplete(String autoComplete) { @@ -205,4 +207,8 @@ public class AutocompleterTag extends ComboBoxTag { public void setTransport(String transport) { this.transport = transport; } + + public void setPreload(String preload) { + this.preload = preload; + } } diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js index e959939c8..6989dac65 100644 --- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js +++ b/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js @@ -184,7 +184,7 @@ struts.widget.ComboBoxDataProvider = function(combobox, node){ }; - if(!dojo.string.isBlank(this.cbox.dataUrl)){ + if(!dojo.string.isBlank(this.cbox.dataUrl) && this.cbox.preload){ this.getData(this.cbox.dataUrl); } else { // check to see if we can populate the list from