You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/03/09 17:41:57 UTC

svn commit: r751737 - /labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java

Author: simoneg
Date: Mon Mar  9 16:41:56 2009
New Revision: 751737

URL: http://svn.apache.org/viewvc?rev=751737&view=rev
Log:
LABS-310 : fixes on SmartForm to support binding using new OnDemandBinder

Modified:
    labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java

Modified: labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java?rev=751737&r1=751736&r2=751737&view=diff
==============================================================================
--- labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java (original)
+++ labs/magma/trunk/website-beansview/src/main/java/org/apache/magma/website/beansview/SmartForm.java Mon Mar  9 16:41:56 2009
@@ -40,6 +40,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.Map.Entry;
 
 public class SmartForm extends WebHandler {
 
@@ -51,6 +52,8 @@
 	private HtmlProducer header = null;
 	private HtmlProducer footer = null;
 	
+	protected Map<String, String[]> allParams = null;
+	
 	ViewCustomizer filter = null;
 	
 	Map<String, List<?>> lists = new HashMap<String, List<?>>();
@@ -79,10 +82,13 @@
 		this.filter = filter;
 	}
 	
-	public void setAllParams(Map<String, String[]> params) {
+	
+	private void loadParams() {
+		if (allParams == null) return;
 		String mycode = getMyCode();
 		int mycodeLen = mycode.length();
-		for (Map.Entry<String, String[]> entry : params.entrySet()) {
+		Set<Entry<String, String[]>> entrySet = allParams.entrySet();
+		for (Map.Entry<String, String[]> entry : entrySet) {
 			if (entry.getKey().startsWith(mycode)) {
 				if (entry.getValue()[0].length() == 0) {
 					binding.put(entry.getKey().substring(mycodeLen + 1), null);					
@@ -95,7 +101,9 @@
 	}
 	
 	String getMyCode() {
-		return Integer.toString(getRelativePath().hashCode());
+		String relativePath = getRelativePath();
+		if (relativePath == null) relativePath = "";
+		return Integer.toString(relativePath.hashCode());
 	}
 
 	public HtmlProducer do_default() {
@@ -114,12 +122,14 @@
 	}
 	
 	public HtmlProducer doWorking() {
+		loadParams();
 		executeBinding();
 		return unrepeatable(doShow());
 	}
 	
 	public HtmlProducer doFilled() {
 		errors.clear();
+		loadParams();
 		FormAction action = executeBinding();
 		if (action == null) throw new MagmaException("Cannot find which form action button has been pressed");
 		if (action.isValidate()) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org