private void setDefaultText() { String dataPlaceHolder = selectElement.getAttribute("data-placeholder"); if (dataPlaceHolder != null && dataPlaceHolder.length() > 0) { defaultText = dataPlaceHolder; } else if (isMultiple) { if (options.getPlaceholderTextMultiple() != null) { defaultText = options.getPlaceholderTextMultiple(); } else if (options.getPlaceholderText() != null) { defaultText = options.getPlaceholderText(); } else { defaultText = "Select Some Options"; } } else { if (options.getPlaceholderTextSingle() != null) { defaultText = options.getPlaceholderTextSingle(); } else if (options.getPlaceholderText() != null) { defaultText = options.getPlaceholderText(); } else { defaultText = "Select an Option"; } } String dataNoResultsText = selectElement.getAttribute("data-no_results_text"); if (dataNoResultsText != null && dataNoResultsText.length() > 0) { resultsNoneFound = dataNoResultsText; } else if (options.getNoResultsText() != null) { resultsNoneFound = options.getNoResultsText(); } else { resultsNoneFound = "No results match"; } }
private void setDefaultValues() { clickTestAction = new Function() { @Override public boolean f(Event e) { return testActiveClick(e); } }; activateAction = new Function() { @Override public boolean f(Event e) { return activateField(e); } }; activeField = false; mouseOnContainer = false; resultsShowing = false; NodeList<OptionElement> optionsList = selectElement.getOptions(); allowSingleDeselect = options.isAllowSingleDeselect() && optionsList.getLength() > 0 && "".equals(optionsList.getItem(0).getText()); choices = 0; css = Resources.INSTANCE.css(); }
private void resultsBuild() { selectItems = new SelectParser().parse(selectElement); if (isMultiple && choices > 0) { searchChoices.find("li." + css.searchChoice()).remove(); choices = 0; } else if (!isMultiple) { selectedItem.addClass(css.chznDefault()).find("span").text(defaultText); if (selectElement.getOptions().getLength() <= options.getDisableSearchThreshold()) { container.addClass(css.chznContainerSingleNoSearch()); } else { container.removeClass(css.chznContainerSingleNoSearch()); } } SafeHtmlBuilder content = new SafeHtmlBuilder(); for (int i = 0; i < selectItems.length(); i++) { SelectItem item = selectItems.get(i); if (item.isGroup()) { SafeHtml result = resultAddGroup((GroupItem) item); if (result != null) { content.append(result); } } else { OptionItem optionItem = (OptionItem) item; if (optionItem.isEmpty()) { continue; } SafeHtml optionHtml = resultAddOption(optionItem); if (optionHtml != null) { content.append(optionHtml); } if (optionItem.isSelected() && isMultiple) { choiceBuild(optionItem); } else if (optionItem.isSelected() && !isMultiple) { selectedItem.removeClass(css.chznDefault()).find("span").text(optionItem.getText()); if (allowSingleDeselect) { singleDeselectControlBuild(); } } } } searchFieldDisabled(); showSearchFieldDefault(); searchFieldScale(); searchResults.html(content.toSafeHtml().asString()); }
private void keydownBackstroke() { if (pendingBackstroke != null) { choiceDestroy(pendingBackstroke.find("a").first()); clearBackstroke(); } else { pendingBackstroke = searchContainer.siblings("li." + css.searchChoice()).last(); if (options.isSingleBackstrokeDelete()) { keydownBackstroke(); } else { pendingBackstroke.addClass(css.searchChoiceFocus()); } } }
private boolean maxSelectedOptionsReached() { return options.getMaxSelectedOptions() != -1 && options.getMaxSelectedOptions() <= choices; }
private void winnowResults() { noResultClear(); int results = 0; String searchText = defaultText.equals(searchField.val()) ? "" : searchField.val().trim(); searchText = SafeHtmlUtils.htmlEscape(searchText); String regexAnchor = options.isSearchContains() ? "" : "^"; // escape reg exp special chars String escapedSearchText = regExpChars.replace(searchText, "\\$&"); String test2 = "test"; test2.substring(1); RegExp regex = RegExp.compile(regexAnchor + escapedSearchText, "i"); RegExp zregex = RegExp.compile("(" + escapedSearchText + ")", "i"); for (int i = 0; i < selectItems.length(); i++) { SelectItem item = selectItems.get(i); if (item.isDisabled() || item.isEmpty()) { continue; } if (item.isGroup()) { $('#' + item.getDomId()).css("display", "none"); } else { OptionItem option = (OptionItem) item; if (!(isMultiple && option.isSelected())) { boolean found = false; String resultId = option.getDomId(); GQuery result = $("#" + resultId); String optionContent = option.getHtml(); if (regex.test(optionContent)) { found = true; results++; } else if (optionContent.indexOf(" ") >= 0 || optionContent.indexOf("[") == 0) { String[] parts = optionContent.replaceAll("\\[|\\]", "").split(" "); for (String part : parts) { if (regex.test(part)) { found = true; results++; } } } if (found) { String text; if (searchText.length() > 0) { text = zregex.replace(optionContent, "<em>$1</em>"); } else { text = optionContent; } result.html(text); resultActivate(result); if (option.getGroupArrayIndex() != -1) { $("#" + selectItems.get(option.getGroupArrayIndex()).getDomId()) .css("display", "list-item"); } } else { if (resultHighlight != null && resultId.equals(resultHighlight.attr("id"))) { resultClearHighlight(); } resultDeactivate(result); } } } } if (results < 1 && searchText.length() > 0) { noResults(searchText); } else { winnowResultsSetHighlight(); } }