dev@javaserverfaces.java.net

Re: Review: Fix demo issues.

From: Roger Kitain <Roger.Kitain_at_Sun.COM>
Date: Tue, 17 May 2005 12:53:43 -0400

r=rogerk

Jayashri Visvanathan wrote:

>
> M components/src/java/components/components/GraphComponent.java
> register listener from the constructor only ifits n initial request
> to prevent accumulation of listeners.
>
> M components/src/java/components/renderkit/RepeaterRenderer.java
> commented out call to super.encodeChildren, pending resolution of
> JSF Spec issue 79
>
> M guessNumber/src/java/guessNumber/UserNumberBean.java
> Fix null ptr exception when a submit point is clicked without a value.
>
>------------------------------------------------------------------------
>
>Index: components/src/java/components/components/GraphComponent.java
>===================================================================
>RCS file: /cvs/javaserverfaces-sources/jsf-demo/components/src/java/components/components/GraphComponent.java,v
>retrieving revision 1.1
>diff -u -r1.1 GraphComponent.java
>--- components/src/java/components/components/GraphComponent.java 20 May 2004 17:08:47 -0000 1.1
>+++ components/src/java/components/components/GraphComponent.java 17 May 2005 16:39:43 -0000
>@@ -52,6 +52,11 @@
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
>
>+import javax.faces.render.RenderKit;
>+import javax.faces.render.RenderKitFactory;
>+import javax.faces.render.ResponseStateManager;
>+import javax.faces.FactoryFinder;
>+
> /**
> * Component wrapping a {_at_link Graph} object that is pointed at by the
> * a value binding reference expression. This component supports
>@@ -69,10 +74,20 @@
> // set a default actionListener to expand or collapse a node
> // when a node is clicked.
> Class signature[] = {ActionEvent.class};
>- setActionListener(FacesContext.getCurrentInstance().getApplication()
>+ // add listener only if its an initial request. If its a postback
>+ // the listener will be persisted by the state saving mechanism, so
>+ // we don't want to accumulate the listeners.
>+ FacesContext context = FacesContext.getCurrentInstance();
>+ String renderkitId =
>+ context.getApplication().getViewHandler().
>+ calculateRenderKitId(context);
>+ ResponseStateManager rsm = this.getResponseStateManager(context,
>+ renderkitId);
>+ if (!rsm.isPostback(context)) {
>+ setActionListener(FacesContext.getCurrentInstance().getApplication()
> .createMethodBinding(
>- "#{GraphBean.processGraphEvent}",
>- signature));
>+ "#{GraphBean.processGraphEvent}", signature));
>+ }
>
> }
>
>@@ -84,6 +99,20 @@
>
> return ("Graph");
>
>+ }
>+
>+ protected ResponseStateManager getResponseStateManager(FacesContext context,
>+ String renderKitId){
>+
>+ RenderKitFactory renderKitFactory = (RenderKitFactory)
>+ FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
>+
>+ RenderKit renderKit = renderKitFactory.getRenderKit(context, renderKitId);
>+
>+ if ( renderKit != null) {
>+ return renderKit.getResponseStateManager();
>+ }
>+ return null;
> }
>
> }
>Index: components/src/java/components/renderkit/RepeaterRenderer.java
>===================================================================
>RCS file: /cvs/javaserverfaces-sources/jsf-demo/components/src/java/components/renderkit/RepeaterRenderer.java,v
>retrieving revision 1.2
>diff -u -r1.2 RepeaterRenderer.java
>--- components/src/java/components/renderkit/RepeaterRenderer.java 16 Jul 2004 01:09:19 -0000 1.2
>+++ components/src/java/components/renderkit/RepeaterRenderer.java 17 May 2005 16:39:43 -0000
>@@ -101,8 +101,9 @@
> */
> public void encodeChildren(FacesContext context, UIComponent component)
> throws IOException {
>-
>- super.encodeChildren(context, component);
>+ // PENDING (visvan) Issue 79. If we decide to fix this in the spec,
>+ // this call can be uncommented.
>+ // super.encodeChildren(context, component);
> ResponseWriter writer = context.getResponseWriter();
> UIData data = (UIData) component;
>
>Index: guessNumber/src/java/guessNumber/UserNumberBean.java
>===================================================================
>RCS file: /cvs/javaserverfaces-sources/jsf-demo/guessNumber/src/java/guessNumber/UserNumberBean.java,v
>retrieving revision 1.6
>diff -u -r1.6 UserNumberBean.java
>--- guessNumber/src/java/guessNumber/UserNumberBean.java 13 May 2005 11:41:12 -0000 1.6
>+++ guessNumber/src/java/guessNumber/UserNumberBean.java 17 May 2005 16:39:44 -0000
>@@ -77,10 +77,11 @@
>
> public String getResponse() {
>
>- assert (userNumber != null); // indicates an EL conversion failure
>-
>- if (userNumber.compareTo(randomInt) == 0) {
>+ if (userNumber != null && userNumber.compareTo(randomInt) == 0) {
> return "Yay! You got it!";
>+ } else if (userNumber == null) {
>+ return "Sorry, " + userNumber +
>+ " is incorrect. Try a larger number.";
> } else {
> int num = userNumber.intValue();
> if (num > randomInt.intValue()) {
>
>
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe_at_javaserverfaces.dev.java.net
>For additional commands, e-mail: dev-help_at_javaserverfaces.dev.java.net
>
>