[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...
Gavin King
gavin.king at jboss.com
Tue Sep 26 23:53:50 EDT 2006
User: gavin
Date: 06/09/26 23:53:50
Modified: src/ui/org/jboss/seam/ui HtmlLink.java
Log:
stateful seam interceptors
page parameters
crud framework prototype
bugfixes to PC passivation stuff
Revision Changes Path
1.12 +24 -2 jboss-seam/src/ui/org/jboss/seam/ui/HtmlLink.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HtmlLink.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/HtmlLink.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- HtmlLink.java 17 Jul 2006 20:09:44 -0000 1.11
+++ HtmlLink.java 27 Sep 2006 03:53:50 -0000 1.12
@@ -3,6 +3,9 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
import javax.faces.component.UIComponent;
import javax.faces.component.UIData;
@@ -14,6 +17,7 @@
import javax.faces.model.DataModel;
import org.jboss.seam.core.Manager;
+import org.jboss.seam.core.Pages;
public class HtmlLink extends HtmlOutputLink
{
@@ -89,13 +93,31 @@
String viewId = view==null ? context.getViewRoot().getViewId() : view;
String url = context.getApplication().getViewHandler().getActionURL(context, viewId);
String encodedUrl = context.getExternalContext().encodeActionURL(url);
+
String characterEncoding = context.getResponseWriter().getCharacterEncoding();
boolean first = true;
+ Set<String> usedParameters = new HashSet<String>();
+
for (Object child: getChildren())
{
if (child instanceof UIParameter)
{
- encodedUrl += getParameterString(characterEncoding, (UIParameter) child, first);
+ UIParameter uip = (UIParameter) child;
+ encodedUrl += getParameterString(characterEncoding, uip, first);
+ first = false;
+ usedParameters.add( uip.getName() );
+ }
+ }
+
+ if (view!=null)
+ {
+ Map<String, Object> pageParameters = Pages.instance().getParameters(view, usedParameters);
+ for ( Map.Entry<String, Object> me: pageParameters.entrySet() )
+ {
+ UIParameter uip = new UIParameter();
+ uip.setName( me.getKey() );
+ uip.setValue( me.getValue() );
+ encodedUrl += getParameterString(characterEncoding, uip, first);
first = false;
}
}
More information about the jboss-cvs-commits
mailing list