By the way, I'd be happy if someone (martin marinschek) did a quick 
double-check of this commit. The patch seems obvious, and works fine when 
testing, but a second pair of eyes might be nice.

---- [EMAIL PROTECTED] schrieb:
> Author: skitching
> Date: Fri Dec  7 03:15:14 2007
> New Revision: 602069
> 
> URL: http://svn.apache.org/viewvc?rev=602069&view=rev
> Log:
> Minor code optimisation: when rendering readonly or disabled calendar, don't 
> bother to create link and param components that will never be used.
> 
> Modified:
>     
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
> 
> Modified: 
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
> URL: 
> http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java?rev=602069&r1=602068&r2=602069&view=diff
> ==============================================================================
> --- 
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
>  (original)
> +++ 
> myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
>  Fri Dec  7 03:15:14 2007
> @@ -734,13 +734,7 @@
>              throws IOException
>      {
>          Converter converter = getConverter(component);
> -
>          Application application = facesContext.getApplication();
> -        HtmlCommandLink link
> -                = 
> (HtmlCommandLink)application.createComponent(HtmlCommandLink.COMPONENT_TYPE);
> -        link.setId(component.getId() + "_" + valueForLink.getTime() + 
> "_link");
> -        link.setTransient(true);
> -        link.setImmediate(component.isImmediate());
>  
>          HtmlOutputText text
>                  = 
> (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
> @@ -748,30 +742,33 @@
>          text.setId(component.getId() + "_" + valueForLink.getTime() + 
> "_text");
>          text.setTransient(true);
>  
> -        UIParameter parameter
> -                = 
> (UIParameter)application.createComponent(UIParameter.COMPONENT_TYPE);
> -        parameter.setId(component.getId() + "_" + valueForLink.getTime() + 
> "_param");
> -        parameter.setTransient(true);
> -        parameter.setName(component.getClientId(facesContext));
> -        parameter.setValue(converter.getAsString(facesContext, component, 
> valueForLink));
> -
>          HtmlInputCalendar calendar = (HtmlInputCalendar)component;
>          if (calendar.isDisabled() || calendar.isReadonly())
>          {
> -             // In this case, it appears that the link and parameter 
> components are not
> -             // used .. so why bother creating them above?
>              component.getChildren().add(text);
>  
>              RendererUtils.renderChild(facesContext, text);
> +            return;
>          }
> -        else
> -        {
> -            RendererUtils.addOrReplaceChild(component,link);
> -            link.getChildren().add(parameter);
> -            link.getChildren().add(text);
>  
> -            RendererUtils.renderChild(facesContext, link);
> -        }
> +        HtmlCommandLink link
> +                = 
> (HtmlCommandLink)application.createComponent(HtmlCommandLink.COMPONENT_TYPE);
> +        link.setId(component.getId() + "_" + valueForLink.getTime() + 
> "_link");
> +        link.setTransient(true);
> +        link.setImmediate(component.isImmediate());
> +
> +        UIParameter parameter
> +                = 
> (UIParameter)application.createComponent(UIParameter.COMPONENT_TYPE);
> +        parameter.setId(component.getId() + "_" + valueForLink.getTime() + 
> "_param");
> +        parameter.setTransient(true);
> +        parameter.setName(component.getClientId(facesContext));
> +        parameter.setValue(converter.getAsString(facesContext, component, 
> valueForLink));
> +
> +        RendererUtils.addOrReplaceChild(component,link);
> +        link.getChildren().add(parameter);
> +        link.getChildren().add(text);
> +
> +        RendererUtils.renderChild(facesContext, link);
>      }
>  
>      private Converter getConverter(UIInput component)
> 
> 

Reply via email to