[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...

Gavin King gavin.king at jboss.com
Sun Oct 1 21:01:37 EDT 2006


  User: gavin   
  Date: 06/10/01 21:01:37

  Modified:    src/ui/org/jboss/seam/ui       JSF.java UIValidateAll.java
  Added:       src/ui/org/jboss/seam/ui       UIDecorate.java
                        UIDecorations.java UIMessageDecoration.java
                        UIStyleDecoration.java
  Log:
  JBSEAM-374 <s:decorate/>, <s:decorations/>, <s:span/>, <s:message/>
  
  Revision  Changes    Path
  1.2       +156 -89   jboss-seam/src/ui/org/jboss/seam/ui/JSF.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JSF.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/JSF.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- JSF.java	10 Jun 2006 15:22:59 -0000	1.1
  +++ JSF.java	2 Oct 2006 01:01:37 -0000	1.2
  @@ -15,32 +15,45 @@
    */
   package org.jboss.seam.ui;
   
  +import java.io.IOException;
  +import java.util.List;
  +
  +import javax.faces.component.UIComponent;
  +import javax.faces.context.FacesContext;
   
   /**
    * Constant declarations for JSF tags
  + * 
    * @author Anton Koinov (latest modification by $Author: gavin $)
  - * @version $Revision: 1.1 $ $Date: 2006/06/10 15:22:59 $
  + * @version $Revision: 1.2 $ $Date: 2006/10/02 01:01:37 $
    */
   public class JSF
   {
   
       // Common Attributes
       public static final String   ID_ATTR                        = "id";
  +
       public static final String   VALUE_ATTR                     = "value";
  +
       public static final String   BINDING_ATTR                   = "binding";
  +
       public static final String   STYLE_CLASS_ATTR               = "styleClass";
  +
       public static final String   ESCAPE_ATTR                    = "escape";
   
       // Common Output Attributes
       public static final String   FOR_ATTR                       = "for";
  +
       public static final String   CONVERTER_ATTR                 = "converter";
   
       // Ouput_Time Attributes
       public static final String   TIME_STYLE_ATTR                = "timeStyle";
  +
       public static final String   TIMEZONE_ATTR                  = "timezone";
   
       // Common Input Attributes
       public static final String   REQUIRED_ATTR                  = "required";
  +
       public static final String   VALIDATOR_ATTR                 = "validator";
   
       // Input_Secret Attributes
  @@ -54,48 +67,69 @@
   
       // SelectMany Checkbox List/ Select One Radio Attributes
       public static final String BORDER_ATTR                 = "border";
  +
       public static final String DISABLED_CLASS_ATTR         = "disabledClass";
  +
       public static final String ENABLED_CLASS_ATTR          = "enabledClass";
   
       // Common Command Attributes
  -    /**@deprecated */
  +   /** @deprecated */
       public static final String   COMMAND_CLASS_ATTR           = "commandClass";
  +
       public static final String   LABEL_ATTR                   = "label";
  +
       public static final String   IMAGE_ATTR                   = "image";
  +
       public static final String   ACTION_ATTR                 = "action";
  -    public static final String   IMMEDIATE_ATTR              = "immediate";
   
  +   public static final String IMMEDIATE_ATTR = "immediate";
   
       // Command_Button Attributes
       public static final String   TYPE_ATTR                    = "type";
   
       // Common Panel Attributes
  -    /**@deprecated */
  +   /** @deprecated */
       public static final String   PANEL_CLASS_ATTR       = "panelClass";
  +
       public static final String   FOOTER_CLASS_ATTR      = "footerClass";
  +
       public static final String   HEADER_CLASS_ATTR      = "headerClass";
  +
       public static final String   COLUMN_CLASSES_ATTR    = "columnClasses";
  +
       public static final String   ROW_CLASSES_ATTR       = "rowClasses";
   
       // Panel_Grid Attributes
       public static final String   COLUMNS_ATTR          = "columns";
  +
       public static final String   COLSPAN_ATTR          = "colspan"; // extension
   
       // UIMessage and UIMessages attributes
       public static final String SHOW_SUMMARY_ATTR            = "showSummary";
  +
       public static final String SHOW_DETAIL_ATTR             = "showDetail";
  +
       public static final String GLOBAL_ONLY_ATTR             = "globalOnly";
   
       // HtmlOutputMessage attributes
       public static final String ERROR_CLASS_ATTR            = "errorClass";
  +
       public static final String ERROR_STYLE_ATTR            = "errorStyle";
  +
       public static final String FATAL_CLASS_ATTR            = "fatalClass";
  +
       public static final String FATAL_STYLE_ATTR            = "fatalStyle";
  +
       public static final String INFO_CLASS_ATTR             = "infoClass";
  +
       public static final String INFO_STYLE_ATTR             = "infoStyle";
  +
       public static final String WARN_CLASS_ATTR             = "warnClass";
  +
       public static final String WARN_STYLE_ATTR             = "warnStyle";
  +
       public static final String TITLE_ATTR                  = "title";
  +
       public static final String TOOLTIP_ATTR                = "tooltip";
   
       // GraphicImage attributes
  @@ -103,13 +137,46 @@
   
       // UISelectItem attributes
       public static final String ITEM_DISABLED_ATTR          = "itemDisabled";
  +
       public static final String ITEM_DESCRIPTION_ATTR       = "itemDescription";
  +
       public static final String ITEM_LABEL_ATTR             = "itemLabel";
  +
       public static final String ITEM_VALUE_ATTR             = "itemValue";
   
       // UIData attributes
       public static final String ROWS_ATTR                   = "rows";
  +
       public static final String VAR_ATTR                    = "var";
  +
       public static final String FIRST_ATTR                  = "first";
   
  +   public static void renderChildren(FacesContext facesContext,
  +         UIComponent component) throws IOException
  +   {
  +      List children = component.getChildren();
  +      for (int j=0, size = component.getChildCount(); j<size; j++)
  +      {
  +         UIComponent child = (UIComponent) children.get(j);
  +         renderChild(facesContext, child);
  +      }
  +   }
  +
  +   public static void renderChild(FacesContext facesContext, UIComponent child)
  +         throws IOException
  +   {
  +      if ( child.isRendered() )
  +      {
  +         child.encodeBegin(facesContext);
  +         if ( child.getRendersChildren() )
  +         {
  +            child.encodeChildren(facesContext);
  +         } else
  +         {
  +            renderChildren(facesContext, child);
  +         }
  +         child.encodeEnd(facesContext);
  +      }
  +   }
  +
   }
  
  
  
  1.4       +2 -1      jboss-seam/src/ui/org/jboss/seam/ui/UIValidateAll.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UIValidateAll.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/UIValidateAll.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- UIValidateAll.java	25 May 2006 12:37:54 -0000	1.3
  +++ UIValidateAll.java	2 Oct 2006 01:01:37 -0000	1.4
  @@ -7,12 +7,13 @@
   
   public class UIValidateAll extends UIComponentBase
   {
  +   public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.ValidateAll";
      public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIValidateAll";
         
      @Override
      public String getFamily()
      {
  -      return "org.jboss.seam.ui.ValidateAll";
  +      return COMPONENT_FAMILY;
      }
   
      @Override
  
  
  
  1.1      date: 2006/10/02 01:01:37;  author: gavin;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/UIDecorate.java
  
  Index: UIDecorate.java
  ===================================================================
  package org.jboss.seam.ui;
  
  import java.io.IOException;
  
  import javax.faces.component.UIComponent;
  import javax.faces.component.UIComponentBase;
  import javax.faces.component.UIInput;
  import javax.faces.context.FacesContext;
  
  public class UIDecorate extends UIComponentBase
  {
  
     public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIDecorate";
     public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.Decorate";
     
     private String forId;
  
     @Override
     public String getFamily()
     {
        return COMPONENT_FAMILY;
     }
  
     private boolean hasMessage()
     {
        String id = getInputId();
        
        if (id==null) 
        {
           return false;
        }
        else
        {
           UIComponent component = findComponent(id);
           return component==null ? null : 
              getFacesContext().getMessages( component.getClientId( getFacesContext() ) ).hasNext();
        }
     }
  
     public String getInputId()
     {
        String id = getFor();
        if (id==null)
        {
           for (Object child: getChildren())
           {
              if (child instanceof UIInput)
              {
                 UIInput input = (UIInput) child;
                 if ( input.isRendered() )
                 {
                    return input.getId();
                 }
              }
           }
           return null;
        }
        else
        {
           return id;
        }
     }
  
     @Override
     public boolean getRendersChildren()
     {
        return true;
     }
     
     private UIDecorations getParentDecorations(UIComponent component)
     {
        if (component instanceof UIDecorations) 
        {
           return (UIDecorations) component;
        }
        else if ( component.getParent()==null )
        {
           return null;
        }
        else
        {
           return getParentDecorations( component.getParent() );
        }
     }
  
     public String getFor()
     {
        return forId;
     }
  
     public void setFor(String forId)
     {
        this.forId = forId;
     }
  
     @Override
     public void encodeBegin(FacesContext context) throws IOException
     {
        super.encodeBegin(context);
        boolean hasMessage = hasMessage();
        UIDecorations parentDecorations = getParentDecorations(this);
        UIComponent aroundDecoration = parentDecorations.getAroundDecoration();
        UIComponent aroundInvalidDecoration = parentDecorations.getAroundInvalidDecoration();
        if (aroundDecoration!=null && !hasMessage)
        {
           aroundDecoration.setParent(this);
           aroundDecoration.encodeBegin(context);
        }
        if (aroundInvalidDecoration!=null && hasMessage)
        {
           aroundInvalidDecoration.setParent(this);
           aroundInvalidDecoration.encodeBegin(context);
        }
     }
  
     @Override
     public void encodeEnd(FacesContext context) throws IOException
     {
        boolean hasMessage = hasMessage();
        UIDecorations parentDecorations = getParentDecorations(this);
        UIComponent aroundDecoration = parentDecorations.getAroundDecoration();
        UIComponent aroundInvalidDecoration = parentDecorations.getAroundInvalidDecoration();
        if (aroundDecoration!=null && !hasMessage)
        {
           aroundDecoration.setParent(this);
           aroundDecoration.encodeEnd(context);
        }
        if (aroundInvalidDecoration!=null && hasMessage)
        {
           aroundInvalidDecoration.setParent(this);
           aroundInvalidDecoration.encodeEnd(context);
        }
        super.encodeEnd(context);
     }
  
     @Override
     public void encodeChildren(FacesContext facesContext) throws IOException
     {
        boolean hasMessage = hasMessage();
        UIDecorations parentDecorations = getParentDecorations(this);
        UIComponent beforeDecoration = parentDecorations.getBeforeDecoration();
        UIComponent afterDecoration = parentDecorations.getAfterDecoration();
        UIComponent beforeInvalidDecoration = parentDecorations.getBeforeInvalidDecoration();
        UIComponent afterInvalidDecoration = parentDecorations.getAfterInvalidDecoration();
        if ( beforeDecoration!=null && !hasMessage )
        {
           beforeDecoration.setParent(this);
           JSF.renderChild(facesContext, beforeDecoration);
        }
        if ( beforeInvalidDecoration!=null && hasMessage )
        {
           beforeInvalidDecoration.setParent(this);
           JSF.renderChild(facesContext, beforeInvalidDecoration);
        }
        JSF.renderChildren(facesContext, this);
        if ( afterDecoration!=null  && !hasMessage )
        {
           afterDecoration.setParent(this);
           JSF.renderChild(facesContext, afterDecoration);
        }
        if ( afterInvalidDecoration!=null && hasMessage )
        {
           afterInvalidDecoration.setParent(this);
           JSF.renderChild(facesContext, afterInvalidDecoration);
        }
     }
  
     @Override
     public void restoreState(FacesContext context, Object state) {
        Object[] values = (Object[]) state;
        super.restoreState(context, values[0]);
        forId = (String) values[1];
     }
  
     @Override
     public Object saveState(FacesContext context) {
        Object[] values = new Object[2];
        values[0] = super.saveState(context);
        values[1] = forId;
        return values;
     }
  
  }
  
  
  
  1.1      date: 2006/10/02 01:01:37;  author: gavin;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/UIDecorations.java
  
  Index: UIDecorations.java
  ===================================================================
  package org.jboss.seam.ui;
  
  import javax.faces.component.UIComponent;
  import javax.faces.component.UIComponentBase;
  
  public class UIDecorations extends UIComponentBase
  {
  
     public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIDecorations";
     public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.Decorations";
  
     @Override
     public String getFamily()
     {
        return COMPONENT_FAMILY;
     }
     
     public UIComponent getBeforeInvalidDecoration()
     {
        return getFacet("beforeInvalidField");
     }
  
     public UIComponent getAfterInvalidDecoration()
     {
        return getFacet("afterInvalidField");
     }
  
     public UIComponent getAroundInvalidDecoration()
     {
        return getFacet("aroundInvalidField");
     }
  
     public UIComponent getBeforeDecoration()
     {
        return getFacet("beforeField");
     }
  
     public UIComponent getAfterDecoration()
     {
        return getFacet("afterField");
     }
  
     public UIComponent getAroundDecoration()
     {
        return getFacet("aroundField");
     }
  
  }
  
  
  
  1.1      date: 2006/10/02 01:01:37;  author: gavin;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/UIMessageDecoration.java
  
  Index: UIMessageDecoration.java
  ===================================================================
  package org.jboss.seam.ui;
  
  import javax.faces.component.UIComponent;
  import javax.faces.component.UIMessage;
  
  
  public class UIMessageDecoration extends UIMessage
  {
     public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIMessageDecoration";
  
     private UIDecorate getParentDecorate(UIComponent component)
     {
        if (component instanceof UIDecorate) 
        {
           return (UIDecorate) component;
        }
        else if ( component.getParent()==null )
        {
           return null;
        }
        else
        {
           return getParentDecorate( component.getParent() );
        }
     }
  
     @Override
     public String getFor()
     {
        UIDecorate decorate = getParentDecorate(this);
        return decorate==null ? null : decorate.getInputId();
     }
  
  }
  
  
  
  1.1      date: 2006/10/02 01:01:37;  author: gavin;  state: Exp;jboss-seam/src/ui/org/jboss/seam/ui/UIStyleDecoration.java
  
  Index: UIStyleDecoration.java
  ===================================================================
  package org.jboss.seam.ui;
  
  import java.io.IOException;
  
  import javax.faces.component.UIComponentBase;
  import javax.faces.context.FacesContext;
  import javax.faces.context.ResponseWriter;
  
  public class UIStyleDecoration extends UIComponentBase
  {
     public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.StyleDecoration";
     public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIStyleDecoration";
     
     private String styleClass;
  
     @Override
     public String getFamily()
     {
        return COMPONENT_FAMILY;
     }
  
     public String getStyleClass()
     {
        return styleClass;
     }
  
     public void setStyleClass(String styleClass)
     {
        this.styleClass = styleClass;
     }
  
     @Override
     public void restoreState(FacesContext context, Object state) {
        Object[] values = (Object[]) state;
        super.restoreState(context, values[0]);
        styleClass = (String) values[1];
     }
  
     @Override
     public Object saveState(FacesContext context) {
        Object[] values = new Object[2];
        values[0] = super.saveState(context);
        values[1] = styleClass;
        return values;
     }
  
     @Override
     public void encodeBegin(FacesContext context) throws IOException
     {
        super.encodeBegin(context);
        ResponseWriter response = context.getResponseWriter();
        response.startElement("span", this);
        response.writeAttribute("class", styleClass, "styleClass");
     }
  
     @Override
     public void encodeEnd(FacesContext context) throws IOException
     {
        ResponseWriter response = context.getResponseWriter();
        response.endElement("span");
        response.flush();
        super.encodeEnd(context);
     }
  
     
     
  }
  
  
  



More information about the jboss-cvs-commits mailing list