⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jscalendartag.java

📁 本系统有十分强大的功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.opencustomer.webapp.taglib;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.struts.taglib.TagUtils;
import org.opencustomer.framework.webapp.util.MessageUtil;
import org.opencustomer.util.configuration.UserConfiguration;
import org.opencustomer.webapp.Globals;

public final class JsCalendarTag extends TagSupport
{
    private static final long serialVersionUID = 428305407335964656L;
    
    private String input;
    
    private String button;
    
    private String formatKey;
    
    private boolean disabled;
    
    @Override
    public int doStartTag() throws JspException
    {
        UserConfiguration conf = (UserConfiguration)pageContext.getSession().getAttribute(Globals.CONFIGURATION_KEY);

        boolean isDisabled = disabled;
        if(pageContext.getAttribute("i_panel_editable") != null) {
            if(pageContext.getAttribute("i_panel_editable").equals(Boolean.FALSE))
                isDisabled = true;
        }
        
        if(!isDisabled) {
            StringBuilder builder = new StringBuilder();
            
            builder.append("<script type=\"text/javascript\">");
            
            if(pageContext.getAttribute("jsCalendar_isLocaleInitialized") == null) {
                initLocale(builder);
                
                pageContext.setAttribute("jsCalendar_isLocaleInitialized", Boolean.TRUE);
            }
            
            builder.append("Calendar.setup(");
            builder.append("{");
            
            builder.append("inputField : \""+input+"\",");
            builder.append("button : \""+button+"\",");
            if(formatKey != null) {
                String jsFormat = getJsFormat(formatKey);
                builder.append("ifFormat : \""+jsFormat+"\",");
    
                if(jsFormat.contains("%M") 
                        ||jsFormat.contains("%H")
                        || jsFormat.contains("%k")
                        || jsFormat.contains("%I")
                        || jsFormat.contains("%l")) {
                    builder.append("showsTime : true,");
                    builder.append("singleClick : false,");
                }
    
                if(jsFormat.contains("%I")
                        || jsFormat.contains("%l")) {
                    builder.append("timeFormat : \"12\",");
                } else {
                    builder.append("timeFormat : \"24\",");
                }
            }
            builder.append("step : 5,");
            builder.append("firstDay : "+getJsFirstDayOfWeek(conf.getIntValue(UserConfiguration.Key.CALENDAR_FIRST_DAY_OF_WEEK)));
            builder.append("}");
            builder.append(");");
            builder.append("</script>");
            
            TagUtils.getInstance().write(pageContext, builder.toString());
        }
        
        return super.doStartTag();
    }
    
    private void initLocale(StringBuilder builder) {
        Locale locale = (Locale)pageContext.getSession().getAttribute(org.apache.struts.Globals.LOCALE_KEY);
        
        HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();        
        //MessageUtil.message(request, formatKey);
        
        Calendar cal = GregorianCalendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE", locale);
        
        builder.append("\nCalendar._DN = new Array");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        builder.append("(\""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\");\n");

        sdf = new SimpleDateFormat("EE", locale);
        
        builder.append("Calendar._SDN = new Array");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        builder.append("(\""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\");\n");

        // set to first of month
        cal.set(Calendar.DAY_OF_MONTH, 1);

        sdf = new SimpleDateFormat("MMMM", locale);
        
        builder.append("Calendar._MN = new Array");
        cal.set(Calendar.MONTH, Calendar.JANUARY);
        builder.append("(\""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.MARCH);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.APRIL);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.MAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.JUNE);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.JULY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.AUGUST);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.OCTOBER);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.NOVEMBER);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        builder.append(" \""+sdf.format(cal.getTime())+"\");\n");

        sdf = new SimpleDateFormat("MMM", locale);
        
        builder.append("Calendar._SMN = new Array");
        cal.set(Calendar.MONTH, Calendar.JANUARY);
        builder.append("(\""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.FEBRUARY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.MARCH);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.APRIL);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.MAY);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.JUNE);
        builder.append(" \""+sdf.format(cal.getTime())+"\",");
        cal.set(Calendar.MONTH, Calendar.JULY);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -