[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