/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.esri.gpt.framework.jsf;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
/**
* Date picker configuration JavaScript generator. Facilitiates date picker
* localization.
*/
public class DatePickerConfig extends SimpleTagSupport {
/**
* Called by the container to invoke this tag.
* The implementation of this method is provided by the tag library developer,
* and handles all tag processing, body iteration, etc.
*/
@Override
public void doTag() throws JspException {
JspWriter out = getJspContext().getOut();
HttpServletRequest request =
new FacesContextBroker().extractHttpServletRequest();
try {
out.println("<script type=\"text/javascript\">");
out.println("function DatePickerConfig() {");
out.println("_dpClearText : \"Erase\";");
out.println("_dpClearStatus : \"Erase and return\";");
out.println("_dpCloseText : \"Close\";");
out.println("_dpCloseStatus : \"Close without change\";");
out.println("_dpPrevText : \"<Prev\";");
out.println("_dpPrevStatus : \"Show the previous month\";");
out.println("_dpNextText : \"Next>\";");
out.println("_dpNextStatus : \"Show the next month\";");
out.println("_dpCurrentText : \"Today\";");
out.println("_dpCurrentStatus : \"Show the current month\";");
out.println("_dpMonthNames : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];");
out.println("_dpMonthStatus : \"Show a different month\";");
out.println("_dpYearStatus : \"Show a different year\";");
out.println("_dpWeakHeader : \"Wk\";");
out.println("_dpWeakStatus : \"Week of the year\";");
out.println("_dpDayNames : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];");
out.println("_dpDayNamesShort : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];");
out.println("_dpDayNamesMin : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];");
out.println("_dpDayStatus : \"Set DD as first week day\";");
out.println("_dpDateStatus : \"Select DD, M d\";");
out.println("_dpInitStatus : \"Select a date\";");
out.println("this.initialize = function initialize() {");
java.lang.Object gptMsgO = request.getAttribute("gptMsg");
if (gptMsgO!=null && gptMsgO instanceof java.util.Map) {
java.util.Map<String,String> gptMsg = (java.util.Map<String,String>)gptMsgO;
out.println("this._dpClearText = \"" + gptMsg.get("catalog.general.datepicker.clearText") + "\";");
out.println("this._dpClearStatus = \"" + gptMsg.get("catalog.general.datepicker.clearStatus") + "\";");
out.println("this._dpCloseText = \"" + gptMsg.get("catalog.general.datepicker.closeText") + "\";");
out.println("this._dpCloseStatus = \"" + gptMsg.get("catalog.general.datepicker.closeStatus") + "\";");
out.println("this._dpPrevText = \"" + gptMsg.get("catalog.general.datepicker.prevText") + "\";");
out.println("this._dpPrevStatus = \"" + gptMsg.get("catalog.general.datepicker.prevStatus") + "\";");
out.println("this._dpNextText = \"" + gptMsg.get("catalog.general.datepicker.nextText") + "\";");
out.println("this._dpNextStatus = \"" + gptMsg.get("catalog.general.datepicker.nextStatus") + "\";");
out.println("this._dpCurrentText = \"" + gptMsg.get("catalog.general.datepicker.currentText") + "\";");
out.println("this._dpCurrentStatus = \"" + gptMsg.get("catalog.general.datepicker.currentStatus") + "\";");
out.println("this._dpMonthNames = " + gptMsg.get("catalog.general.datepicker.monthNames") + ";");
out.println("this._dpMonthStatus = \"" + gptMsg.get("catalog.general.datepicker.monthStatus") + "\";");
out.println("this._dpYearStatus = \"" + gptMsg.get("catalog.general.datepicker.yearStatus") + "\";");
out.println("this._dpWeakHeader = \"" + gptMsg.get("catalog.general.datepicker.weakHeader") + "\";");
out.println("this._dpWeakStatus = \"" + gptMsg.get("catalog.general.datepicker.weakStatus") + "\";");
out.println("this._dpDayNames = " + gptMsg.get("catalog.general.datepicker.dayNames") + ";");
out.println("this._dpDayNamesShort = " + gptMsg.get("catalog.general.datepicker.dayNamesShort") + ";");
out.println("this._dpDayNamesMin = " + gptMsg.get("catalog.general.datepicker.dayNamesMin") + ";");
out.println("this._dpDayStatus = \"" + gptMsg.get("catalog.general.datepicker.dayStatus") + "\";");
out.println("this._dpDateStatus = \"" + gptMsg.get("catalog.general.datepicker.dateStatus") + "\";");
out.println("this._dpInitStatus = \"" + gptMsg.get("catalog.general.datepicker.initStatus") + "\";");
}
out.println("};");
out.println("this.options = function options() {");
out.println("return { dateFormat: 'yy-mm-dd',");
out.println("showOn: 'button',");
out.println("clearText: this._dpClearText,");
out.println("clearStatus: this._dpClearStatus,");
out.println("closeText: this._dpCloseText,");
out.println("closeStatus: this._dpCloseStatus,");
out.println("prevText: this._dpPrevText,");
out.println("prevStatus: this._dpPrevStatus,");
out.println("nextText: this._dpNextText,");
out.println("nextStatus: this._dpNextStatus,");
out.println("currentText: this._dpCurrentText,");
out.println("currentStatus: this._dpCurrentStatus,");
out.println("monthNames: this._dpMonthNames,");
out.println("monthStatus: this._dpMonthStatus,");
out.println("yearStatus: this._dpYearStatus,");
out.println("weakHeader: this._dpWeakHeader,");
out.println("weakStatus: this._dpWeakStatus,");
out.println("dayNames: this._dpDayNames,");
out.println("dayNamesShort: this._dpDayNamesShort,");
out.println("dayNamesMini: this._dpDayNamesMin,");
out.println("dayStatus: this._dpDayStatus,");
out.println("dateStatus: this._dpDateStatus,");
out.println("initStatus: this._dpInitStatus");
out.println("};");
out.println("};");
out.println("this.attach = function attach(node) {");
out.println("var target = $(\"#\"+node.replace(/\\:/,'\\\\:'));");
out.println("target.datepicker(this.options());");
out.println("target.unbind('keypress', this._doKeyPress);");
out.println("}");
out.println("}");
out.println("</script>");
JspFragment f = getJspBody();
if (f != null) {
f.invoke(out);
}
} catch (java.io.IOException ex) {
throw new JspException(ex.getMessage());
}
}
}