/**
  * Returns a localized message string, if there is a localization; otherwise the given default
  * value.
  *
  * @param key message key for the message
  * @param defaultValue to use if no localization for the message can be found
  * @return the possibly localized message
  */
 private String getMsg(String key, String defaultValue) {
   if (Application.exists()) {
     Localizer localizer = Application.get().getResourceSettings().getLocalizer();
     if (localizer != null) {
       // Use getStringIgnoreSettings because we don't want exceptions here if the key is missing!
       return localizer.getStringIgnoreSettings(key, null, null, defaultValue);
     }
   }
   return defaultValue;
 }
Exemple #2
0
  /**
   * Construct a new YUIDateField.
   *
   * @param id the Wicket id for the editor.
   * @param model the model.
   * @param metaData the meta data for the property.
   * @param viewOnly true if the component should be view-only.
   */
  public YUIDateField(String id, IModel<Date> model, ElementMetaData metaData, boolean viewOnly) {
    super(id, model, metaData, viewOnly);

    type = metaData.getPropertyType();
    boolean displayTz = false;
    Component metaDataComponent = metaData.getBeanMetaData().getComponent();
    Localizer localizer = metaDataComponent.getLocalizer();
    if (Time.class.isAssignableFrom(type)
        || java.sql.Date.class.isAssignableFrom(type)
        || Date.class.isAssignableFrom(type)
        || Timestamp.class.isAssignableFrom(type)) {
      fmt =
          localizer.getString(
              DATE_TIME_FIELD_PREFIX + "date" + FORMAT_SUFFIX, metaDataComponent, DATE_FMT_STR);
    } else if (Calendar.class.isAssignableFrom(type)) {
      fmt =
          viewOnly
              ? localizer.getString(
                  DATE_TIME_FIELD_PREFIX + "datetz" + FORMAT_SUFFIX,
                  metaDataComponent,
                  DATE_ZONE_FMT_STR)
              : localizer.getString(
                  DATE_TIME_FIELD_PREFIX + "date" + FORMAT_SUFFIX, metaDataComponent, DATE_FMT_STR);
      displayTz = true;
    } else {
      throw new RuntimeException("YUIDateField does not handle " + type);
    }

    String customFmt = getFormat();
    if (customFmt != null) {
      fmt = customFmt;
    }

    Fragment fragment;
    if (viewOnly) {
      fragment = new Fragment("frag", "viewer");
      fragment.add(DateLabel.withConverter("date", model, new InternalDateConverter()));
    } else {
      fragment = new Fragment("frag", "editor");

      FormComponent dateField =
          DateTextField.withConverter("dateTextField", model, new InternalDateConverter());
      setFieldParameters(dateField);
      fragment.add(dateField);

      dateField.add(
          new DatePicker() {
            private static final long serialVersionUID = 1L;

            @Override
            protected boolean enableMonthYearSelection() {
              return false;
            }

            @Override
            protected CharSequence getIconUrl() {
              return RequestCycle.get()
                  .urlFor(new ResourceReference(YUIDateField.class, "calendar.gif"));
            }
          });

      if (displayTz) {
        DateLabel tzLabel = DateLabel.withConverter("timezone", model, new TimeZoneConverter());
        fragment.add(tzLabel);
      } else {
        fragment.add(new Label("timezone", "").setVisible(false));
      }
    }

    add(fragment);
  }