Author: akushunin
Date: 2007-09-25 09:58:18 -0400 (Tue, 25 Sep 2007)
New Revision: 3100
Modified:
branches/3.1.x/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
branches/3.1.x/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
Log:
RF-955
RF-979
Modified:
branches/3.1.x/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
===================================================================
---
branches/3.1.x/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2007-09-25
13:53:44 UTC (rev 3099)
+++
branches/3.1.x/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2007-09-25
13:58:18 UTC (rev 3100)
@@ -38,12 +38,15 @@
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ActionEvent;
import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
import javax.faces.event.ValueChangeEvent;
import org.ajax4jsf.component.AjaxComponent;
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.event.AjaxEvent;
+import org.ajax4jsf.event.AjaxSingleEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.richfaces.event.CurrentDateChangeEvent;
@@ -63,13 +66,13 @@
public static final String COMPONENT_TYPE = "org.richfaces.Calendar";
private static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
-
+
public static final String AJAX_MODE = "ajax";
-
- public static final String CLIENT_MODE = "client";
-
+
+ public static final String CLIENT_MODE = "client";
+
private final static Log log = LogFactory.getLog(UICalendar.class);
-
+
public abstract Locale getLocale();
public abstract void setLocale(Locale locale);
@@ -125,7 +128,7 @@
public abstract boolean isPopup();
public abstract void setPopup(boolean popup);
-
+
public abstract boolean isDisabled();
public abstract void setDisabled(boolean disabled);
@@ -137,22 +140,30 @@
public abstract String getToolTipMode();
public abstract void setToolTipMode(String toolTipMode);
-
+
public abstract String getBoundaryDatesMode();
public abstract void setBoundaryDatesMode(String boundaryDatesMode);
-
+
public abstract MethodBinding getCurrentDateChangeListener();
- public abstract void setCurrentDateChangeListener(MethodBinding scrollerListener);
-
+ public abstract void setCurrentDateChangeListener(
+ MethodBinding scrollerListener);
+
public abstract String getMode();
public abstract void setMode(String mode);
-
-
- //TODO onclick add users onclick
+ public abstract int getVerticalOffset();
+
+ public abstract void setVerticalOffset(int verticalOffset);
+
+ public abstract int getHorizontalOffset();
+
+ public abstract void setHorizontalOffset(int horizontalOffset);
+
+ // TODO onclick add users onclick
+
// currentDate processing -------------------------------------------------
public Calendar getCalendar() {
@@ -194,12 +205,13 @@
} else {
setCurrentDate(currentDate);
}
-
+
} catch (Exception e) {
setValid(false);
- //XXX nick - kaa - add log.debug(...)
+ // XXX nick - kaa - add log.debug(...)
if (log.isDebugEnabled()) {
- log.debug(" updateCurrentDate method throws exception: "+e.toString(),e);
+ log.debug(" updateCurrentDate method throws exception: "
+ + e.toString(), e);
}
e.printStackTrace();
String messageString = e.toString();
@@ -278,14 +290,16 @@
calendar.clear();
calendar.set(Calendar.DATE, 1);
int idx = currentDateString.indexOf('/');
- if (idx != -1){
- calendar.set(Calendar.MONTH, Integer.parseInt(currentDateString
- .substring(0, idx)) - 1);
- calendar.set(Calendar.YEAR, Integer.parseInt(currentDateString
- .substring(idx + 1)));
+ if (idx != -1) {
+ calendar.set(Calendar.MONTH, Integer.parseInt(currentDateString
+ .substring(0, idx)) - 1);
+ calendar.set(Calendar.YEAR, Integer.parseInt(currentDateString
+ .substring(idx + 1)));
- return calendar.getTime();
- }else {return null;}
+ return calendar.getTime();
+ } else {
+ return null;
+ }
}
@@ -296,7 +310,9 @@
AjaxContext ajaxContext = AjaxContext
.getCurrentInstance(facesContext);
ajaxContext.addRegionsFromComponent(this);
- if(getPreload()!=null){ajaxContext.setResponseData(getPreload());}
+ if (getPreload() != null) {
+ ajaxContext.setResponseData(getPreload());
+ }
} else {
if (event instanceof CurrentDateChangeEvent) {
FacesContext facesContext = FacesContext.getCurrentInstance();
@@ -316,36 +332,40 @@
// method
// for more
- //XX nick - kaa - throw exception and review resulting message :)
-
+ // XX nick - kaa - throw exception and review resulting
+ // message :)
+
Date currentDate = convertCurrentDate(currentDateString);
CurrentDateChangeEvent newDateChangeEvent = new CurrentDateChangeEvent(
this, currentDate);
newDateChangeEvent.queue();
MethodBinding binding = getCurrentDateChangeListener();
-
- if(binding!=null){
-
- binding.invoke(facesContext, new Object[]{event});
+
+ if (binding != null) {
+
+ binding
+ .invoke(facesContext,
+ new Object[] { event });
}
-
-
-
- } catch (Exception e) {
+
+ } catch (Exception e) {
// XXX nick - kaa - add log.debug(...)
// XXX nick - kaa - we should stop processing on exc.
// setValid(false) and then call
// FacesContext.renderResponse(...)
// update model phase shouldn't start
if (log.isDebugEnabled()) {
- log.debug(" currentDate convertion fails with following exception:
"+e.toString(),e);
+ log.debug(
+ " currentDate convertion fails with following exception: "
+ + e.toString(), e);
}
setValid(false);
String messageString = e.toString();
e.printStackTrace();
- FacesMessage message = new FacesMessage(messageString);
+ FacesMessage message = new FacesMessage(messageString);
message.setSeverity(FacesMessage.SEVERITY_ERROR);
- facesContext.addMessage(getClientId(facesContext),message);
+ facesContext.addMessage(getClientId(facesContext),
+ message);
facesContext.renderResponse();
}
@@ -380,8 +400,7 @@
HashMap args = new HashMap();
args.put("startDate", CalendarRendererBase
.formatDate(preloadDateRange[0]));
- args
- .put("days", calendarDataModelItems);
+ args.put("days", calendarDataModelItems);
return args;
}
}
@@ -392,37 +411,37 @@
public Date[] getPreloadDateRange() {
Date dateRangeBegin = this.getPreloadDateRangeBegin();
Date dateRangeEnd = this.getPreloadDateRangeEnd();
-
- if(dateRangeBegin==null&&dateRangeEnd==null){
+
+ if (dateRangeBegin == null && dateRangeEnd == null) {
return null;
- }
- else{
- if (dateRangeBegin.after(dateRangeEnd)) {
- // XXX add message
- FacesMessage message = new FacesMessage("preloadDateRangeBegin is greater than
preloadDateRangeEnd");
- message.setSeverity(FacesMessage.SEVERITY_ERROR);
- FacesContext context = FacesContext.getCurrentInstance();
- context.addMessage(getClientId(context), message);
- throw new IllegalArgumentException();
- }
+ } else {
+ if (dateRangeBegin.after(dateRangeEnd)) {
+ // XXX add message
+ FacesMessage message = new FacesMessage(
+ "preloadDateRangeBegin is greater than preloadDateRangeEnd");
+ message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ FacesContext context = FacesContext.getCurrentInstance();
+ context.addMessage(getClientId(context), message);
+ throw new IllegalArgumentException();
+ }
- List dates = new ArrayList();
+ List dates = new ArrayList();
- Calendar calendar = Calendar.getInstance(this.getTimeZone(), this
- .getLocale());
- Calendar calendar2 = (Calendar) calendar.clone();
- calendar.setTime(dateRangeBegin);
- calendar2.setTime(dateRangeEnd);
+ Calendar calendar = Calendar.getInstance(this.getTimeZone(), this
+ .getLocale());
+ Calendar calendar2 = (Calendar) calendar.clone();
+ calendar.setTime(dateRangeBegin);
+ calendar2.setTime(dateRangeEnd);
- do {
- dates.add(calendar.getTime());
- calendar.add(Calendar.DATE, 1);
- } while (!calendar.after(calendar2));
+ do {
+ dates.add(calendar.getTime());
+ calendar.add(Calendar.DATE, 1);
+ } while (!calendar.after(calendar2));
- return (Date[]) dates.toArray(new Date[dates.size()]);
+ return (Date[]) dates.toArray(new Date[dates.size()]);
+ }
}
- }
-
+
public void addCurrentDateChangeListener(CurrentDateChangeListener listener) {
addFacesListener(listener);
}
@@ -431,8 +450,10 @@
return (CurrentDateChangeListener[])
getFacesListeners(CurrentDateChangeListener.class);
}
- public void removeCurrentDateChangeListener(CurrentDateChangeListener listener) {
+ public void removeCurrentDateChangeListener(
+ CurrentDateChangeListener listener) {
removeFacesListener(listener);
- }
-
+ }
+
+
}
Modified: branches/3.1.x/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
===================================================================
---
branches/3.1.x/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-09-25
13:53:44 UTC (rev 3099)
+++
branches/3.1.x/ui/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-09-25
13:58:18 UTC (rev 3100)
@@ -15,15 +15,23 @@
<div id="#{clientId}"
style="z-index: #{component.attributes['zindex']};
#{component.attributes['style']}"
- class="#{component.attributes['styleClass']}"
+ class="rich-calendar-popup #{component.attributes['styleClass']}"
x:passThruWithExclusions="value,name,type,id,styleClass,class,style">
<script
type="text/javascript">
new Calendar('#{clientId}', {
- submitFunction:
- <jsp:scriptlet>/*<![CDATA[*/
- writeSubmitFunction(context, component);
- /*]]>*/</jsp:scriptlet>,
+
+ <jsp:scriptlet>/*<![CDATA[*/
+ String mode = (String) component.getAttributes().get("mode");
+ if(org.richfaces.component.UICalendar.AJAX_MODE.equals(mode)){
+ /*]]>*/</jsp:scriptlet>
+
+ submitFunction: <jsp:scriptlet>/*<![CDATA[*/writeSubmitFunction(context,
component);/*]]>*/</jsp:scriptlet>,
+
+ <jsp:scriptlet>/*<![CDATA[*/
+ }
+ /*]]>*/</jsp:scriptlet>
+
dayListTableId: '#{clientId}Day',
weekNumberBarId: '#{clientId}WeekNum',
weekDayBarId: '#{clientId}WeekDay',
@@ -38,6 +46,9 @@
enableManualInput: #{component.attributes['enableManualInput']},
showInput: #{component.attributes['showInput']},
disabled: #{component.disabled},
+ ajaxSingle: #{component.attributes['ajaxSingle']},
+ verticalOffset:'#{component.verticalOffset}',
+ horizontalOffset: '#{component.horizontalOffset}',
<f:call name="writeSymbols" />,
firstWeekDay: #{this:getFirstWeekDay(context, component)},
minDaysInFirstWeek: #{this:getMinDaysInFirstWeek(context, component)}