/** * Get the message localization for the current {@link Locale}, using the provided <code>messageCode</code> as * message localization key and the optional localization arguments. * <p> * If a {@link I18NProvider} is available from the current {@link VaadinService}, it is used for message * localization. Otherwise, the current {@link LocalizationContext} is used, if it is available as a {@link Context} * resource and it is localized. * </p> * <p> * The message localization will be performed only if a current {@link Locale} is available. * </p> * @param defaultMessage The default message to use when a message localization is not available for the provided * {@link Locale} and message code * @param messageCode The message localization key (not null) * @param arguments Optional message localization arguments * @return The localized message, or the <code>defaultMessage</code> if not available * @see #getCurrentLocale() */ static String localize(String defaultMessage, String messageCode, Object... arguments) { return localize(Localizable.builder().message(defaultMessage).messageCode(messageCode) .messageArguments(arguments).build()).orElse(defaultMessage); }
/** * Get the message localization for the current {@link Locale}, using the provided <code>messageCode</code> as * message localization key and the optional localization arguments. * <p> * If a {@link I18NProvider} is available from the current {@link VaadinService}, it is used for message * localization. Otherwise, the current {@link LocalizationContext} is used, if it is available as a {@link Context} * resource and it is localized. * </p> * <p> * The message localization will be performed only if a current {@link Locale} is available. * </p> * @param messageCode The message localization key (not null) * @param arguments Optional message localization arguments * @return The localized message, if available * @see #getCurrentLocale() */ static Optional<String> localize(String messageCode, Object... arguments) { ObjectUtils.argumentNotNull(messageCode, "Message code must be not null"); return localize(Localizable.builder().messageCode(messageCode).messageArguments(arguments).build()); }
/** * Get the message localization for given <code>locale</code>, using the provided <code>messageCode</code> as * message localization key and the optional localization arguments. * <p> * If a {@link I18NProvider} is available from the current {@link VaadinService}, it is used for message * localization. Otherwise, the current {@link LocalizationContext} is used, if it is available as a {@link Context} * resource and it is localized. * </p> * @param locale The {@link Locale} for which to obtain the message localization (not null) * @param defaultMessage The default message to use when a message localization is not available for the provided * {@link Locale} and message code * @param messageCode The message localization key (not null) * @param arguments Optional message localization arguments * @return The localized message, or the <code>defaultMessage</code> if not available * @see LocalizationContext#getCurrent() */ static String getLocalization(Locale locale, String defaultMessage, String messageCode, Object... arguments) { return getLocalization(locale, Localizable.builder().message(defaultMessage).messageCode(messageCode) .messageArguments(arguments).build()).orElse(defaultMessage); }
/** * Get the message localization for given <code>locale</code>, using the provided <code>messageCode</code> as * message localization key and the optional localization arguments. * <p> * If a {@link I18NProvider} is available from the current {@link VaadinService}, it is used for message * localization. Otherwise, the current {@link LocalizationContext} is used, if it is available as a {@link Context} * resource and it is localized. * </p> * @param locale The {@link Locale} for which to obtain the message localization (not null) * @param messageCode The message localization key (not null) * @param arguments Optional message localization arguments * @return The localized message, if available * @see LocalizationContext#getCurrent() */ static Optional<String> getLocalization(Locale locale, String messageCode, Object... arguments) { ObjectUtils.argumentNotNull(messageCode, "Message code must be not null"); return getLocalization(locale, Localizable.builder().messageCode(messageCode).messageArguments(arguments).build()); }
/** * Sets the title text using a localizable <code>messageCode</code>. * <p> * Browsers typically use the title to show a tooltip when hovering an element * <p> * HTML markup is not supported. * <p> * @param defaultTitle Default title if no translation is available for given <code>messageCode</code> * @param messageCode Title translation message key * @param arguments Optional translation arguments * @return this * @see LocalizationProvider */ default C title(String defaultTitle, String messageCode, Object... arguments) { return title(Localizable.builder().message((defaultTitle == null) ? "" : defaultTitle).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the empty selection caption using a localizable <code>messageCode</code>. * <p> * For caption localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built or when component is displayed if {@link #deferLocalization()} is * <code>true</code>. * </p> * @param defaultCaption Default message if no translation is available for given <code>messageCode</code> for * current Locale. * @param messageCode the empty selection caption translation message key * @param arguments Optional translation arguments * @return this */ default B emptySelectionCaption(String defaultCaption, String messageCode, Object... arguments) { return emptySelectionCaption(Localizable.builder().message(defaultCaption).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the empty selection caption using a localizable <code>messageCode</code>. * <p> * For caption localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built or when component is displayed if {@link #deferLocalization()} is * <code>true</code>. * </p> * @param defaultCaption Default message if no translation is available for given <code>messageCode</code> for * current Locale. * @param messageCode the empty selection caption translation message key * @param arguments Optional translation arguments * @return this */ default B emptySelectionCaption(String defaultCaption, String messageCode, Object... arguments) { return emptySelectionCaption(Localizable.builder().message(defaultCaption).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the component's description using a localizable <code>messageCode</code>. * <p> * For description localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built. * </p> * @param defaultDescription Default description if no translation is available for given <code>messageCode</code> * for current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Description translation message key * @param arguments Optional translation arguments * @return this */ default B description(String defaultDescription, String messageCode, Object... arguments) { return description(Localizable.builder().message(defaultDescription).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the component's description using a localizable <code>messageCode</code>. * <p> * For description localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built. * </p> * @param defaultDescription Default description if no translation is available for given <code>messageCode</code> * for current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Description translation message key * @param arguments Optional translation arguments * @return this */ default B description(String defaultDescription, String messageCode, Object... arguments) { return description(Localizable.builder().message(defaultDescription).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the localizable dialog message. * <p> * For dialog message localization, a {@link LocalizationContext} must be available and localized as * {@link Context} resource when dialog is displayed. * </p> * @param defaultMessage Default dialog message if no translation is available for given * <code>messageCode</code> for current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Dialog message translation message key * @param arguments Optional Dialog message translation arguments * @return this */ default B message(String defaultMessage, String messageCode, Object... arguments) { return message(Localizable.builder().message(defaultMessage).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the placeholder text using a localizable <code>messageCode</code>. * <p> * The placeholder is a hint to the user of what can be entered in the control. * </p> * @param defaultPlaceholder Default placeholder text if no translation is available for given * <code>messageCode</code> * @param messageCode Placeholder text translation message key * @param arguments Optional translation arguments * @return this * @see LocalizationProvider */ default C placeholder(String defaultPlaceholder, String messageCode, Object... arguments) { return placeholder(Localizable.builder().message((defaultPlaceholder == null) ? "" : defaultPlaceholder) .messageCode(messageCode).messageArguments(arguments).build()); }
/** * Sets the localizable dialog message. * <p> * For dialog message localization, a {@link LocalizationContext} must be available and localized as * {@link Context} resource when dialog is displayed. * </p> * @param defaultMessage Default dialog message if no translation is available for given * <code>messageCode</code> for current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Dialog message translation message key * @param arguments Optional Dialog message translation arguments * @return this */ default B message(String defaultMessage, String messageCode, Object... arguments) { return message(Localizable.builder().message(defaultMessage).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Create a new menu item using given <code>messageCode</code> for text content localization. * <p> * The {@link MenuItemBuilder#add()} method can be used to add the item to the context menu. * </p> * @param defaultText Default menu item text content if no translation is available for given * <code>messageCode</code>. * @param messageCode Menu item text content translation message key * @param arguments Optional translation arguments * @return A {@link MenuItemBuilder} to configure and add the menu item * @see LocalizationProvider */ default MenuItemBuilder<L, M, C> withItem(String defaultText, String messageCode, Object... arguments) { return withItem(Localizable.builder().message((defaultText == null) ? "" : defaultText).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the caption of the component using a localizable <code>messageCode</code>. * <p> * For caption localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built. * </p> * @param defaultCaption Default caption if no translation is available for given <code>messageCode</code> for * current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Caption translation message key * @param arguments Optional translation arguments * @return this */ default B caption(String defaultCaption, String messageCode, Object... arguments) { return caption(Localizable.builder().message(defaultCaption).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the caption of the component using a localizable <code>messageCode</code>. * <p> * For caption localization, a {@link LocalizationContext} must be available and localized as {@link Context} * resource when component is built. * </p> * @param defaultCaption Default caption if no translation is available for given <code>messageCode</code> for * current Locale, or no {@link LocalizationContext} is available at all * @param messageCode Caption translation message key * @param arguments Optional translation arguments * @return this */ default B caption(String defaultCaption, String messageCode, Object... arguments) { return caption(Localizable.builder().message(defaultCaption).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Create a {@link Validator} which uses given {@link Predicate} to perform value validation and the given * localizable <code>message</code> as invalid value message when the predicate condition is not satisfied. * @param <T> Value type * @param predicate Predicate to use to check if value is valid (not null) * @param message Invalid value message * @param messageCode Invalid value message localization code * @param messageAguments Optional message localization arguments * @return A new {@link Validator} using given {@link Predicate} and invalid value message */ static <T> Validator<T> create(Predicate<T> predicate, String message, String messageCode, Object... messageAguments) { return new DefaultValidator<>(predicate, Localizable.builder().message(message).messageCode(messageCode) .messageArguments(messageAguments).build()); }
/** * Sets the text content using a localizable <code>messageCode</code>. * <p> * The text value is interpred as <em>plain text</em> and the HTML markup is not supported. * </p> * @param defaultText Default text content if no translation is available for given <code>messageCode</code> * @param messageCode Text translation message key * @param arguments Optional translation arguments * @return this * @see LocalizationProvider */ default C text(String defaultText, String messageCode, Object... arguments) { return text(Localizable.builder().message((defaultText == null) ? "" : defaultText).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Sets the label text using a localizable <code>messageCode</code>. * <p> * The text value is interpred as <em>plain text</em> and the HTML markup is not supported. * </p> * @param defaultLabel Default label text if no translation is available for given <code>messageCode</code> * @param messageCode Label text translation message key * @param arguments Optional translation arguments * @return this * @see LocalizationProvider */ default C label(String defaultLabel, String messageCode, Object... arguments) { return label(Localizable.builder().message((defaultLabel == null) ? "" : defaultLabel).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Set the given property as required. If a property is required, the {@link Input} bound to the property will * be setted as required, and its validation will fail when empty. * @param <T> Property type * @param property Property to set as required (not null) * @param message The default message to use to notify the required validation failure * @param messageCode The message localization code * @param arguments Optional message translation arguments * @return this */ default <T> B required(Property<T> property, String message, String messageCode, Object... arguments) { return required(property, Localizable.builder().message(message).messageCode(messageCode) .messageArguments(arguments).build()); }
/** * Set the given property as required. If a property is required, the {@link Input} bound to the property will * be setted as required, and its validation will fail when empty. * @param <T> Property type * @param property Property to set as required (not null) * @param message The default message to use to notify the required validation failure * @param messageCode The message localization code * @param arguments Optional message translation arguments * @return this */ default <T> B required(Property<T> property, String message, String messageCode, Object... arguments) { return required(property, Localizable.builder().message(message).messageCode(messageCode) .messageArguments(arguments).build()); }