Package org.projectforge.web.wicket.components

Source Code of org.projectforge.web.wicket.components.DatePickerUtils

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2014 Kai Reinhard (k.reinhard@micromata.de)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.web.wicket.components;

import java.util.Locale;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.cycle.RequestCycle;
import org.projectforge.common.DateFormatType;
import org.projectforge.common.DateFormats;
import org.projectforge.web.I18nCore;

/**
* @author Kai Reinhard (k.reinhard@micromata.de)
*
*/
public class DatePickerUtils
{
  public static void renderHead(final IHeaderResponse response, final Locale locale, final String id, final boolean autosubmit)
  {
    final String datePickerLocalizationFile = I18nCore.getDatePickerLocalizationFile(locale);
    if (datePickerLocalizationFile != null) {
      response.render(JavaScriptHeaderItem.forUrl(datePickerLocalizationFile));
    }
    final StringBuffer buf = new StringBuffer();
    final String loc = I18nCore.getDatePickerLocale(locale);
    buf.append("$(function() {\n");
    if (loc != null) {
      buf.append(" $.datepicker.setDefaults($.datepicker.regional['").append(loc).append("']);\n");
    }
    buf.append("  $.datepicker.setDefaults({\n");
    buf.append("    showAnim : 'fadeIn',\n");
    // if (isGerman == true) {
    // buf.append("    showWeek : true\n");
    // }
    buf.append("  });\n");
    buf.append("});");

    // if we are in ajax request cycle, we have to use other rendering methods
    final AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
    if (target == null) {
      response.render(JavaScriptHeaderItem.forScript(buf, "datepicker"));
      response.render(JavaScriptHeaderItem.forScript(getDatePickerInitJavaScript(id, autosubmit), null));
    } else {
      target.appendJavaScript(buf);
      target.appendJavaScript(getDatePickerInitJavaScript(id, autosubmit));
    }
  }

  public static String getDatePickerInitJavaScript(final String id, final boolean autosubmit)
  {
    final StringBuffer buf = new StringBuffer();
    buf.append("$(function() { $('#").append(id).append("')");
    String dateFormat = DateFormats.getFormatString(DateFormatType.DATE);
    if (StringUtils.isNotBlank(dateFormat) == true) {
      dateFormat = dateFormat.toLowerCase().replace("yy", "y"); // Date format conversion for DatePicker of jquery ui.
      buf.append(".datepicker({ dateFormat : '");
      buf.append(dateFormat);
      buf.append("', showButtonPanel: true");
    } else {
      buf.append(".datepicker({ showButtonPanel: true");
    }
    if (autosubmit == true) {
      buf.append(", onSelect: function (dateText, inst) { $(this).parents('form').submit(); }");
    }
    buf.append(" });\n");
    buf.append("});");
    return buf.toString();
  }
}
TOP

Related Classes of org.projectforge.web.wicket.components.DatePickerUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.