Author: ehillenius
Date: Fri Jul 13 18:38:27 2007
New Revision: 556202
URL: http://svn.apache.org/viewvc?view=rev&rev=556202
Log:
optimized javascript (moved some code to generic script)
Modified:
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
Modified:
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js?view=diff&rev=556202&r1=556201&r2=556202
==============================================================================
---
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
(original)
+++
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
Fri Jul 13 18:38:27 2007
@@ -17,64 +17,27 @@
YAHOO.namespace("wicket");
-// init the date picker
function init${widgetId}DpJs() {
- // create date picker instance
- YAHOO.wicket.${widgetId}DpJs = new
YAHOO.widget.Calendar("${widgetId}DpJs","${widgetId}Dp", { ${calendarInit} });
- if (${alignWithIcon}) {
- iconPos = YAHOO.util.Dom.getXY("${widgetId}Icon");
- iconHeight = parseInt(YAHOO.util.Dom.getStyle("${widgetId}Icon",
"height"));
- YAHOO.wicket.${widgetId}DpJs.oDomContainer.style.top = iconPos[1] +
iconHeight + 1 + "px";
- YAHOO.wicket.${widgetId}DpJs.oDomContainer.style.left = iconPos[0] +
"px";
-}
-
- YAHOO.wicket.${widgetId}DpJs.isVisible = function() { return
YAHOO.wicket.${widgetId}DpJs.oDomContainer.style.display == 'block'; }
+ YAHOO.wicket.${widgetId}DpJs = new
YAHOO.widget.Calendar("${widgetId}DpJs","${widgetId}Dp", { ${calendarInit} });
+ YAHOO.wicket.${widgetId}DpJs.isVisible = function() { return
YAHOO.wicket.${widgetId}DpJs.oDomContainer.style.display == 'block'; }
+ if (${alignWithIcon})
Wicket.DateTime.positionRelativeTo(YAHOO.wicket.${widgetId}DpJs.oDomContainer,
"${widgetId}Icon");
- // inner function to show the calendar
- function showCalendar() {
- var dateValue = YAHOO.util.Dom.get("${widgetId}").value;
- if (dateValue) {
- dateValue = Wicket.DateTime.parseDate('${datePattern}', dateValue);
- YAHOO.wicket.${widgetId}DpJs.select(dateValue);
- var firstDate = YAHOO.wicket.${widgetId}DpJs.getSelectedDates()[0];
- YAHOO.wicket.${widgetId}DpJs.cfg.setProperty("pagedate",
(firstDate.getMonth() + 1) + "/" + firstDate.getFullYear());
- YAHOO.wicket.${widgetId}DpJs.render();
- }
- YAHOO.wicket.${widgetId}DpJs.show();
- }
+ function showCalendar() {
+ Wicket.DateTime.showCalendar(YAHOO.wicket.${widgetId}DpJs,
YAHOO.util.Dom.get("${widgetId}").value, '${datePattern}');
+ }
- // trigger popping up the date picker when the icon is clicked
- YAHOO.util.Event.addListener("${widgetId}Icon", "click", showCalendar,
YAHOO.wicket.${widgetId}DpJs, true);
+ YAHOO.util.Event.addListener("${widgetId}Icon", "click", showCalendar,
YAHOO.wicket.${widgetId}DpJs, true);
- // inner function for handling calendar selects
- function selectHandler(type, args, cal) {
- var selDateArray = args[0][0];
- var yr = selDateArray[0];
- var month = selDateArray[1];
- var dt = selDateArray[2];
- // optionally do some padding to match the pattern
- if('${datePattern}'.match(/\bdd\b/)) dt =
Wicket.DateTime.padDateFragment(dt);
- if('${datePattern}'.match(/\bMM\b/)) month =
Wicket.DateTime.padDateFragment(month);
- if('${datePattern}'.match(/\byy\b/)) yr =
Wicket.DateTime.padDateFragment(yr % 100);
- // replace pattern with real values
- var val = '${datePattern}'.replace(/d+/, dt).replace(/M+/,
month).replace(/y+/, yr);
- var wasVisible = YAHOO.wicket.${widgetId}DpJs.isVisible();
- YAHOO.util.Dom.get("${widgetId}").value = val;
- // hide picker
- cal.hide();
- // fire onchange notification
- if (wasVisible && ${fireChangeEvent}) {
- var field = YAHOO.util.Dom.get("${widgetId}");
- if (typeof(field.onchange) != 'undefined') {
- field.onchange();
- }
- }
- }
+ function selectHandler(type, args, cal) {
+ YAHOO.util.Dom.get("${widgetId}").value =
Wicket.DateTime.substituteDate('${datePattern}', args[0][0]);
+ cal.hide();
+ if (${fireChangeEvent} &&
YAHOO.wicket.${widgetId}DpJs.isVisible()) {
+ var field = YAHOO.util.Dom.get("${widgetId}");
+ if (typeof(field.onchange) != 'undefined')
field.onchange();
+ }
+ }
- // register the select handler function
- YAHOO.wicket.${widgetId}DpJs.selectEvent.subscribe(selectHandler,
YAHOO.wicket.${widgetId}DpJs);
-
- // now that everything is set up, render the date picker
- YAHOO.wicket.${widgetId}DpJs.render();
+ YAHOO.wicket.${widgetId}DpJs.selectEvent.subscribe(selectHandler,
YAHOO.wicket.${widgetId}DpJs);
+ YAHOO.wicket.${widgetId}DpJs.render();
}
Modified:
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js?view=diff&rev=556202&r1=556201&r2=556202
==============================================================================
---
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
(original)
+++
incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
Fri Jul 13 18:38:27 2007
@@ -68,3 +68,47 @@
Wicket.DateTime.padDateFragment = function(value) {
return (value < 10 ? "0" : "") + value;
}
+
+/**
+ * Position subject relative to target top-left.
+ * @param subject name of the dom element to has to be positioned
+ * @param target dom element to position relative to
+ */
+Wicket.DateTime.positionRelativeTo = function(subject, target) {
+ targetPos = YAHOO.util.Dom.getXY(target);
+ targetHeight = parseInt(YAHOO.util.Dom.getStyle(target, "height"));
+ subject.style.top = targetPos[1] + targetHeight + 1 + "px";
+ subject.style.left = targetPos[0] + "px";
+}
+
+/**
+ * Return the result of interpolating the value (date) argument with the date
pattern.
+ * The dateValue has to be an array, where year is in the first, month in the
second
+ * and date (day of month) in the third slot.
+ */
+Wicket.DateTime.substituteDate = function(datePattern, date) {
+ day = date[2];
+ month = date[1];
+ year = date[0];
+ // optionally do some padding to match the pattern
+ if(datePattern.match(/\bdd\b/)) day =
Wicket.DateTime.padDateFragment(day);
+ if(datePattern.match(/\bMM\b/)) month =
Wicket.DateTime.padDateFragment(month);
+ if(datePattern.match(/\byy\b/)) year =
Wicket.DateTime.padDateFragment(year % 100);
+ // replace pattern with real values
+ return datePattern.replace(/d+/, day).replace(/M+/,
month).replace(/y+/, year);
+}
+
+/**
+ * Display the YUI calendar widget. If the date is not null (should be a
string) then it is parsed
+ * using the provided date pattern, and set as the current date on the widget.
+ */
+Wicket.DateTime.showCalendar = function(widget, date, datePattern) {
+ if (date) {
+ date = Wicket.DateTime.parseDate(datePattern, date);
+ widget.select(date);
+ firstDate = widget.getSelectedDates()[0];
+ widget.cfg.setProperty("pagedate", (firstDate.getMonth() + 1) +
"/" + firstDate.getFullYear());
+ widget.render();
+ }
+ widget.show();
+}
\ No newline at end of file