[richfaces-svn-commits] JBoss Rich Faces SVN: r5618 - in trunk: ui/orderingList/src/main/java/org/richfaces/component and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Jan 24 20:36:38 EST 2008


Author: nbelaevski
Date: 2008-01-24 20:36:38 -0500 (Thu, 24 Jan 2008)
New Revision: 5618

Removed:
   trunk/ui/orderingList/src/main/java/org/richfaces/component/MessageFactory.java
Modified:
   trunk/framework/impl/src/main/java/org/richfaces/component/util/MessageUtil.java
   trunk/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
Log:
http://jira.jboss.com/jira/browse/RF-2018

Modified: trunk/framework/impl/src/main/java/org/richfaces/component/util/MessageUtil.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/component/util/MessageUtil.java	2008-01-25 01:23:45 UTC (rev 5617)
+++ trunk/framework/impl/src/main/java/org/richfaces/component/util/MessageUtil.java	2008-01-25 01:36:38 UTC (rev 5618)
@@ -21,8 +21,15 @@
 
 package org.richfaces.component.util;
 
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
 import javax.faces.application.Application;
+import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
 import javax.faces.el.ValueBinding;
 
@@ -65,4 +72,87 @@
 		
 		return o;
 	}
+	
+	private static final ResourceBundle getResourceBundle(String baseName, Locale locale, ClassLoader loader) {
+		if (loader != null) {
+			return ResourceBundle.getBundle(baseName, locale, loader);
+		} else {
+			return ResourceBundle.getBundle(baseName, locale);
+		}
+	}
+	
+	private static final FacesMessage getMessage(FacesContext context, String messageId, 
+			Object[] parameters, Locale locale) {
+		String summary = null;
+		String detail = null;
+		
+		ClassLoader loader = Thread.currentThread().getContextClassLoader();
+		
+		if (context != null) {
+			Application application = context.getApplication();
+			if (application != null) {
+				String messageBundleName = application.getMessageBundle();
+	
+				if (messageBundleName != null) {
+					ResourceBundle bundle = getResourceBundle(messageBundleName, locale, loader);
+					if (bundle != null) {
+						try {
+							summary = bundle.getString(messageId);
+							detail = bundle.getString(messageId + "_detail");
+						} catch (MissingResourceException e) {
+							//do nothing
+						}
+					}
+				}
+			}
+		}
+
+		if (summary == null) {
+			ResourceBundle bundle = getResourceBundle(FacesMessage.FACES_MESSAGES, locale, loader);
+			try {
+				summary = bundle.getString(messageId);
+				
+				if (summary == null) {
+					return null;
+				}
+
+				detail = bundle.getString(messageId + "_detail");
+			} catch (MissingResourceException e) {
+				//do nothing
+			}
+		}
+		
+		String formattedSummary = MessageFormat.format(summary, parameters);
+		String formattedDetail = null;
+		if (detail != null) {
+			formattedDetail = MessageFormat.format(detail, parameters);
+		}
+		
+		return new FacesMessage(formattedSummary, formattedDetail);
+	}
+	
+	public static final FacesMessage getMessage(FacesContext context, String messageId, 
+			Object[] parameters) {
+
+		Locale locale;
+		FacesMessage result = null;
+		
+		if (context != null) {
+			UIViewRoot viewRoot = context.getViewRoot();
+			if (viewRoot != null) {
+				locale = viewRoot.getLocale();
+			
+				if (locale != null) {
+					result = getMessage(context, messageId, parameters, locale);
+				}
+			}
+		}
+		
+		if (result == null) {
+			locale = Locale.getDefault();
+			result = getMessage(context, messageId, parameters, locale);
+		}
+
+		return result;
+	}
 }

Deleted: trunk/ui/orderingList/src/main/java/org/richfaces/component/MessageFactory.java
===================================================================
--- trunk/ui/orderingList/src/main/java/org/richfaces/component/MessageFactory.java	2008-01-25 01:23:45 UTC (rev 5617)
+++ trunk/ui/orderingList/src/main/java/org/richfaces/component/MessageFactory.java	2008-01-25 01:36:38 UTC (rev 5618)
@@ -1,22 +0,0 @@
-/**
- * 
- */
-package org.richfaces.component;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.context.FacesContext;
-
-/**
- * @author Nick Belaevski
- *         mailto:nbelaevski at exadel.com
- *         created 05.11.2007
- * @since 3.2
- */
-public class MessageFactory {
-
-	public static FacesMessage getMessage(FacesContext context,
-			String conversionMessageId) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}

Modified: trunk/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
===================================================================
--- trunk/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java	2008-01-25 01:23:45 UTC (rev 5617)
+++ trunk/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java	2008-01-25 01:36:38 UTC (rev 5618)
@@ -37,6 +37,7 @@
 import org.apache.commons.collections.Predicate;
 import org.apache.commons.collections.iterators.EmptyIterator;
 import org.apache.commons.collections.iterators.FilterIterator;
+import org.richfaces.component.util.MessageUtil;
 
 /**
  * @author Nick Belaevski
@@ -320,9 +321,11 @@
 	protected void validateValue(FacesContext context, Object newValue) {
 		// If our value is valid, enforce the required property if present
 		if (isValid() && isRequired() && isEmpty(newValue)) {
-			FacesMessage message =
-				MessageFactory.getMessage(context, UIInput.REQUIRED_MESSAGE_ID);
+			FacesMessage message = MessageUtil.getMessage(context, 
+					UIInput.REQUIRED_MESSAGE_ID, 
+					new Object[] {MessageUtil.getLabel(context, this)});
 			message.setSeverity(FacesMessage.SEVERITY_ERROR);
+			
 			context.addMessage(getClientId(context), message);
 			setValid(false);
 		}
@@ -431,7 +434,8 @@
 			FacesMessage message = null;
 			if (null == messageStr) {
 				message =
-					MessageFactory.getMessage(context, UIInput.CONVERSION_MESSAGE_ID);
+					MessageUtil.getMessage(context, UIInput.CONVERSION_MESSAGE_ID, 
+							new Object[] {MessageUtil.getLabel(context, this)});
 			}
 			else {
 				message = new FacesMessage(messageStr);
@@ -441,20 +445,23 @@
 			setValid(false);
 		}
 		catch (FacesException e) {
-			FacesMessage message =
-				MessageFactory.getMessage(context, UIInput.CONVERSION_MESSAGE_ID);
+			FacesMessage message = 
+				MessageUtil.getMessage(context, UIInput.CONVERSION_MESSAGE_ID, 
+					new Object[] {MessageUtil.getLabel(context, this)});
 			message.setSeverity(FacesMessage.SEVERITY_ERROR);
 			context.addMessage(getClientId(context), message);
 			setValid(false);
 		} catch (IllegalArgumentException e) {
-			FacesMessage message =
-				MessageFactory.getMessage(context, UIInput.CONVERSION_MESSAGE_ID);
+			FacesMessage message = 
+				MessageUtil.getMessage(context, UIInput.CONVERSION_MESSAGE_ID, 
+					new Object[] {MessageUtil.getLabel(context, this)});
 			message.setSeverity(FacesMessage.SEVERITY_ERROR);
 			context.addMessage(getClientId(context), message);
 			setValid(false);
 		} catch (Exception e) {
 			FacesMessage message =
-				MessageFactory.getMessage(context, UIInput.CONVERSION_MESSAGE_ID);
+				MessageUtil.getMessage(context, UIInput.CONVERSION_MESSAGE_ID, 
+					new Object[] {MessageUtil.getLabel(context, this)});
 			message.setSeverity(FacesMessage.SEVERITY_ERROR);
 			context.addMessage(getClientId(context), message);
 			setValid(false);
@@ -488,8 +495,8 @@
 			ConverterException ce, Object value) {
 		FacesMessage message = ce.getFacesMessage();
 		if (message == null) {
-			message = MessageFactory.getMessage(context,
-					UIInput.CONVERSION_MESSAGE_ID);
+			message = MessageUtil.getMessage(context, UIInput.CONVERSION_MESSAGE_ID, 
+					new Object[] {MessageUtil.getLabel(context, this)});
 			if (message.getDetail() == null) {
 				message.setDetail(ce.getMessage());
 			}




More information about the richfaces-svn-commits mailing list