Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
$URL: https://source.sakaiproject.org/svn/jsf/tags/sakai-10.0/jsf-widgets/src/java/org/sakaiproject/jsf/renderer/AlphaIndexRenderer.java $ $Id: AlphaIndexRenderer.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $ Copyright (c) 2003, 2004, 2005, 2006, 2008 The Sakai Foundation Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.opensource.org/licenses/ECL-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. /
 
 
 
 package org.sakaiproject.jsf.renderer;
 
 

Description:

Render an alphabetical index. Makes any letter that exists in the initials parameter a link.

Copyright: Copyright (c) 2004

Organization: Sakai Project

Author(s):
Ed Smiley
Version:
$Id: AlphaIndexRenderer.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $
 
 
 public class AlphaIndexRenderer
     extends Renderer
 {
 
   public boolean supportsComponentType(UIComponent component)
   {
     return (component instanceof UIOutput);
   }
 
   public void decode(FacesContext contextUIComponent component)
   {
     context.getViewRoot().setTransient(true); /* where "context" is of type "FaceContext" */
   }
 
   public void encodeBegin(FacesContext contextUIComponent componentthrows
       IOException
   {
     ;
   }
 
   public void encodeChildren(FacesContext contextUIComponent componentthrows
       IOException
   {
     ;
   }

  

Render an alphabetical index. Makes any letter that exists in the initials parameter a link. Any other is simply displayed.

Example:
| <a href='#A'><b>A</b></a> | <b>B</b>...

Parameters:
context FacesContext for the request we are processing
component UIComponent to be rendered
Throws:
java.io.IOException if an input/output error occurs while rendering
java.lang.NullPointerException if context or component is null
 
   public void encodeEnd(FacesContext contextUIComponent componentthrows
       IOException
   {
 
     if ( !component.isRendered())
     {
       return;
     }
 
     ResponseWriter writer = context.getResponseWriter();
     String initials = (String) RendererUtil.getAttribute(contextcomponent"initials");
 
     if (initials == nullinitials = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
     // this provides a semi-acceptable default
 
     initials = initials.toUpperCase();
    writer.write("\n"); // this makes the HTML a little cleaner
    // loop through the index for each letter
    for (char c = 'A'c < 'Z' + 1; c++)
    {
      // the student's last name starts with this letter, make this a link
      if (initialExists(cinitials))
      {
        writer.write("|<a href='#" + c + "'><b>" + c + "</b></a>");
      } else // the intial list DOES NOT contain this letter
      {
        writer.write("|<b>" + c + "</b>");
      }
    }
    writer.write("\n"); // this makes the HTML a little cleaner
  }

  
Is the character c in the initials string?

Parameters:
c
initials
Returns:
true if it is
  private boolean initialExists(char cString initials)
  {
    return initials.indexOf(""+c) > -1;
  }
New to GrepCode? Check out our FAQ X