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);