package fr.openwide.core.wicket.more.markup.html.select2.util;
import org.retzlaff.select2.Select2Settings;
public final class Select2Utils {
public static final String CSS_DROP_MINI = "select2-drop-mini";
public static final String CSS_DROP_SMALL = "select2-drop-small";
public static final String CSS_DROP_MEDIUM = "select2-drop-medium";
public static final String CSS_DROP_LARGE = "select2-drop-large";
public static final String CSS_DROP_XLARGE = "select2-drop-xlarge";
public static final String CSS_DROP_XXLARGE = "select2-drop-xxlarge";
public static final String CSS_DROP_XXXLARGE = "select2-drop-xxxlarge";
private static final int DEFAULT_MINIMUM_RESULTS_FOR_SEARCH = 6;
private static final int AJAX_DEFAULT_MINIMUM_INPUT_LENGTH = 2;
private static final String DEFAULT_MATCHER = "function(term, text) { return OWSI.StringUtils.removeAccents('' + text).indexOf(OWSI.StringUtils.removeAccents('' + term))>=0; }";
private static final String DEFAULT_FORMAT_RESULT = "function(result, container, query) {" +
"var markup=[];" +
"var text = result.text;" +
"var term = query.term;" +
"var match=OWSI.StringUtils.removeAccents('' + text).indexOf(OWSI.StringUtils.removeAccents('' + term));" +
"var tl=term.length;" +
"if (match<0) {" +
"return text;" +
"}" +
"markup.push(text.substring(0, match));" +
"markup.push(\"<span class='select2-match'>\");" +
"markup.push(text.substring(match, match + tl));" +
"markup.push(\"</span>\");" +
"markup.push(text.substring(match + tl, text.length));" +
"return markup.join('');" +
"}";
public static void setDefaultSettings(Select2Settings settings) {
settings.setTextEncoding("UTF-8");
settings.setWidth("resolve");
settings.setNoMatchesKey("common.select2.noChoice");
settings.setInputTooShortKey("common.select2.inputTooShort");
settings.setMatcher(DEFAULT_MATCHER);
settings.setFormatResult(DEFAULT_FORMAT_RESULT);
settings.setMinimumResultsForSearch(DEFAULT_MINIMUM_RESULTS_FOR_SEARCH);
settings.setAllowClear(true);
}
public static void setRequiredSettings(Select2Settings settings) {
if (settings.getPlaceholderKey() == null) {
settings.setPlaceholderKey("common.select2.required.placeholder");
}
settings.setAllowClear(false);
}
public static void setDefaultAjaxSettings(Select2Settings settings) {
setDefaultSettings(settings);
settings.setMinimumInputLength(AJAX_DEFAULT_MINIMUM_INPUT_LENGTH);
}
public static void disableSearch(Select2Settings settings) {
settings.setMinimumResultsForSearch(Integer.MAX_VALUE);
}
private Select2Utils() {
}
}