[richfaces-svn-commits] JBoss Rich Faces SVN: r4645 - trunk/ui/calendar/src/main/java/org/richfaces/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Mon Dec 10 07:01:41 EST 2007


Author: akushunin
Date: 2007-12-10 07:01:41 -0500 (Mon, 10 Dec 2007)
New Revision: 4645

Modified:
   trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
Log:
RF-1471

Modified: trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
===================================================================
--- trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java	2007-12-10 11:05:30 UTC (rev 4644)
+++ trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java	2007-12-10 12:01:41 UTC (rev 4645)
@@ -30,10 +30,12 @@
 import java.util.TimeZone;
 
 import javax.faces.FacesException;
+import javax.faces.application.Application;
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIInput;
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
 import javax.faces.convert.ConverterException;
 import javax.faces.convert.DateTimeConverter;
 import javax.faces.el.MethodBinding;
@@ -55,7 +57,6 @@
 
 import java.text.DateFormat;
 
-
 // import org.richfaces.renderkit.html.BaseGradient.Data;
 
 /**
@@ -158,7 +159,7 @@
 	public abstract int getVerticalOffset();
 
 	public abstract void setVerticalOffset(int verticalOffset);
-	
+
 	public abstract int getHorizontalOffset();
 
 	public abstract void setHorizontalOffset(int horizontalOffset);
@@ -170,36 +171,35 @@
 	public abstract String getIsDayEnabled();
 
 	public abstract void setIsDayEnabled(String isDayEnabled);
-	
+
 	public abstract String getCellHeight();
 
 	public abstract void setCellHeight(String cellHeight);
-	
+
 	public abstract String getCellWidth();
 
 	public abstract void setCellWidth(String cellWidth);
-	
+
 	public abstract boolean isShowWeekDaysBar();
-	
+
 	public abstract void setShowWeekDaysBar(boolean showWeekDaysBar);
-	
+
 	public abstract boolean isShowWeeksBar();
-	
+
 	public abstract void setShowWeeksBar(boolean showWeeksBar);
-	
+
 	public abstract boolean isShowScrollerBar();
-	
+
 	public abstract void setShowScrollerBar(boolean showScrollerBar);
-	
+
 	public abstract String getTodayControlMode();
-	
+
 	public abstract void setTodayControlMode(String todayControlMode);
-	
+
 	public abstract boolean isShowApplyButton();
-	
+
 	public abstract void setShowApplyButton(boolean showApplyButton);
-	
-	
+
 	// TODO onclick add users onclick
 
 	// currentDate processing -------------------------------------------------
@@ -235,25 +235,26 @@
 		if (context == null) {
 			throw new NullPointerException();
 		}
-		//RF-1073
+		// RF-1073
 		try {
 			ValueBinding vb = getValueBinding("currentDate");
 			if (vb != null) {
-				if(vb.getType(context).equals(String.class)){
+				if (vb.getType(context).equals(String.class)) {
 					DateTimeConverter convert = new DateTimeConverter();
 					convert.setLocale(getLocale());
 					convert.setPattern(getDatePattern());
-					vb.setValue(context,convert.getAsString(context, this, currentDate));
+					vb.setValue(context, convert.getAsString(context, this,
+							currentDate));
 					return;
-				}else if(vb.getType(context).equals(Calendar.class)){
+				} else if (vb.getType(context).equals(Calendar.class)) {
 					Calendar c = Calendar.getInstance();
 					c.setTime((Date) currentDate);
 					vb.setValue(context, c);
 					return;
-				}else{
+				} else {
 					vb.setValue(context, currentDate);
 					return;
-				}				
+				}
 			} else {
 				setCurrentDate(currentDate);
 			}
@@ -310,8 +311,18 @@
 					if (date instanceof Calendar) {
 						return ((Calendar) date).getTime();
 					} else {
+						FacesContext context = FacesContext
+								.getCurrentInstance();
+						Application application = context.getApplication();
+						Converter converter = application.createConverter(date
+								.getClass());
+						if (null != converter) {
+							return getAsDate(converter.getAsString(context,
+									this, date));
+						} else {
+							throw new FacesException("Wrong attibute type or there is no converter for custom attibute type");
+						}
 
-						throw new FacesException("Wrong attibute type");
 					}
 				}
 			}




More information about the richfaces-svn-commits mailing list