You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2007/05/06 15:19:26 UTC

svn commit: r535608 - in /myfaces/tobago/trunk: core/src/main/java/org/apache/myfaces/tobago/component/ core/src/main/java/org/apache/myfaces/tobago/renderkit/html/ theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/st...

Author: bommel
Date: Sun May  6 06:19:25 2007
New Revision: 535608

URL: http://svn.apache.org/viewvc?view=rev&rev=535608
Log:
(TOBAGO-385) Implement error handling in all renderer of EditableValueHolder

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectBooleanCheckboxRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyCheckboxRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyListboxRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneChoiceRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneRadioRenderer.java
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TextAreaRenderer.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/component/ComponentUtil.java Sun May  6 06:19:25 2007
@@ -59,6 +59,7 @@
 
 import javax.faces.FactoryFinder;
 import javax.faces.application.Application;
+import javax.faces.application.FacesMessage;
 import javax.faces.component.ActionSource;
 import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UICommand;
@@ -112,6 +113,21 @@
       }
     }
     return false;
+  }
+
+  public static String getFacesMessageAsString(FacesContext facesContext, UIComponent component) {
+    Iterator messages = facesContext.getMessages(
+        component.getClientId(facesContext));
+    StringBuilder stringBuffer = new StringBuilder();
+    while (messages.hasNext()) {
+      FacesMessage message = (FacesMessage) messages.next();
+      stringBuffer.append(message.getDetail());
+    }
+    if (stringBuffer.length() > 0) {
+      return stringBuffer.toString();
+    } else {
+      return null;
+    }
   }
 
   public static boolean isInPopup(UIComponent component) {

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlRendererUtil.java Sun May  6 06:19:25 2007
@@ -32,6 +32,7 @@
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE_INNER;
 import static org.apache.myfaces.tobago.TobagoConstants.FACET_LAYOUT;
 import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_OUT;
+import static org.apache.myfaces.tobago.TobagoConstants.ATTR_TIP;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.component.UIPage;
 import org.apache.myfaces.tobago.context.ResourceManagerUtil;
@@ -517,6 +518,11 @@
     writer.writeText(");", null);
 
     endJavascript(writer);
+  }
+
+  public static String getTitleFromTipAndMessages(FacesContext facesContext, UIComponent component) {
+    String messages = ComponentUtil.getFacesMessageAsString(facesContext, component);
+    return HtmlRendererUtil.addTip(messages, (String) component.getAttributes().get(ATTR_TIP));
   }
 
 

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java Sun May  6 06:19:25 2007
@@ -28,7 +28,6 @@
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_PASSWORD;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_READONLY;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_TIP;
 import static org.apache.myfaces.tobago.TobagoConstants.SUBCOMPONENT_SEP;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_REQUIRED;
 import org.apache.myfaces.tobago.ajax.api.AjaxPhaseListener;
@@ -44,7 +43,6 @@
 import org.apache.myfaces.tobago.renderkit.html.StyleClasses;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
-import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIInput;
 import javax.faces.component.EditableValueHolder;
@@ -62,21 +60,8 @@
   @Override
   public void encodeEnd(FacesContext facesContext, UIComponent component)
         throws IOException {
-    Iterator messages = facesContext.getMessages(
-        component.getClientId(facesContext));
-    StringBuilder stringBuffer = new StringBuilder();
-    while (messages.hasNext()) {
-      FacesMessage message = (FacesMessage) messages.next();
-      stringBuffer.append(message.getDetail());
-    }
 
-    String title = null;
-    if (stringBuffer.length() > 0) {
-      title = stringBuffer.toString();
-    }
-
-    title = HtmlRendererUtil.addTip(
-            title, (String) component.getAttributes().get(ATTR_TIP));
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
 
     String currentValue = getCurrentValue(facesContext, component);
     if (LOG.isDebugEnabled()) {

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectBooleanCheckboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectBooleanCheckboxRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectBooleanCheckboxRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectBooleanCheckboxRenderer.java Sun May  6 06:19:25 2007
@@ -31,6 +31,7 @@
 import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
 import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
+import org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -115,7 +116,10 @@
     writer.writeIdAttribute(component.getClientId(facesContext));
     writer.writeAttribute(HtmlAttributes.DISABLED,
         ComponentUtil.getBooleanAttribute(component, ATTR_DISABLED));
-    writer.writeAttribute(HtmlAttributes.TITLE, null, ATTR_TIP);
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
+    if (title != null) {
+      writer.writeAttribute(HtmlAttributes.TITLE, title, null);
+    }
     writer.endElement(HtmlConstants.INPUT);
 
     if (label != null && !inline) {

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyCheckboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyCheckboxRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyCheckboxRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyCheckboxRenderer.java Sun May  6 06:19:25 2007
@@ -25,11 +25,13 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DISABLED;
+import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.renderkit.RenderUtil;
 import org.apache.myfaces.tobago.renderkit.SelectManyRendererBase;
 import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
+import org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
 import javax.faces.component.NamingContainer;
@@ -61,11 +63,18 @@
     }
     String id = component.getClientId(facesContext);
 
-    writer.startElement(HtmlConstants.TABLE, null);
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
+
+    writer.startElement(HtmlConstants.TABLE, component);
+    //writer.writeComponentClass();
     writer.writeAttribute(HtmlAttributes.BORDER, "0", null);
     writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", null);
     writer.writeAttribute(HtmlAttributes.CELLPADDING, "0", null);
     writer.writeAttribute(HtmlAttributes.SUMMARY, "", null);
+    writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
+    if (title != null) {
+      writer.writeAttribute(HtmlAttributes.TITLE, title, null);
+    }
     List clientIds = new ArrayList();
     for (SelectItem item : items) {
 

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyListboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyListboxRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyListboxRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectManyListboxRenderer.java Sun May  6 06:19:25 2007
@@ -27,7 +27,6 @@
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DISABLED;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_HEIGHT;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_TIP;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.renderkit.SelectManyRendererBase;
 import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
@@ -88,7 +87,7 @@
 
     TobagoResponseWriter writer
         = (TobagoResponseWriter) facesContext.getResponseWriter();
-
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
     writer.startElement(HtmlConstants.SELECT, component);
     String clientId = component.getClientId(facesContext);
     writer.writeNameAttribute(clientId);
@@ -98,8 +97,9 @@
     writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
     writer.writeComponentClass();
     writer.writeAttribute(HtmlAttributes.MULTIPLE, HtmlAttributes.MULTIPLE, null);
-    writer.writeAttribute(HtmlAttributes.TITLE, null, ATTR_TIP);
-
+    if (title != null) {
+      writer.writeAttribute(HtmlAttributes.TITLE, title, null);
+    }
     Object[] values = component.getSelectedValues();
     if (LOG.isDebugEnabled()) {
       LOG.debug("values = '" + values + "'");

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneChoiceRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneChoiceRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneChoiceRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneChoiceRenderer.java Sun May  6 06:19:25 2007
@@ -27,7 +27,6 @@
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_DISABLED;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_READONLY;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_TIP;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.renderkit.HtmlUtils;
 import org.apache.myfaces.tobago.renderkit.SelectOneRendererBase;
@@ -60,6 +59,8 @@
       LOG.debug("items.size() = '" + items.size() + "'");
     }
 
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
+
     boolean disabled = items.size() == 0
         || ComponentUtil.getBooleanAttribute(component, ATTR_DISABLED)
         || ComponentUtil.getBooleanAttribute(component, ATTR_READONLY);
@@ -70,7 +71,9 @@
     writer.writeAttribute(HtmlAttributes.DISABLED, disabled);
     writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
     writer.writeComponentClass();
-    writer.writeAttribute(HtmlAttributes.TITLE, null, ATTR_TIP);
+    if (title != null) {
+      writer.writeAttribute(HtmlAttributes.TITLE, title, null);
+    }
     String onchange = HtmlUtils.generateOnchange(component, facesContext);
     if (onchange != null) {
       writer.writeAttribute(HtmlAttributes.ONCHANGE, onchange, null);

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneRadioRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneRadioRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneRadioRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SelectOneRadioRenderer.java Sun May  6 06:19:25 2007
@@ -34,6 +34,7 @@
 import org.apache.myfaces.tobago.renderkit.RenderUtil;
 import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
+import org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
 import javax.faces.component.NamingContainer;
@@ -76,18 +77,21 @@
     List<SelectItem> items = ComponentUtil.getItemsToRender(component);
 
     boolean inline = ComponentUtil.getBooleanAttribute(component, ATTR_INLINE);
-
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
     TobagoResponseWriter writer
         = (TobagoResponseWriter) facesContext.getResponseWriter();
 
     if (!inline) {
       writer.startElement(HtmlConstants.TABLE, component);
+      //writer.writeComponentClass();
       writer.writeAttribute(HtmlAttributes.BORDER, "0", null);
       writer.writeAttribute(HtmlAttributes.CELLSPACING, "0", null);
       writer.writeAttribute(HtmlAttributes.CELLPADDING, "0", null);
       writer.writeAttribute(HtmlAttributes.SUMMARY, "", null);
       writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
-      writer.writeAttribute(HtmlAttributes.TITLE, null, ATTR_TIP);
+      if (title != null) {
+        writer.writeAttribute(HtmlAttributes.TITLE, title, null);
+      }
     }
 
     Object value = component.getValue();

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TextAreaRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TextAreaRenderer.java?view=diff&rev=535608&r1=535607&r2=535608
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TextAreaRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TextAreaRenderer.java Sun May  6 06:19:25 2007
@@ -26,7 +26,6 @@
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_READONLY;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ROWS;
 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_TIP;
 import org.apache.myfaces.tobago.component.ComponentUtil;
 import org.apache.myfaces.tobago.renderkit.HtmlUtils;
 import org.apache.myfaces.tobago.renderkit.InputRendererBase;
@@ -35,12 +34,10 @@
 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
-import javax.faces.application.FacesMessage;
 import javax.faces.component.UIInput;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import java.io.IOException;
-import java.util.Iterator;
 
 public class TextAreaRenderer extends InputRendererBase {
 
@@ -49,22 +46,7 @@
         UIComponent component) throws IOException {
 
     UIInput input = (UIInput) component;
-    Iterator messages = facesContext.getMessages(
-        input.getClientId(facesContext));
-    StringBuilder stringBuffer = new StringBuilder();
-    while (messages.hasNext()) {
-      FacesMessage message = (FacesMessage) messages.next();
-      stringBuffer.append(message.getDetail());
-    }
-
-    String title = null;
-    if (stringBuffer.length() > 0) {
-      title = stringBuffer.toString();
-    }
-
-
-    title = HtmlRendererUtil.addTip(
-            title, (String) input.getAttributes().get(ATTR_TIP));
+    String title = HtmlRendererUtil.getTitleFromTipAndMessages(facesContext, component);
 
     String clientId = input.getClientId(facesContext);
     String onchange = HtmlUtils.generateOnchange(input, facesContext);